|
CAASfdEditMember includes eight steps:
- Prolog
- Retrieving the Factory from the Part Document
- Getting the Manager from the Factory
- Retrieving the Members
- Modifying an SfmMemberCurve Object
- Modifying an SfmMemberPlane2Curves Object
- Modifying an SfmMemberSurfSurf Object
- Updating the Part Document

Opens the CAASddEditMember.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.
...
Dim FactoryObj As SfmFactory
Set FactoryObj = ObjPart.GetCustomerFactory("SfmFactory")
...
|
This step describes how to get the SfmManager object.
...
Dim ManagerObj As SfmManager
Set ManagerObj = FactoryObj.GetManager
...
|
This step describes how to get the collection of members
and how to get one specific element in it.
...
Dim SuperMembers As References
Set SuperMembers = ManagerObj.GetSuperMembers
Dim SuperMember1, SuperMember2, SuperMember3, SuperMember4, SuperMember5 As SfmMember
Set SuperMember1 = SuperMembers.Item (1)
Set SuperMember2 = SuperMembers.Item (2)
Set SuperMember3 = SuperMembers.Item (4)
Set SuperMember4 = SuperMembers.Item (5)
Set SuperMember5 = SuperMembers.Item (6)
...
|
We have to check the types of the member and then retrieve them As objects of their types.
...
Dim MemberTypeName1 As String
Dim MemberTypeName2 As String
Dim MemberTypeName3 As String
Dim MemberTypeName4 As String
Dim MemberTypeName5 As String
MemberTypeName1 = SuperMember1.GetMemberType
MemberTypeName2 = SuperMember2.GetMemberType
MemberTypeName3 = SuperMember3.GetMemberType
MemberTypeName4 = SuperMember4.GetMemberType
MemberTypeName5 = SuperMember5.GetMemberType
...
|
...
If (TypeName (SuperMember1) = "SfmMemberCurve") Then
Dim AnchorPoint1 As String
AnchorPoint1 = SuperMember1.AnchorPoint
SuperMember1.AnchorPoint = "catStrTopLeft"
Dim Member1Category As String
Member1Category = SuperMember1.Category
Dim Member1CurveRef As Reference
Set Member1CurveRef = SuperMember1.Curve
Dim Member1Surface As AnyObject
Set Member1Surface = ObjPart.FindObjectByName("Shell_058 Molded surface")
Dim Member1RefSurface As Reference
Set Member1RefSurface = ObjPart.CreateReferenceFromObject(Member1Surface)
SuperMember1.ReferenceSurface = Member1RefSurface
Dim ReferenceSurfaceOrient As Long
ReferenceSurfaceOrient = SuperMember1.ReferenceSurfaceOrientation
SuperMember1.InvertReferenceSurface
Dim FlipStatus As Boolean
FlipStatus = SuperMember1.IsFlip
SuperMember1.Flip
SuperMember1.Grade = "A45"
SuperMember1.HorizontalAnchorPointOffSet = "10"
SuperMember1.VerticalAnchorPointOffSet = "15"
Dim Member1HAPOffSet As Double
Member1HAPOffSet = SuperMember1.HorizontalAnchorPointOffset
Dim Member1SectionName As String
Member1SectionName = SuperMember1.SectionName
SuperMember1.SectionName = "WT15x54"
End If
...
|
...
If (TypeName(SuperMember3) = "SfmMemberPlane2Curves") Then
Dim InputMemRef1, InputMemRef2 As Reference
Set InputMemRef1 = SuperMember3.FirstMember
Set InputMemRef2 = SuperMember3.SecondMember
Dim NewInputMemRef As Reference
Set NewInputMemRef = ObjPart.CreateReferenceFromObject(SuperMember5)
SuperMember3.FirstMember = NewInputMemRef
Dim InputPlaneRef As Reference
Set InputPlaneRef = SuperMember3.Plane
End If
...
|
...
If (TypeName(SuperMember5) = "SfmMemberSurfSurf") Then
Dim FirstSurfaceRef As Reference
Set FirstSurfaceRef = SuperMember5.FirstSurface
Dim NewFirstSurface As AnyObject
Set NewFirstSurface = ObjPart.FindObjectByName("CROSS.65")
Dim NewFirstSurfaceRef As Reference
Set NewFirstSurfaceRef = ObjPart.CreateReferenceFromObject(NewFirstSurface)
SuperMember5.FirstSurface = NewFirstSurfaceRef
Dim FirstSurfaceOrient As Long
FirstSurfaceOrient = SuperMember5.FirstSurfaceOrientation
SuperMember5.FirstSurfaceOrientation = 2
SuperMember5.FirstSurfaceOffSet = "20"
Dim Surface1OffSet As Double
Surface1OffSet = SuperMember5.FirstSurfaceOffset
End If
...
|
Update the Part.
...
ObjPart.Update
End Sub
|
|