Language="VBSCRIPT" 'My macro creates five cylinders Sub CATMain() Dim documents1 As Documents Set documents1 = CATIA.Documents Dim partDocument1 As Document Set partDocument1 = documents1.Add("Part") Dim part1 As Part Set part1 = partDocument1.Part Dim bodies1 As Bodies Set bodies1 = part1.Bodies Dim body1 As Body Set body1 = bodies1.Item("MechanicalTool.1") Dim sketches1 As Sketches Set sketches1 = body1.Sketches Dim originElements1 As OriginElements Set originElements1 = part1.OriginElements Dim reference1 As AnyObject Set reference1 = originElements1.PlaneXY x = 0 Dim arrayOfVariantOfDouble1(8) arrayOfVariantOfDouble1(0) = 0.000000 arrayOfVariantOfDouble1(1) = 0.000000 arrayOfVariantOfDouble1(2) = 0.000000 arrayOfVariantOfDouble1(3) = 1.000000 arrayOfVariantOfDouble1(4) = 0.000000 arrayOfVariantOfDouble1(5) = 0.000000 arrayOfVariantOfDouble1(6) = 0.000000 arrayOfVariantOfDouble1(7) = 1.000000 arrayOfVariantOfDouble1(8) = 0.000000 For I = 1 To 5 Dim sketch1 As Sketch Set sketch1 = sketches1.Add(reference1) sketch1.SetAbsoluteAxisData arrayOfVariantOfDouble1 Dim factory2D1 As Factory2D Set factory2D1 = sketch1.OpenEdition() Dim geometricElements1 As GeometricElements Set geometricElements1 = sketch1.GeometricElements Dim axis2D1 As GeometricElement Set axis2D1 = geometricElements1.Item("AbsoluteAxis") Dim line2D1 As AnyObject Set line2D1 = axis2D1.GetItem("HDirection") line2D1.ReportName = 1 Dim line2D2 As AnyObject Set line2D2 = axis2D1.GetItem("VDirection") line2D2.ReportName = 2 Dim circle2D1 As Circle2D Set circle2D1 = factory2D1.CreateClosedCircle(x, 0.000000, 10.000000) circle2D1.ReportName = 3 sketch1.CloseEdition part1.Update Dim shapeFactory1 As Factory Set shapeFactory1 = part1.ShapeFactory Dim pad1 As Pad Set pad1 = shapeFactory1.AddNewPad(sketch1, 20.000000) part1.Update x = x + 25 Next End Sub