import clr
from Bentley.ESM.Geometry import *
import BESM
from BESM import *
import BasicShapes
import SuppPlacement
import Bentley.ESM.Placement
from Bentley.ESM.Placement import *
import Bentley.ESM.PythonSubCommand
from Bentley.ESM.PythonSubCommand import *
import Bentley.ESM.Utilities
from Bentley.ESM.Utilities import *
import Bentley.ESM.Briefcase
from Bentley.ESM.Briefcase import *
from Bentley.ESM.EngineeringTools import *
from Bentley.ESM.Briefcase.Sync import *
BESM.agr = aggregator
ClearMessageBox()
Message("Start CERI_A Script")
def CreateCERI_ChannelSteelAModelObject(className,uom):
modelObj = BESM.agr.CreateInstance(className)
modelObj.AddTempProperty(BESM.agr.CreateTempProperty('H', {'UIcategory':'CERI', 'DisplayLabel':'length', 'DataType':'Double', 'Default':'100', 'UOMType': 'LENGTH', 'options':'', 'ordinal' : 1}))
UILink.InstanceList.Add(modelObj)
BESM.agr.CreateInstanceModelessUI()
modelObj = UILink.InstanceList.ActiveInstance
if modelObj == None:
return
modelObj.SetStringValue("Parameters", modelObj.SerializeParams("H"))
UILink.InstanceList.Clear()
return modelObj
def CreatePartShape(modelObj,name):
uom = "MM"
partSpace = BESSpace(name)
len = modelObj.GetRealValue("H", 0.0, uom)
Message("len = %s %s" % (len,uom))
width = 53
depth = 126
webThk = 5.5
flgThk = 5.5
dy = 0
dz = 0
profC = BESExtrusion("profC", "PROFILE_C", "LEFT", uom, width, depth, webThk, flgThk, dy, dz, len)
partSpace.AddBESPiece(profC)
return partSpace
def PlacePart():
name = "CERI_A"
uom = "MM"
SuppPlacement.SetVisuals("SupportClamp", "GENERIC")
pipe,pipeOD = SuppPlacement.GetPipeParams("Select Pipe",uom)
# if (pipe == None):
# return
modelObj = CreateCERI_ChannelSteelAModelObject("CERI_A","MM")
if modelObj == None:
Message("User canzelled placement")
return
Message("I placement ok")
partSpace = CreatePartShape(modelObj,name)
part = BESGroup(name)
part.AddBESPiece(partSpace)
part.ecObject = modelObj.ECInstance
plcParams = PlacementData()
wk = Bentley.ESM.PlaceSeq()
if pipe != None :
plcParams.YawLocked = False
plcParams.PitchLocked = True
plcParams.RollLocked = False
wk.PushItem( pipe )
wk.AddPlacement( PyCmdPathPlc, plcParams)
else:
wk.AddPlacement( PyCmdFloatPlc, plcParams)
compInfo = ProcessElement( part, wk)
return
PlacePart()