Hallo,
Ich bin vor einigen Tagen in die Welt der Makroprogrammierung eingestiegen mit Hilfe des Buches von Dieter Ziethen und viel Internetrecherche, bin aber jetzt an einem Problem angelangt, für das ich selber keine Lösung mehr finde, und hoffe, dass hier jemand gewillt ist mir zu Helfen.
Mein Makro lässt den Nutzer in der Produktebene die Achse eines Bohrungsstopfens selektieren, und die Achsen mehrerer Bohrungen in einem anderen Part. Der Stopfen wird dann so oft kopiert wie nötig, und es werden Bedingungen erstellt um die Stopfen entsprechend in die Bohrungen zu platzieren.
Soweit funktioniert auch alles.
Ich hätte jetzt aber gerne die Option, statt den ganzen einzelnen Bohrungen auch eine einzige Steuerskizze mit Punkten auswählen zu können.
Selektiert wird also ein Sketch, welcher irgendwo liegen kann, und mehrere Point2D enthält.
Der erste Ansatz war, sich einfach die Referenzen von der Selektion geben zu lassen:
Code:
Elseif Sel.Item(1).Type = "Sketch" Then
Dim Geos
Set Geos = Sel.Item(1).Value.GeometricElements
For i = 1 to Geos.Count
If Geos.Item(i).GeometricType = catGeoTypePoint2D Then
Sel.Clear
Sel.Add Geos.Item(i)
Set BohrungsAchse(Nummer) = Sel.Item(1).Value
Set BohrungsAchseRef(Nummer) = Sel.Item(1).Reference
Nummer = Nummer + 1
End If
Next
Dies funktioniert allerdings nicht mit der Fehlermeldung: "Das Verfahren Reference ist fehlgeschlagen"
Der nächste Plan war, mir die Referenz über das Part zu holen:
Code:
Elseif Sel.Item(1).Type = "Sketch" Then
Dim Geos
Set Geos = Sel.Item(1).Value.GeometricElements
Set BohrungsPart = Sel.Item(1).LeafProduct
For i = 1 to Geos.Count
If Geos.Item(i).GeometricType = catGeoTypePoint2D Then
Sel.Clear
Sel.Add Geos.Item(i)
Set BohrungsAchse(Nummer) = Sel.Item(1).Value
Set BohrungsAchseRef(Nummer) = BohrungsPart.CreateReferenceFromObject (Sel.Item(1).Value)
Nummer = Nummer + 1
End If
Next
Dann bekomme ich: "Das Element unterstützt die Eigenschaft oder Methode nicht 'BohrungsPart.CreateReferenceFromObject'"
Genauso wenig Erfolg habe ich über "CreateReferenceFromGeometry"....
In meiner Internetrecherche habe ich ähnliche Probleme zwar vereinzelt gefunden, jedoch nirgendwo eine konkrete Lösung.
Hat irgendjemand hier einen Vorschlag?
Vielen Dank im Vorraus
Marcus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP