Hallo Forengemeinde
Ich habe ein Problem mit einem Macro welches ich Schreiben möchte, ich bin leider noch nicht so Fit da drin Aber ich komme mal zum Punkt.
Ich möchte ein Makro schreiben welches mir aus einer Anzahl aus 360 Punkten eine Polylinie erzeugt...
Zum Allgemeinem Verständniss befindet sich im anhang ein Screenshot auf dem man den Aufbau meines .Parts sieht
Die Punkte die ich verwenden möchten liegen im GEO SET "POINTS" siehe screenshot ( part_2 )
Die Polylinie soll im GEO SET "CURVE" erstellt werden siehe screenshot ( part_1 )
So nun meine Idee, ich habe mit dem Makrorecorder mal eufgezeichnet was passiert wenn ich mal 2 Punkte verbinden möchte
Dann habe ich den Code ein wenig zurechtgerückt und das Makro so wie es jetzt ist ausgeführt, welches auch super funktioniert hat.
Aber es hat mir halt nur 2 Punkte verbunden was ja auch klar ist...
Nun habe ich mir überlegt wenn ich jetzt eine For-Next Schleife mache die ich halt 360 mal durchlaufen lasse
sollte das ja funktionieren, ich muss dafür aber natürlich bei jedem Durchlauf einige Zahlenwerte um 1 Hochsetzen
Z.B. Point.1 zu Point.2 ... Point.3 ... usw ....
Das würde ich ja mit einem Zähler umsetzen können
Nun kommt es zum eigentlichen Problem, ich weiss einfach nicht wie ich den Zähler an die Parameter Point.ZÄHLER weitergeben soll
Es kommt dabei zu Fehlermeldungen bezüglich CODE DEBUGGING bla bla ....
Lange Rede kurzer Sinn, hier ist mal der Makro Code im Funktionstüchtigem Zustand ( er erstellt aber halt nur eine Polylinie aus 2 Punkten )
Code:
Language="VBSCRIPT"
Sub CATMain()
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set hybridShapeFactory1 = part1.HybridShapeFactory
Set hybridShapePolyline1 = hybridShapeFactory1.AddNewPolyline()
Set hybridBodies1 = part1.HybridBodies
Set hybridBody1 = hybridBodies1.Item("POINTS")
Set hybridShapes1 = hybridBody1.HybridShapes
' PUNKT 1 Wird hinzugefügt
Set hybridShapePointCoord1 = hybridShapes1.Item("Point.0" )
Set reference1 = part1.CreateReferenceFromObject(hybridShapePointCoord1)
hybridShapePolyline1.InsertElement reference1, 1
' PUNKT 2 Wird hinzugefügt
Set hybridShapePointCoord2 = hybridShapes1.Item("Point.1")
Set reference2 = part1.CreateReferenceFromObject(hybridShapePointCoord2)
hybridShapePolyline1.InsertElement reference2, 2
hybridShapePolyline1.Closure = False
Set hybridBody2 = hybridBodies1.Item("CURVE")
hybridBody2.AppendHybridShape hybridShapePolyline1
part1.InWorkObject = hybridShapePolyline1
part1.Update
End Sub
Mein Grundgedanke war halt das ich das MAKRO Folgendermaßen aufbauen könnte
Code:
Language="VBSCRIPT"
Sub CATMain()
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set hybridShapeFactory1 = part1.HybridShapeFactory
Set hybridShapePolyline1 = hybridShapeFactory1.AddNewPolyline()
Set hybridBodies1 = part1.HybridBodies
Set hybridBody1 = hybridBodies1.Item("POINTS")
Set hybridShapes1 = hybridBody1.HybridShapes
' PUNKT 1 Wird hinzugefügt
Dim PUNKT, ZAEHLER
ZAEHLER = 1
For PUNKT = 1 To 360 Step 1
Set hybridShapePointCoordZAEHLER = hybridShapes1.Item("Point.PUNKT")
Set referenceZAEHLER = part1.CreateReferenceFromObject(hybridShapePointCoordZAEHLER)
hybridShapePolyline1.InsertElement referenceZAEHLER, ZAEHLER
ZAEHLER = ZAEHLER + 1
Next
hybridShapePolyline1.Closure = False
Set hybridBody2 = hybridBodies1.Item("CURVE")
hybridBody2.AppendHybridShape hybridShapePolyline1
part1.InWorkObject = hybridShapePolyline1
part1.Update
Ich wäre echt Dankbar für eine Hilfe von euch !!! Ich verzweifle langsam da dran !!!
PS: Lasst euch bitte nicht von den Screenshot Namen verwirren ( Part_1 und Part_2 ) Ich habe sie nur so zur Trennung benannt... Beide GEO SETS befinden sich Natürlich in einem PART ...
Mfg: Nreim
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP