Zum Inhalt springen

Script zum gruppieren und benennen, Script zum Step-Export


holzronny

Empfohlene Beiträge

 

Hallo Zusammen,

ich möchte hier die Script-Experten unter Euch um Hilfe bitten bzw. fragen, ob sich so etwas überhaupt realisieren lässt. Das ist bei mir eine immer wiederkehrende Arbeit mit meist hundert und mehr Bauteilen als Vorbereitung für die CNC-Bearbeitung. Vielleicht habt Ihr ja auch eine andere Idee, wie sich das ganze weniger zeitaufwendig machen lässt. Ich würde mich über jede Hilfe freuen.

1.)    Script1:  Ich möchte ein 3D-Bauteil gruppieren und die Gruppe mit dem vorhandenen Bauteilnamen benennen (Feld „Name“ ganz unten in Info-Palette). Der Name des 3D-Bauteils steht in der Datenbank „Bauteil – Alle“ im Feld „Name“.

Mein gewünschtes Vorgehen:

Bauteil markieren und Script ausführen.

 

Mein derzeitiges Vorgehen:    

Bauteil markieren, Namen aus Infopalette kopieren, gruppieren, kopierten Namen in Infopalette einfügen

2.)   Script 2:  Ich habe viele Konstruktionsebenen, auf denen jeweils eine benannte Gruppe liegt. Der Name von Gruppe und Konstruktionsebene stimmen überein.

Ich möchte alle Konstruktionsebenen, die eine benannte Gruppe beinhalten, ins „Step“Format exportieren, wobei jede Konstruktionsebene in eine eigene Datei mit dem Namen der Konstruktionsebene exportiert werden soll. Die Step-Dateien sollten in einem Ordner liegen.

 

Mein gewünschtes Vorgehen:

Script ausführen, Alle Ebenen werden exportiert und im gewünschten Ordner gespeichert

 

Mein derzeitiges Vorgehen:

Ebenen – Nur aktive anzeigen wählen

Klassen – XG Bearbeitungen … ausschalten

Ebene wählen

Gruppe markieren und in Infopalette unten den Namen kopieren

Menü_ „ Datei_Export Step“ wählen

Option „3D Körper in Einzelflächen…“ muss deaktiviert sein

kopierten Namen einfügen, Speicherort wählen u. speichern

Nächste Ebene wählen……

 

Viele Grüße

Ronny

 

 

 

Vectorworks 2021 Interiorcad, Win10

Prozessor    Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz, 3101 MHz, 4 Kern(e), 4 logische(r) Prozessor(en)

Installierter physischer Speicher (RAM)    16,0 GB

Grafikkarte   NVIDIA Quadro M2000

 

Link zu diesem Kommentar

Hallo Ronny

 

Script 1 ist ohne Probleme mit Marionette realisierbar.

Versuche einmal mit einem einfachen Bauteil. Tipp mit dem Name-Node erhälst du den Handle von einem Objekt. Dann kannst du den ganzen Prozess mit Gruppieren und den Namen einmal an einem einfachen Teil üben. Später baust du das Script aus, damit es auch an mehreren Objekten gleichzeitig funktioniert. Wenn du das ganze Script auf einmal bauen willst, wirst du dich sofort aufregen und aufgeben. Wenn du nicht mehr weiterkommst, darfst du gerne fragen.

 

Für Script 2 hast du das Problem, dass der Export ins STEP nicht von einem Standardnode erledigt werden kann und ich von demher bezweifle, dass dies effizient zu regeln ist. Weil leider kann von Marionette (oder auch Python) kein Einfluss auf Dialogfelder genommen werden. Dies bedeutet, dass für die Generierung vom Exportfile nicht der bereits von VW programmierte Code verwendet werden kann, sondern alles selbst geschrieben werden müsste. Wird sehr komplex.

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Hallo Manuel,

 

Vielen Dank für Deine Antwort und angebotene Hilfe. Ich werde das mit der Marionette versuchen und fragen wenn ich nicht weiter komme.

Was den Step-Export betrifft, wünschte ich es gäbe so etwas wie beim DXF-Export.

Danke nochmal.

 

Viele Grüße

Ronny

Vectorworks 2021 Interiorcad, Win10

Prozessor    Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz, 3101 MHz, 4 Kern(e), 4 logische(r) Prozessor(en)

Installierter physischer Speicher (RAM)    16,0 GB

Grafikkarte   NVIDIA Quadro M2000

 

Link zu diesem Kommentar

Hallo herbieherb,

 

Vielen Dank für Deine Antwort.  Müsste man das Script dann für jede Konstuktiosebene ausführen? Wenn das Script den Namen der Konstruktionsebene mit in die Zwischenablage kopieren könnte, damit ich den Dateinamen nur noch einfügen muss, dann wäre das schon eine erhebliche Zeitersparnis.  Jeden Export mit Enter bestätigen würde mich nicht stören.

 

 

Viele Grüße 

Ronny 

 

Vectorworks 2021 Interiorcad, Win10

Prozessor    Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz, 3101 MHz, 4 Kern(e), 4 logische(r) Prozessor(en)

Installierter physischer Speicher (RAM)    16,0 GB

Grafikkarte   NVIDIA Quadro M2000

 

Link zu diesem Kommentar

Hallo  Manuel,

 

Ich habe mich heute an der Marionette versucht und folgende  Frage ist aufgetaucht. 

Wie kommt man an den Namen eines selektierten 3D-Bauteils (interiorcad), der in einer Datenbank steht?  Gibt es einen Node, der mich auffordert ein Bauteil zu markieren? 

 

Viele Grüße 

Ronny 

Vectorworks 2021 Interiorcad, Win10

Prozessor    Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz, 3101 MHz, 4 Kern(e), 4 logische(r) Prozessor(en)

Installierter physischer Speicher (RAM)    16,0 GB

Grafikkarte   NVIDIA Quadro M2000

 

Link zu diesem Kommentar

Du kannst dir mit dem Object by Criteria-Node alle selektierten Objekte ausgeben lassen. Dies funktionert allerdings nur in einem Menübefehl. (was ja auch das Endziel ist). Während dem Erstellen vom Netzwerk, würde ich mit einem Name-Node ein einzelnes Objekt bearbeiten. (Bestimmt durch seinen Namen.) Sobald du mit dem Ergebnis zufrieden bist ersetzt du den Name-Node durch den Object by Criteria-Node.

Zum Auslesen von Datenbanken brauchst du Get Record Field.

  • Like 1

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Hallo Manuel,

 

danke für Deine hilfreichenTips. Ich denke den Namen des Bauteils konnte ich aus der Datenbank auslesen und es auch gruppieren, nur gelingt es mir nicht, der Gruppe den ausgelesenen Namen zuzuweisen. Auch ist mir aufgefallen, dass ich am Ende zwei Gruppen (verschachtelt) habe. Sehe ich das richtig, dass ich die Gruppe dann außerhalb der Marionette auflösen muss, um an die erstellte und benannte Gruppe heranzukommen? Ich stelle hier mal zur Kontrolle meinen ersten stümperhaften Versuch ein, um nicht zuviel falsch zu machen und würde mich über weitere Hilfe freuen.

 

Viele Grüße

Ronny

image.thumb.png.07319b95ff729d574617bb5935058396.png

Vectorworks 2021 Interiorcad, Win10

Prozessor    Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz, 3101 MHz, 4 Kern(e), 4 logische(r) Prozessor(en)

Installierter physischer Speicher (RAM)    16,0 GB

Grafikkarte   NVIDIA Quadro M2000

 

Link zu diesem Kommentar

Hallo Ronny

 

Sieht doch schon einmal gut aus.

Die Verbindung von sFldValue zum Group-Node brauchst du nicht. Du willst ja nicht den Bauteilnamen gruppieren sondern nur das Bauteil an sich. Anschliessend kannst du mit Set Name der Gruppe den Namen zuweisen.

 

Zu den zwei Gruppen. Die Äussere wird automatisch von Marionette erzeugt, damit das Ergebins von der letzten Ausführung gelöscht werden kann und durch dasjenige von der aktuellen Ausführung ersetzt werden kann. Sie hat auch einen ganz speziellen Namen. Von demher ist dein Ergebnis  korrekt.

 

Sobald die innere Gruppe den korrekten Namen erhalten hat, kannst du dein Netzwerk in einen Wrapper umwandeln (Rechtsklick auf einen Node>Wrap Marionette Netzwerk). Daraus erzeugst du wiederum mit Rechtsklick>In Menübefehl umwandeln einen Befehl, den du anschliessend ausführen kannst.

 

Wenn du soweit bist, kannst du dich gerne wieder melden.

  • Like 1

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Halllo Manuel,

 

danke für Deine Hilfe, leider muss ich schon wieder fragen. Ich habe versucht, mit dem Set Name Node der Gruppe den Namen zu geben, doch leider funktioniert das bei mir nicht. Was mache ich falsch?

 

Viele Grüße

Ronny

 

image.thumb.png.d1d8a1aea48bbcd19bc42f6386358ac2.png

Vectorworks 2021 Interiorcad, Win10

Prozessor    Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz, 3101 MHz, 4 Kern(e), 4 logische(r) Prozessor(en)

Installierter physischer Speicher (RAM)    16,0 GB

Grafikkarte   NVIDIA Quadro M2000

 

Link zu diesem Kommentar

Hallo Herbieherb,

 

Danke für Deine Antwort und Hilfe. Ich bin sehr an diesem Script interessiert. Kann man das Script mit Marionette erstellen und mit welchem Node wird der Export-Dialog aufrufen?

 

Viele Grüße

Ronny

 

Am 2.9.2021 um 10:08 schrieb herbieherb:

Den Exportdialog per Script aufrufen könnte man. Man müsste einfach jeden Export mit Enter bestätigen.

 

Am 3.9.2021 um 11:37 schrieb herbieherb:

Mit Python kann man auch Zeugs in die Zwischenablage kopieren. Das wäre kein Problem.

 

Vectorworks 2021 Interiorcad, Win10

Prozessor    Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz, 3101 MHz, 4 Kern(e), 4 logische(r) Prozessor(en)

Installierter physischer Speicher (RAM)    16,0 GB

Grafikkarte   NVIDIA Quadro M2000

 

Link zu diesem Kommentar

Hallo Ronny

 

Dein Script oben sollte meiner Ansicht nach funktionieren. Bist du sicher, dass die innere Gruppe nicht benannt wird? In diesem Fall wird es wohl schon ein Objekt mit Namen Bauteil-1 im Dokument geben. Schaue einmal mit einer Tabelle nach.

 

Das zweite Script wirst du nicht ohne benutzerdefinierte Nodes erstellen können. Wenn ich ein wenig Zeit habe, schaue ich es mir genauer an.

  • Like 1

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Hallo Manuel,

 

danke Dir, Du hast Recht, es war ein Objekt mit Namen Bautei-1 im Dokument (Ich hatte unglücklicherweise dem Bauteil den gleichen Namen gegeben, den er auch aus der Datenbank ausliest). Ich habe nun den Menübefehl erstellt und getestet, die Marionette gruppiert das selektierte Bauteil und benennt die Gruppe, soweit funktioniert das wie erhofft. Leider gibt es ein paar nicht erwünschte Dinge:

  • Ich muss zwei Gruppen auflösen, um an die benannte Gruppe heranzukommen (lässt sich das vermeiden?)
  • Wenn ich die nicht erwünschten Gruppen aufgelöst habe und die benannte Gruppe sehe, dann das nächste Bauteil selektiere und den Menübefehl ausführe, wird die bereits benannte Gruppe mitgruppiert (das passiert nicht, wenn ich die unerwünschten Gruppen nicht auflöse) - sehr seltsam.

Ich würde die Marionette auch gern noch erweitern. Da es in meinen Zeichnungen auch bereits gruppierte 3D-Bauteile gibt, möchte ich die vorhandene Gruppe mit dem Namen des darin befindlichen 3D-Bauteils benennen.

Ist es möglich, dass zusätzlich geprüft wird ob die Selektion eine Gruppe ist, die ein 3D-Bauteil beinhaltet - wenn ja, dann soll die Gruppe den Namen des 3D-Bauteils erhalten.?

 

Viele Grüße

Ronny

 

 

image.thumb.png.df90ebbcf02e05e3b2e9027bde2a197e.png

Vectorworks 2021 Interiorcad, Win10

Prozessor    Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz, 3101 MHz, 4 Kern(e), 4 logische(r) Prozessor(en)

Installierter physischer Speicher (RAM)    16,0 GB

Grafikkarte   NVIDIA Quadro M2000

 

Link zu diesem Kommentar

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Forenstatistik

    • Themen insgesamt
      20,8Tsd
    • Beiträge insgesamt
      103,3Tsd
×
×
  • Neu erstellen...