Option Explicit
'---------------------------------------------------------------------------
'COPYRIGHT DASSAULT SYSTEMES 2011

' ****************************************************************************
'
' Purpose:       To create members.
'
' Assumptions:   The Part document CAASddEditStiffener.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
      
  Dim FactoryObj As SfmFactory
  Set FactoryObj = ObjPart.GetCustomerFactory("SfmFactory")
  
  Dim ManagerObj As SfmManager
  Set ManagerObj = FactoryObj.GetManager
  
'RETRIEVING THE SUPERSTIFFENERS
  Dim SuperStiffeners As References
  Set SuperStiffeners = ManagerObj.GetSuperStiffeners

  Dim SuperStiffener1, SuperStiffener2, SuperStiffener3 As SfmStiffener
  Set SuperStiffener1 = SuperStiffeners.Item(1)
  Set SuperStiffener2 = SuperStiffeners.Item(3)
  Set SuperStiffener3 = SuperStiffeners.Item(4)
  
  'Retrieving The Seamed Stiffeners on Deck
  Dim SplitStiffeners As References
  Set SplitStiffeners = SuperStiffener2.SplitProfiles
  
  Dim SplitStiffener1, SplitStiffener2 As Reference
  Set SplitStiffener1 = SplitStiffeners.Item(1)
  Set SplitStiffener2 = SplitStiffeners.Item(2)
  
  Set SelctionObj = CATIA.ActiveDocument.Selection
  
  'DECK STIFFENER
  SelctionObj.Add SplitStiffener1
  Dim DeckStiffener1 As SfmStiffener
  Set DeckStiffener1 = SelctionObj.FindObject("CATIASfmStiffener")
  
  'Checking Name and the Support
  Dim stiffname As String
  stiffname = DeckStiffener1.Name

  Dim DeckStiffSupport As Reference
  Set DeckStiffSupport = DeckStiffener1.Support
  'Applying Material and Grade
  DeckStiffener1.Material = "Aluminium"
  DeckStiffener1.Grade = "A47"
    
  'Retrieving and Modifying the side and section Orientation
  Dim SideOrient, SectionOrient As Long
  SideOrient = DeckStiffener1.SideOrientation
  SectionOrient = DeckStiffener1.SectionOrientation
  
  Dim DeckStiff1SideOrnt, DeckStiff1SectionOrnt As Long
  DeckStiff1SectionOrnt = -1
  DeckStiff1SideOrnt = 6
  DeckStiffener1.SideOrientation = DeckStiff1SideOrnt
  DeckStiffener1.SectionOrientation = DeckStiff1SectionOrnt
  
  'Modifying the Section
  Dim DeckStiffSectionName As String
  DeckStiffSectionName = DeckStiffener1.SectionName
  DeckStiffener1.SectionName = "WT15x54"
  
  'SHELL STIFFENER
  Dim SelctionObj As Selection
  SelctionObj.Add SuperStiffener1
  Dim ShellStiffener1 As SfmStiffener
  Set ShellStiffener1 = SelctionObj.FindObject("CATIASfmStiffener")

  'Retrieving and Modifying Websupport of ShellStiffener
  Dim ShellStiffWebSupport As Reference
  Set ShellStiffWebSupport = ShellStiffener1.WebSupport
  
  Dim webSupport1 As AnyObject
  Set webSupport1 = ObjPart.FindObjectByName("LONG.0")
  Dim webSupportRef1 As Reference
  Set webSupportRef1 = ObjPart.CreateReferenceFromObject(webSupport1)
  ShellStiffener1.WebSupport = webSupportRef1

  'Getting MoldedSurface Of ShellStiffener
  Dim ShellStiffMoldedSurface As Reference
  Set ShellStiffMoldedSurface = ShellStiffener1.GetMoldedSurface
  
  'Modifying Anchor Point
  Dim ShellStiffAnchorPt As String
  ShellStiffAnchorPt = ShellStiffener1.AnchorPoint
  ShellStiffener1.AnchorPoint = "catStrWebCenter"
  
  'Getting And Setting Profile Limit
  Dim StiffNewLimit As AnyObject
  Set StiffNewLimit = ObjPart.FindObjectByName("CROSS.90")
  Dim StiffNewLimitRef As Reference
  Set StiffNewLimitRef = ObjPart.CreateReferenceFromObject(StiffNewLimit)
  ShellStiffener1.SetProfileLimit 1, StiffNewLimitRef
  
  Dim ShellStiffLimitRef As Reference
  Set ShellStiffLimitRef = ShellStiffener1.GetProfileLimit(1)
  
  'Returning and Setting the AngleMode
  Dim StiffAngleMode As Integer
  StiffAngleMode = ShellStiffener1.AngleMode
  Dim StiffAngleMode2 As Long
  StiffAngleMode2 = 2
  Dim AngleModeValidity As Boolean
  AngleModeValidity = ShellStiffener1.IsAngleModeValid(StiffAngleMode2)
  ShellStiffener1.AngleMode = StiffAngleMode2
  
  'Getting WebSupportOffset of ShellStiffener
  ShellStiffener1.webSupportOffset = "30"
  Dim ShellStiffwebSupportOffset As Double
  ShellStiffwebSupportOffset = ShellStiffener1.webSupportOffset

  'Updating The Part with All Modifications
  ObjPart.Update
End Sub