Support Forum

Absetzen von SmartParts innerhalb eines PythonParts


Hallo,

ich möchte mit meinem Pythonpart durch den Nutzer ausgewählte SmartParts absetzen können. Mein Pythonpart berechnet Koordinaten für mehrere Punkte, an denen das SmartPart jeweils abgesetzt werden soll. Wie genau kann ich diese Funktion verallgemeinert für ein beliebiges SmartPart implementieren?

Gruss

Hilfreichste Antwort anzeigen Hilfreichste Antwort verbergen

..naja, so schnell würde ich nicht aufgeben.

Es gibt in Python das LibraryElement und ein dazu passendes Example LibraryElement.

Damit sollte es möglich sein, auch Makros (SmartParts) aus der Bibliothek abzusetzen.
Der LibraryElementType.eSmartSymbol könnte da zum Erfolg führen.
LibraryElementType.eFixture ist schließlich auch nichts anderes, als ein spezielles Makro, nämlich ein Einbauteil-Makro.

Wenn es nur mit Einbauteil-Makro's geht, dann nehmt einfach in SmartPart mit dem Typ "Punkt-Einbauteil".
Das ist aus Sicht von Python auch nur ein Einbauteil-Makro.

Da man natürlich ein Makro(SmartPart) nicht in einem anderen Makro (PythonPart) unterbringen kann, sollte man
dafür ein Interactor-Example umbauen.

Getestet habe ich das bisher nur mit Symbolen, indem ich mit Python
alle Stahlprofilquerschnitte auf einem Teilbild abgesetzt habe. Aber das waren Symbole (Elementgruppen)...

Nach meinem Wissensstand nicht möglich. Wenn sich hier etwas ändern sollte, wäre es sicher eine interessante Sache

..naja, so schnell würde ich nicht aufgeben.

Es gibt in Python das LibraryElement und ein dazu passendes Example LibraryElement.

Damit sollte es möglich sein, auch Makros (SmartParts) aus der Bibliothek abzusetzen.
Der LibraryElementType.eSmartSymbol könnte da zum Erfolg führen.
LibraryElementType.eFixture ist schließlich auch nichts anderes, als ein spezielles Makro, nämlich ein Einbauteil-Makro.

Wenn es nur mit Einbauteil-Makro's geht, dann nehmt einfach in SmartPart mit dem Typ "Punkt-Einbauteil".
Das ist aus Sicht von Python auch nur ein Einbauteil-Makro.

Da man natürlich ein Makro(SmartPart) nicht in einem anderen Makro (PythonPart) unterbringen kann, sollte man
dafür ein Interactor-Example umbauen.

Getestet habe ich das bisher nur mit Symbolen, indem ich mit Python
alle Stahlprofilquerschnitte auf einem Teilbild abgesetzt habe. Aber das waren Symbole (Elementgruppen)...

..also es funktioniert. Aber nur mit dem Trick, dass man das SmartPart vorher als Makro (.nmk) in der Bibliothek gespeichert hat.

Dann kann man mit dem LibraryElementType.eSmartSymbol dieses Makro auf dem Teilbild absetzen.

Anhänge (1)

Typ: application/zip
939-mal heruntergeladen
Größe: 6,16 KiB

Hallo,

danke für den Vorschlag. Ich schaue mir jetzt dein Beispiel an und hoffe, dass es für meinen Anwendungsfall auch funktioniert. Es ist natürlich ein extra Schritt für den Endnutzer, wenn er das SmartPart erst in ein Makro umwandeln muss, aber das sollte kein Problem sein.

Sollten die Dateien als Makro vorhanden sein, geht es für meinen Anwendungsfall auf jeden Fall. Es wäre natürlich deutlich schöner, wenn man über das Explorer Fenster die Dateien wählen könnte.
Mein Problem ist jedoch, dass ich nicht genau weiss, wie ich eine Makrodatei anhand eines SmartParts erstellen kann. Per Rechtsklick lässt sich nichts machen, und wenn man wie im angehangen Screenshot versucht, ein Makro zu erzeugen, welches das SmartPart beinhält, lässt Allplan das nicht zu.

Anhänge (1)

Typ: image/png
20-mal heruntergeladen
Größe: 66,47 KiB

1. Das SmartPart auf der Zeichenfläche absetzen
2. Bibliothek -> Element einfügen -> Makro einfügen
3. Makro wählen
4. Ausgangspunkt wählen (Warum weiss wohl Allplan selber nicht, da das Makro ja schon einen Einfügepunkt hat!!!)
5. Einfaches Makro ohne snoop
6. Bezeichnung eingeben

Anhänge (1)

Typ: image/png
21-mal heruntergeladen
Größe: 26,93 KiB

Danke Nemo,

das hat bei mir funktioniert.