Structure Functional Design

Creating Members


This macro shows you how to create members.

CAASfdCreateMember is launched in CATIA [1]. First open CAASfdCreateMember.CATPart in the samples directory.

CAASfdCreateMember.CATScript is located in the CAAScdSfdUseCases. Execute macro (Windows only).

CAASfdCreateMember includes ten steps:

  1. Prolog
  2. Retrieving the Factory from the Part Document
  3. Getting the Manager from the Factory
  4. Retrieving the Super Plates
  5. Creating a Member with a Curve
  6. Creating a Member with a Point and a Limit
  7. Creating a Member with Beams and a Plane
  8. Creating a Member with Two Points
  9. Creating a Member with Reference Planes
  10. Updating the Part Document

Prolog

Opens the CAASfdCreateMember.CATPart in CATIA.

Sub CATMain()
  Dim ObjPart  As Part
  Set ObjPart = CATIA.ActiveDocument.Part
  ...

Retrieving the Factory from the Part Document

This step describes how to get Structure Functional Modeler factory object.

  ...
  'Get the Factory Object
  Dim FactoryObj As SfmFactory
  Set FactoryObj = ObjPart.GetCustomerFactory("SfmFactory")
  ...

Getting the Manager from the Factory

This step describes how to get the SfmManager object.

  ...
  'Get the Manager Object
  Dim ManagerObj  As  SfmManager
  Set ManagerObj = FactoryObj.GetManager
  ...

Retrieving the Super Plates

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 a Member with a Curve

  ...
  '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 a Member with a Point and a Limit

  ...
 '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 a Member with Beams and a Plane

  ...
  '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)
  ...

Creating a Member with Two Points

  ...
  '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 a Member with Reference Planes

  ...
  '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
  ...

Updating the Part Document

Update the Part.

 ...
  'To Updating CATIA Part Document
  ObjPart.Update
End Sub

[Top]


In Short

This use case has shown how to create members.


References

[1] Replaying a Macro
[2] Opening an Existing CATIA Document
[Top]

Copyright © 1999-2011, Dassault Systèmes. All rights reserved.