Option Explicit
'// COPYRIGHT DASSAULT SYSTEMES  2000
'******************************************************************************
' Purpose:       This CATScript demonstrates how to create an ArrangementRun
'                and change it's visualization to "Solid" mode, define a
'                round section data and apply a constant bend radius of 10 mm.
' Assumptions:   This assumes that a macro is being executed interactively.
' Author     :               
' Languages  :   VBScript
' CATIA Level:   V5R6
' Locale     :   English
'******************************************************************************


Sub CATMain()
   
   ' On Error Resume Next

   '----------------------------------------------
   'Create a new product document
   Dim objProdDoc        As ProductDocument
   Dim objRootProd       As Product
   Set objProdDoc      = CATIA.Documents.Add("Product")
   Set objRootProd     = objProdDoc.Product

   '----------------------------------------------
   'Retrieving Root Product's Relative Axis and Position Information
   Dim objMove           As Move
   Set objMove      = objRootProd.Move

   '----------------------------------------------
   ' Get ArrangementProduct
   Dim objArrProd        As ArrangementProduct
   Set objArrProd   = objRootProd.GetTechnologicalObject("ArrangementProduct")

   '----------------------------------------------
   ' Create ArrangementRun under the Root Product
   Dim dblRunPoints(75)      As Double
   Dim dblMathDirection(3)   As Double
   Dim objArrRun             As ArrangementRun

   dblRunPoints(0)   =  300.0
   dblRunPoints(1)   =  100.0
   dblRunPoints(2)   =  0.0

   dblRunPoints(3)   =  441.42
   dblRunPoints(4)   =  158.58
   dblRunPoints(5)   =  1.25

   dblRunPoints(6)   =  500.0
   dblRunPoints(7)   =  300.0
   dblRunPoints(8)   =  2.5

   dblRunPoints(9)   =  441.42
   dblRunPoints(10)  =  441.42
   dblRunPoints(11)  =  3.75

   dblRunPoints(12)   =  300.0
   dblRunPoints(13)  =  500.0
   dblRunPoints(14)  =  5.0

   dblRunPoints(15)  =   158.58
   dblRunPoints(16)  =  441.42
   dblRunPoints(17)  =  6.25

   dblRunPoints(18)  =  100.0
   dblRunPoints(19)  =  300.0
   dblRunPoints(20)  =  7.5 

   dblRunPoints(21)  =  158.58
   dblRunPoints(22)  =  158.58
   dblRunPoints(23)  =  8.75

   dblRunPoints(24)  =  300.0
   dblRunPoints(25)  =  100.0
   dblRunPoints(26)  =  10

   dblRunPoints(27)   =  441.42
   dblRunPoints(28)   =  158.58
   dblRunPoints(29)   =  11.25

   dblRunPoints(30)   =  500.0
   dblRunPoints(31)   =  300.0
   dblRunPoints(32)   =  12.5

   dblRunPoints(33)   =  441.42
   dblRunPoints(34)  =  441.42
   dblRunPoints(35)  =  13.75

   dblRunPoints(36)   =  300.0
   dblRunPoints(37)  =  500.0
   dblRunPoints(38)  =  15.0

   dblRunPoints(39)  =   158.58
   dblRunPoints(40)  =  441.42
   dblRunPoints(41)  =  16.25

   dblRunPoints(42)  =  100.0
   dblRunPoints(43)  =  300.0
   dblRunPoints(44)  =  17.5  

   dblRunPoints(45)  =  158.58
   dblRunPoints(46)  =  158.58
   dblRunPoints(47)  =  18.75

   dblRunPoints(48)  =  300.0
   dblRunPoints(49)  =  100.0
   dblRunPoints(50)  =  20

   dblRunPoints(51)   =  441.42
   dblRunPoints(52)   =  158.58
   dblRunPoints(53)   =  21.25

   dblRunPoints(54)   =  500.0
   dblRunPoints(55)   =  300.0
   dblRunPoints(56)   =  22.5

   dblRunPoints(57)   =  441.42
   dblRunPoints(58)  =  441.42
   dblRunPoints(59)  =  23.75

   dblRunPoints(60)   =  300.0
   dblRunPoints(61)  =  500.0
   dblRunPoints(62)  =  25.0

   dblRunPoints(63)  =   158.58
   dblRunPoints(64)  =  441.42
   dblRunPoints(65)  =  26.25

   dblRunPoints(66)  =  100.0
   dblRunPoints(67)  =  300.0
   dblRunPoints(68)  =  27.5 

   dblRunPoints(69)  =  158.58
   dblRunPoints(70)  =  158.58
   dblRunPoints(71)  =  28.75

   dblRunPoints(72)  =  300.0
   dblRunPoints(73)  =  100.0
   dblRunPoints(74)  =  30

   dblMathDirection(0) = 1.0
   dblMathDirection(1) = 0.0
   dblMathDirection(2) = 0.0

   Set objArrRun             = objArrProd.ArrangementRuns.AddRun(objMove,dblRunPoints, dblMathDirection)

   '----------------------------------------------
   ' Change Properties of ArrangementRun
   objArrRun.SectionType     = CatArrangementRouteSectionRound
   objArrRun.SectionDiameter = 10.0
   objArrRun.VisuMode        = CatArrangementRouteVisuModeSolid

   '----------------------------------------------
   ' Define Bend Radius of Nodes
   Dim intK As Integer   
   For intK = 1 To objArrRun.ArrangementNodes.Count
     objArrRun.ArrangementNodes.Item(intK).BendRadius = 10.0
   Next

End Sub