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

Show most helpful answer Hide most helpful answer

..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.

Adjuntos (1)

Type: application/zip
Descargado 686 veces
Size: 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.

Adjuntos (1)

Type: image/png
Descargado 20 veces
Size: 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

Adjuntos (1)

Type: image/png
Descargado 21 veces
Size: 26,93 KiB

Danke Nemo,

das hat bei mir funktioniert.


https://campus.allplan.com/ utiliza cookies  -  Aqui

Acéptalo