 |
CAASfdCreateMember includes ten steps:
- Prolog
- Retrieving the Factory from the Part Document
- Getting the Manager from the Factory
- Retrieving the Super Plates
- Creating a Member with a Curve
- Creating a Member with a Point and a Limit
- Creating a Member with Beams and a Plane
- Creating a Member with Two Points
- Creating a Member with Reference Planes
- Updating the Part Document
Opens the CAASfdCreateMember.CATPart in CATIA.
Sub CATMain()
Dim ObjPart As Part
Set ObjPart = CATIA.ActiveDocument.Part
...
|
This step describes how to get Structure Functional Modeler factory object.
...
'Get the Factory Object
Dim FactoryObj As SfmFactory
Set FactoryObj = ObjPart.GetCustomerFactory("SfmFactory")
...
|
This step describes how to get the SfmManager object.
...
'Get the Manager Object
Dim ManagerObj As SfmManager
Set ManagerObj = FactoryObj.GetManager
...
|
This step describes how to get the plate collection and how to get one specific item in it.
...
'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)
...
|
...
'Retrieving 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
...
|
Update the Part.
...
'To Updating CATIA Part Document
ObjPart.Update
End Sub
|
|