Hallo,
ich habe ein Makro aufgezeichnet um einen Spline im Sketcher zu erzeugen (testhalber aufgezeichnet in R19 und R29, keine Unterschiede im Code).
Führe ich das Makro in einem Release R19 bis R26 aus ist das Ergebnis so wie es sein sollte, also gleich dem Spline der aufgezeichnet wurde (im Screenshot blau dargestellt).
Führe ich das gleiche Script ab R29 aus, entsteht ein Spline mit anderer Krümmung (im Screenshot grün dargestellt).
Allerdings nicht immer, in seltenen Fällen passt der Spline auch zur Aufzeichnung. Konnte bislang kein System dahinter erkennen.
Hat jemand hierzu eine Idee?
Was hat Einfluss auf den 2D Spline?
Hier der Code:
Sub CATMain() ' Aufzeichnung in R19 und R29 liefert den gleichen Code
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 sketch1 As Sketch
Set sketch1 = sketches1.Item("Skizze_Spline_1")
part1.InWorkObject = sketch1
Dim factory2D1 As Factory2D
Set factory2D1 = sketch1.OpenEdition()
Dim controlPoint2D1 As ControlPoint2D
Set controlPoint2D1 = factory2D1.CreateControlPoint(53.073217, 42.845176)
controlPoint2D1.ReportName = 9
Dim controlPoint2D2 As ControlPoint2D
Set controlPoint2D2 = factory2D1.CreateControlPoint(12.497147, -20.418754)
controlPoint2D2.ReportName = 10
Dim controlPoint2D3 As ControlPoint2D
Set controlPoint2D3 = factory2D1.CreateControlPoint(-18.637317, 7.911757)
controlPoint2D3.ReportName = 11
Dim controlPoint2D4 As ControlPoint2D
Set controlPoint2D4 = factory2D1.CreateControlPoint(-44.100789, -13.831505)
controlPoint2D4.ReportName = 12
Dim controlPoint2D5 As ControlPoint2D
Set controlPoint2D5 = factory2D1.CreateControlPoint(-95.760733, 18.055953)
controlPoint2D5.ReportName = 13
Dim arrayOfObject1(4)
Set arrayOfObject1(0) = controlPoint2D5
Set arrayOfObject1(1) = controlPoint2D4
Set arrayOfObject1(2) = controlPoint2D3
Set arrayOfObject1(3) = controlPoint2D2
Set arrayOfObject1(4) = controlPoint2D1
Dim spline2D1 As Spline2D
Set factory2D1Variant = factory2D1
Set spline2D1 = factory2D1Variant.CreateSpline(arrayOfObject1)
spline2D1.ReportName = 14
sketch1.CloseEdition
part1.InWorkObject = body1
part1.Update
End Sub
Gruß
Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP