Option Explicit
'---------------------------------------------------------------------------
'COPYRIGHT DASSAULT SYSTEMES 2011
' ****************************************************************************
'
' Purpose: To create members.
'
' Assumptions: The Part document CAASfdCreateMember.CATPart should be active
'
' Author:
' Languages: VBScript
' Version: V5R21
' Locales: English
' CATIA Level: V5R21
'
' ****************************************************************************
Sub CATMain()
Dim ObjPart As Part
Set ObjPart = CATIA.ActiveDocument.Part
'Get the Factory Object
Dim FactoryObj As SfmFactory
Set FactoryObj = ObjPart.GetCustomerFactory("SfmFactory")
'Get the Manager Object
Dim ManagerObj As SfmManager
Set ManagerObj = FactoryObj.GetManager
'RETRIEVING THE SUPERPLATES
Dim SuperPlates As References
Set SuperPlates = ManagerObj.GetSuperPlates
Dim SuperPlate1, SuperPlate2 As SfmSuperPlate
Set SuperPlate1 = SuperPlates.Item(1)
Set SuperPlate2 = SuperPlates.Item(2)
'Creating Member On a Curve
Dim Curve1 As AnyObject
Set Curve1 = ObjPart.FindObjectByName("Intersect.2")
Dim curveRef As Reference
Set curveRef = ObjPart.CreateReferenceFromObject(Curve1)
Dim MemberCurve As SfmMemberCurve
Set MemberCurve = FactoryObj.AddMemberCrv("Beam", "C12x25", curveRef, Nothing)
'Creating Member with PointUpToLimit
Dim Point1 As AnyObject
Set Point1 = ObjPart.FindObjectByName("Point.5")
Dim Point1Ref As Reference
Set Point1Ref = ObjPart.CreateReferenceFromObject(Point1)
Dim Point2 As AnyObject
Set Point2 = ObjPart.FindObjectByName("Point.6")
Dim Point2Ref As Reference
Set Point2Ref = ObjPart.CreateReferenceFromObject(Point2)
Dim MemDirection As AnyObject
Set MemDirection = ObjPart.FindObjectByName("xy plane")
Dim MemDirRef As Reference
Set MemDirRef = ObjPart.CreateReferenceFromObject(MemDirection)
Dim MemLimit As AnyObject
Set MemLimit = ObjPart.FindObjectByName("DECK.5")
Dim MemLimitRef As Reference
Set MemLimitRef = ObjPart.CreateReferenceFromObject(MemLimit)
Dim Member1PtUpToLimit As SfmMemberPointUpToLimit
Set Member1PtUpToLimit = FactoryObj.AddMemberPtUpToLimit("Pillar", "C12x25", Point1Ref, MemDirRef, MemLimitRef, Nothing)
Dim Member2PtUpToLimit As SfmMemberPointUpToLimit
Set Member2PtUpToLimit = FactoryObj.AddMemberPtUpToLimit("Beam", "C12x25", Point2Ref, MemDirRef, MemLimitRef, Nothing)
'Applying Limit to Members With DeckPlate
Dim PlateRef As Reference
Set PlateRef = ObjPart.CreateReferenceFromObject(SuperPlate2)
Member1PtUpToLimit.SetProfileLimit 2, PlateRef
Member2PtUpToLimit.SetProfileLimit 2, PlateRef
'Creating Member with two Beams and a Plane
Dim Plane1 As AnyObject
Set Plane1 = ObjPart.FindObjectByName("DECK.2")
Dim RefPlane As Reference
Set RefPlane = ObjPart.CreateReferenceFromObject(Plane1)
Dim Member2BeamsandPlane As SfmMemberPlane2Curves
Set Member2BeamsandPlane = FactoryObj.AddMemberBeamsAndPlane("Beam", "C12x25", Member1PtUpToLimit, Member2PtUpToLimit, RefPlane, Nothing)
'Retreiving the Supports of Members
Dim SupportRef1 As Reference
Set SupportRef1 = Member1PtUpToLimit.Support
Dim SupportRef2 As Reference
Set SupportRef2 = Member2PtUpToLimit.Support
'Creating Member with Two Curves
Dim Member2Points As SfmMember2Points
Set Member2Points = FactoryObj.AddMemberPtOnCrvPtOnCrv("Beam", "C12x25", SupportRef1, True, "0.5", SupportRef2, False, "0", Nothing)
'Creating Member by AddMemberSurfSurf
Dim Surface1 As AnyObject
Set Surface1 = ObjPart.FindObjectByName("CROSS.60")
Dim SurfaceRef1 As Reference
Set SurfaceRef1 = ObjPart.CreateReferenceFromObject(Surface1)
Dim Surface2 As AnyObject
Set Surface2 = ObjPart.FindObjectByName("LONG.-8")
Dim SurfaceRef2 As Reference
Set SurfaceRef2 = ObjPart.CreateReferenceFromObject(Surface2)
Dim MemberSurfSurf As SfmMemberSurfSurf
Set MemberSurfSurf = FactoryObj.AddMemberSurfSurf("Beam", "C12x25", SurfaceRef1, SurfaceRef2, Nothing)
'Applying Limits on Infinite MemberSurfSurf
Dim ShellPlateRef As Reference
Set ShellPlateRef = ObjPart.CreateReferenceFromObject(SuperPlate1)
MemberSurfSurf.SetProfileLimit 2, PlateRef
MemberSurfSurf.SetProfileLimit 1, ShellPlateRef
ObjPart.Update
End Sub