Zum Inhalt springen

Jedes 3d Objekt auf extra ebene


gsedlmeier

Empfohlene Beiträge

Hallo ich habe einen Ausbau von einem Weltreisemobile.

Die ca 600 3d teile müssen an die CNC übergeben werden. 

Dazu möchte ich gerne jedes 3d Objekt auf eine extra ebene legen und diese am besten mit dem Namen des Objektes ( Infopalette unten) benennen.

Von dort aus hätte ich dann jede Ebene in die cnc exportiert. ( Je Teil eine DXF Datei)

Gibt es da ein Tool dafür, oder gibt es einen einfacheren Weg. 

Gruß Günther hat

Vectorworks 2023 interiocad mit Architektur 

Windows 10 64 bit

Link zu diesem Kommentar

#Bei L='Ausgangsebene eingeben' 
c = "NOTINDLVP & NOTINREFDLVP & (L='Ausgangsebene')"

LName = vs.GetLName(vs.ActLayer())

def proz(h):
	vs.DSelectAll()
	name = vs.GetName(h)
	vs.SetSelect(h)
	vs.DoMenuTextByName('Cut', 0)
	vs.Layer(name)
	vs.DoMenuTextByName('Paste In Place', 0)
	vs.Layer(LName)

vs.ForEachObject(proz, c)

Dieses Skript fügt jedes Objekt auf eine eigene Ebene ein und benennt die Ebene nach dem Namen des Objekts. Bei starten des Skripts musst du auf der Ausgangsebene mit den Objekten sein. 

Gruss Fabio

 

 

Bearbeitet von inderfab
  • Like 1

VWX24 SP4.1 | Architektur | MacOS 13.5 | M2 Max

Link zu diesem Kommentar

Kann den Beitrag irgendwie nicht bearbeiten. Hatte noch einen Überlegungsfehler, hier noch simpler:


LName = vs.GetLName(vs.ActLayer())
c = "NOTINDLVP & NOTINREFDLVP & (L='" + LName +"')"


def proz(h):
	vs.DSelectAll()
	name = vs.GetName(h)
	vs.SetSelect(h)
	vs.DoMenuTextByName('Cut', 0)
	vs.Layer(name)
	vs.DoMenuTextByName('Paste In Place', 0)
	vs.Layer(LName)

vs.ForEachObject(proz, c)

 

VWX24 SP4.1 | Architektur | MacOS 13.5 | M2 Max

Link zu diesem Kommentar
  • 2 Wochen später...

Hallo zusammen, das Tool funktioniert super, aber ich habe jetzt im Finalen Projekt ein Problem:

Bitte könnt ihr mir nochmal helfen:

Ich habe ca. 600 Bauteile die je eine Gruppe sind und diese Gruppe hat einen Namen.

Ziel ist es das jede Gruppe eine extra Ebene wird. Ebenenname = Gruppenname(aus Infoalette unten)

 

Das geht eigentlich gut aber:

In der Gruppe liegen bis zu 200 Objekte (Bohrungen, Ausschnitte......) die keinen Namen haben.

Diese sollten in die Ebene wie oben erzeugt von der Gruppe. 

Das Script macht aber für jedes Objekt (auch das in der Gruppe) jetzt eine einzelne Ebene (Konstruktionsebene 1 bis Konstruktionsebehe 999999...)

Das rechnet mein Rechner schon gar nicht mehr.

 

Ist es möglich nur jede Gruppe in eine extra Ebene zu schieben und der Inhalt der Gruppe ist auch Inhalt der Ebene.

Bitte um Hilfe der Script_Gurus

Günther Sedlmeier

 

Vectorworks 2023 interiocad mit Architektur 

Windows 10 64 bit

Link zu diesem Kommentar

In den ersten zwei Zeilen wird das Kriterium definiert, welche Objekte später bearbeitet werden sollen.

 

Anschlissend wird jedes Objekt, dass den Kriterien entspricht an die Funktion proz übergeben. Die erstellt die Ebenen und verschiebt die Objekte dorthin.

 

Du kannst nun ein Kriterium hinzufügen, dass nur Gruppen berabeitet werden sollen. Der Aufbau der Kriterien ist praktischerweise genau gleich wie bei den Filterzeilen in den Tabellen.

 

Bei dir könnte es in etwa so aussehen.

LName = vs.GetLName(vs.ActLayer())
c = "NOTINREFDLVP & NOTINDLVP & (T=GROUP) & (L='" + LName +"')"

...
Bearbeitet von Manuel Roth
  • Like 1

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar
  • 3 Monate später...

Hallo zusammen,

auch von mir vielen Dank für das tolle Script. Ich hätte noch eine Frage dazu. Ist es möglich, dass nur die Gruppen auf eine extra Ebene gelegt werden, denen ein Name ( Gruppenname(aus Infoalette unten)) zugewiesen wurde? Ich frage deshalb, da in meinen Zeichnungen auch noch viele andere Gruppen vorhanden sind, welche nicht auf einer extra Ebene liegen sollen.

Über Hilfe würde ich mich sehr freuen.

 

Viele Grüße

Ronny Geißler

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

 

Herzlich willkommen im Forum und Gratulation zu deiner Signatur.

 

Du kannst wie oben beschrieben das Kriterium ändern. Du musst deine Frage allerdings ein wenig anders stellen, dann kommst du auch selbst darauf.

 

Ist es möglich, dass alle Gruppen auf eine extra Ebene gelegt werden, die nicht keinen Namen haben?

LName = vs.GetLName(vs.ActLayer())
c = "NOTINREFDLVP & NOTINDLVP & (T=GROUP) & (L='" + LName +"') & (N<>'')"

...

 

  • Like 1
  • Lieben 1

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Hallo Manuel,

ich habe es gleich ausprobiert, das funktioniert super, vielen vielen Dank dafür.

 

Ich wünsche Dir noch ein schönes Wochenende.

 

Viele Grüße

Ronny Geißler

  • Like 1

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
  • 11 Monate später...

Hallo zusammen,

 

ich bin noch immer begeisterter Nutzer dieses Scripts und habe versucht es etwas anzupassen. Leider bekomme ich es nicht hin,  dass auch die gruppierten  Bauteile (Vollkörper mit Namen in Info-Palette unten) auf die entsprechende Ebene gelegt werden sondern nur die nicht gruppierten Bauteile (Vollkörper mit Namen in Info-Palette unten). Die Ebenen werden aber  für alle Bauteile (auch die gruppierten) mit dem entsprechenden Namen angelegt.

Ich habe erfolglos versucht, die Kriterien in verschiedensten Varianten zu ändern und möchte Euch deshalb um Hilfe bitten.

 

Viele Grüße,

Ronny Geißler

 

Script.png.06094d2e6d5923874a8490d3be2fff3c.png

 

Die Gruppen mit den darin befindlichen Bauteilen bleiben auf der Ausgangsebene.

1454995462_Scriptausgefhrt-1.thumb.png.c30f9d404afd51a4b261ae019f214ec5.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
      23,5Tsd
    • Beiträge insgesamt
      120,8Tsd
×
×
  • Neu erstellen...