Sub CATMain() Dim partDocument1 As PartDocument Set partDocument1 = CATIA.ActiveDocument Dim part1 As part Set part1 = partDocument1.part Dim bodies1 As Bodies Set bodies1 = part1.Bodies Dim body1 As Body Set body1 = bodies1.Item("Hauptkörper") Dim sketches1 As Sketches Set sketches1 = body1.Sketches Dim reference1 As Reference Set reference1 = part1.CreateReferenceFromName("Selection_RSur:(Face:(Brp:(AxisSystem.1;1);None:();Cf9:());AxisSystem.1)") Dim sketch1 As Sketch Set sketch1 = sketches1.Add(reference1) Dim arrayOfVariantOfDouble1(8) arrayOfVariantOfDouble1(0) = 0# arrayOfVariantOfDouble1(1) = 0# arrayOfVariantOfDouble1(2) = 0# arrayOfVariantOfDouble1(3) = 1# arrayOfVariantOfDouble1(4) = 0# arrayOfVariantOfDouble1(5) = 0# arrayOfVariantOfDouble1(6) = 0# arrayOfVariantOfDouble1(7) = 1# arrayOfVariantOfDouble1(8) = 0# Set sketch1Variant = sketch1 sketch1Variant.SetAbsoluteAxisData arrayOfVariantOfDouble1 Dim factory2D1 As Factory2D Set factory2D1 = sketch1.OpenEdition() Dim geometricElements1 As GeometricElements Set geometricElements1 = sketch1.GeometricElements Dim axis2D1 As Axis2D Set axis2D1 = geometricElements1.Item("Absolute Achse") Dim line2D1 As Line2D Set line2D1 = axis2D1.GetItem("H-Richtung") line2D1.ReportName = 1 Dim line2D2 As Line2D Set line2D2 = axis2D1.GetItem("V-Richtung") line2D2.ReportName = 2 Dim point2D1 As Point2D Set point2D1 = factory2D1.CreatePoint(-17.894065, 51.055697) point2D1.ReportName = 3 Dim point2D2 As Point2D Set point2D2 = factory2D1.CreatePoint(29.823453, 51.055697) point2D2.ReportName = 4 Dim line2D3 As Line2D Set line2D3 = factory2D1.CreateLine(-17.894065, 51.055697, 29.823453, 51.055697) line2D3.ReportName = 5 line2D3.StartPoint = point2D1 line2D3.EndPoint = point2D2 Dim constraints1 As Constraints Set constraints1 = sketch1.Constraints Dim reference2 As Reference Set reference2 = part1.CreateReferenceFromObject(line2D3) Dim reference3 As Reference Set reference3 = part1.CreateReferenceFromObject(line2D1) Dim constraint1 As Constraint Set constraint1 = constraints1.AddBiEltCst(catCstTypeHorizontality, reference2, reference3) constraint1.Mode = catCstModeDrivingDimension Dim point2D3 As Point2D Set point2D3 = factory2D1.CreatePoint(-17.894065, 29.765851) point2D3.ReportName = 6 Dim point2D4 As Point2D Set point2D4 = factory2D1.CreatePoint(31.911095, 29.765851) point2D4.ReportName = 7 Dim line2D4 As Line2D Set line2D4 = factory2D1.CreateLine(-17.894065, 29.765851, 31.911095, 29.765851) line2D4.ReportName = 8 line2D4.StartPoint = point2D3 line2D4.EndPoint = point2D4 Dim reference4 As Reference Set reference4 = part1.CreateReferenceFromObject(line2D4) Dim reference5 As Reference Set reference5 = part1.CreateReferenceFromObject(line2D1) Dim constraint2 As Constraint Set constraint2 = constraints1.AddBiEltCst(catCstTypeHorizontality, reference4, reference5) constraint2.Mode = catCstModeDrivingDimension Dim point2D5 As Point2D Set point2D5 = factory2D1.CreatePoint(-17.894065, 40.410774) point2D5.ReportName = 9 Dim circle2D1 As Circle2D Set circle2D1 = factory2D1.CreateCircle(-17.894065, 40.410774, 10.644923, 1.570796, 4.712389) circle2D1.CenterPoint = point2D5 circle2D1.ReportName = 10 circle2D1.StartPoint = point2D1 circle2D1.EndPoint = point2D3 Dim reference6 As Reference Set reference6 = part1.CreateReferenceFromObject(circle2D1) Dim reference7 As Reference Set reference7 = part1.CreateReferenceFromObject(line2D3) Dim constraint3 As Constraint Set constraint3 = constraints1.AddBiEltCst(catCstTypeTangency, reference6, reference7) constraint3.Mode = catCstModeDrivingDimension Dim reference8 As Reference Set reference8 = part1.CreateReferenceFromObject(line2D4) Dim reference9 As Reference Set reference9 = part1.CreateReferenceFromObject(circle2D1) Dim constraint4 As Constraint Set constraint4 = constraints1.AddBiEltCst(catCstTypeTangency, reference8, reference9) constraint4.Mode = catCstModeDrivingDimension Dim point2D6 As Point2D Set point2D6 = factory2D1.CreatePoint(29.823453, 40.410774) point2D6.ReportName = 11 Dim point2D7 As Point2D Set point2D7 = factory2D1.CreatePoint(29.823453, 29.765851) point2D7.ReportName = 12 Dim circle2D2 As Circle2D Set circle2D2 = factory2D1.CreateCircle(29.823453, 40.410774, 10.644923, 4.712389, 7.853982) circle2D2.CenterPoint = point2D6 circle2D2.ReportName = 13 circle2D2.StartPoint = point2D7 circle2D2.EndPoint = point2D2 Dim reference10 As Reference Set reference10 = part1.CreateReferenceFromObject(point2D7) Dim reference11 As Reference Set reference11 = part1.CreateReferenceFromObject(line2D4) Dim constraint5 As Constraint Set constraint5 = constraints1.AddBiEltCst(catCstTypeOn, reference10, reference11) constraint5.Mode = catCstModeDrivingDimension Dim reference12 As Reference Set reference12 = part1.CreateReferenceFromObject(line2D3) Dim reference13 As Reference Set reference13 = part1.CreateReferenceFromObject(circle2D2) Dim constraint6 As Constraint Set constraint6 = constraints1.AddBiEltCst(catCstTypeTangency, reference12, reference13) constraint6.Mode = catCstModeDrivingDimension Dim reference14 As Reference Set reference14 = part1.CreateReferenceFromObject(line2D4) Dim reference15 As Reference Set reference15 = part1.CreateReferenceFromObject(circle2D2) Dim constraint7 As Constraint Set constraint7 = constraints1.AddBiEltCst(catCstTypeTangency, reference14, reference15) constraint7.Mode = catCstModeDrivingDimension sketch1.CloseEdition part1.Update Set factory2D1 = sketch1.OpenEdition() sketch1.CloseEdition part1.Update Set factory2D1 = sketch1.OpenEdition() point2D1.SetData -15.806423, 51.055697 point2D2.SetData 31.911095, 51.055697 line2D3.SetData 4.175283, 51.055697, 1#, 0# point2D3.SetData -15.806423, 29.765851 line2D4.SetData 4.175283, 29.765851, 1#, 0# point2D5.SetData -15.806423, 40.410774 circle2D1.SetData -15.806423, 40.410774, 10.644923 point2D6.SetData 31.911095, 40.410774 point2D7.SetData 31.911095, 29.765851 circle2D2.SetData 31.911095, 40.410774, 10.644923 Dim reference16 As Reference Set reference16 = part1.CreateReferenceFromObject(point2D4) Dim reference17 As Reference Set reference17 = part1.CreateReferenceFromObject(point2D7) Dim constraint8 As Constraint Set constraint8 = constraints1.AddBiEltCst(catCstTypeOn, reference16, reference17) constraint8.Mode = catCstModeDrivingDimension sketch1.CloseEdition part1.Update End Sub