Zum Inhalt springen

Python/Vectorscript: 3D-Details an/ausschalten


Jodak

Empfohlene Beiträge

vor einer Stunde schrieb Jodak:

Good morning,

 

is it possible to turn the 3d details on or off using python or vectorscript?

I couldn't find anything about this? Basically, there are some Interiorcad functions, I just couldn't find any documentation.

Hi,

 

My reply may not be relevant.

 

However, I think it will be very helpful if IC is able to show different level of 3D details, or allow users to define own 3D details. For example, users can define what classes can be displayed on each different level. 

 

image.png.814ceeadd22c5555b3563994c76d7bd7.png

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Uf. Das könnte komplex werden.

 

Vielleicht weiss @Nicolas Goutte weiter.

 

Spontan hätte ich aber mit vs.GetObjectVariableBoolean versucht, ob ich durch reines Ausprobieren (in einem Loop) den Wert erhalte.

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Monate später...

Wenn ich so nachdenke, können die 3D Details in einer Tabelle dargestellt werden. Die Tabelle zeigt True / False an. 
Meiner Meinung nach sind die Werte irgendwo einer Datenbank angehängt. 

Wenn nun die Funktion in der Tabelle erkennbar ist, könnte diese auch mittels Marionette manipuliert werden (DB Namen, DB-Feld, String…)

Get Record, Set Record. Dazwischen eine Wenn-Dann Abfrage und die Sache ist Geschichte. 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zauberstab alle aktivieren und dann in der Infopalette einschalten? Theoretisch kann man mit einem Script mit "SetRField" einen Infopalettenwert ändern und dann mit "ResetObject" resetten. Es kann aber sein, wenn man die Objekte auf diese Weise zurücksetzt, dass sie Ihre bearbeitungen verlieren. Also keine gute Idee, das mit einem Script zu machen
 

show_3D = True

kms = []
parts = []
def add_handle(h):
	rec_handle = vs.GetParametricRecord(h)
	pio_name = vs.GetName(rec_handle)
	if pio_name == 'XG Cabinet':
		kms.append(h)
	elif pio_name == 'XG Custom Part':
		parts.append(h)

c = "(NOTINDLVP & NOTINREFDLVP & ((PON='XG Cabinet') | (PON='XG Custom Part')))"	
vs.ForEachObject(add_handle, c)

for km in kms:
	vs.SetRField(km, 'XG Cabinet', 'Show3DDetails', show_3D)
	vs.ResetObject(km)
	
for part in parts:	
	vs.SetRField(km, 'XG Custom Part', 'Show3DDetails', show_3D)
	vs.ResetObject(part)


 

  • Like 3

Macbook m3 Max 48 GB | Ryzen 3950x 64GB NVIDIA rtx3090

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 39 Minuten schrieb Dominique Corpataux:

Zauberstab alle aktivieren und dann in der Infopalette einschalten?

Unser Problem hierbei ist, dass wir natürlich viele Korpusse mit ihren Beschlägen und Bearbeitungen in Gruppen legen.

So kann eine Küche mit 15 Korpussen auch mal aus 15 Gruppen bestehen. Wenn wir jetzt fürs Layout alle 3D-Details aktivieren oder deaktivieren wollen müssen wir in jede Gruppe einzeln abtauchen. Das frisst viel Zeit. Daher hofften wir mit einem Script automatisch durch alle Gruppen zu wandern und alle Bauteile und Korpusse aufzusammeln.

 

vor 39 Minuten schrieb Dominique Corpataux:

Theoretisch kann man mit einem Script mit "SetRField" einen Infopalettenwert ändern und dann mit "ResetObject" resetten. Es kann aber sein, wenn man die Objekte auf diese Weise zurücksetzt, dass sie Ihre bearbeitungen verlieren. Also keine gute Idee, das mit einem Script zu machen

Das ist natürlich außerordnetlich ärgerlich.

 

Eigentlich sind wir der Meinung, dass soeine Funktion von Interiorcad mitgeliefert werden sollte:

 

 

  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

Man muss vielleicht fragen, wieso die 3D Details auf alle Objekte eingeschaltet und wieder ausgeschaltet werden wollen? Von meiner Seite her kenne ich es, dass man gerne mit den 3D Details planen möchte, dann aber in den Plänen in Ansichten und Schnitten eigentlich die Kanten und Beläge gerne nicht sehen möchte und man deswegen öfters mal hin- und herschalten will.

Für die Schnitte wird es vermutlich mittelfristig eine Lösung geben welche darauf beruht, dass Kanten, Beläge und Trägermaterial eines Bauteils im Schnitt "verschmelzen" können, wenn Sie die selbe Füllung besitzen. 

Um die 3D Details auf verschachtelt liegende PIOs umgstellen können, kann man wie folgt vorgehen:

1. Ähnliche Objekte ändern anwählen
image.png.9046e5d0f7bcebd58decd69435adb768.png

2. Dann Kriterium Korpusmöbel und Script speichern oder sofort ausführen
image.png.279d2251209094b497311947d1f20b3e.png
Dann werden Korpusse angewählt auch wenn Sie in Gruppen oder Untergruppe liegen und man kann gemeinsam die Checkbox setzen.
 

 

 

  • Like 2

Macbook m3 Max 48 GB | Ryzen 3950x 64GB NVIDIA rtx3090

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 31 Minuten schrieb Jodak:

Unser Problem hierbei ist, dass wir natürlich viele Korpusse mit ihren Beschlägen und Bearbeitungen in Gruppen legen.

So kann eine Küche mit 15 Korpussen auch mal aus 15 Gruppen bestehen. Wenn wir jetzt fürs Layout alle 3D-Details aktivieren oder deaktivieren wollen müssen wir in jede Gruppe einzeln abtauchen. Das frisst viel Zeit. Daher hofften wir mit einem Script automatisch durch alle Gruppen zu wandern und alle Bauteile und Korpusse aufzusammeln.

Moin,

 

genau dies Problematik haben wir auch regelmäßig. 

 

3-D Details Global schalten wäre eine super Sache....

 

Dafür dann den Haken in den Ausführungen "Individuelles Material für einzelne Bauteile beibehalten" nur pro Möbel ein ausschaltbar machen.... hier fluche ich alle Naselang wenn der Haken falsch ist, oder ich ihn am liebsten nur für ein Möbel benutzen möchte...

  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke, @Dominique Corpataux!

 

Der Weg ist uns tatsächlich neu und zumindest vorerst eine Abhilfe bis Interiorcad Werkzeuge dafür bereitstellt!

Mittels zweier eigener Scripte können wir nun wesentlich schneller die 3D-Details bearbeiten!

 

Python Script für Korpusmöbel öffnet den Bearbeiten-Dialog aller Korpusse in der jeweiligen Datei:

 

import vs;
vs.EditProperties("INGROUP & (PON='XG Cabinet')");

 

Python Script für 3D-Bauteile öffnet den Bearbeiten-Dialog aller 3D-Bauteile in der jeweiligen Datei:

import vs;
vs.EditProperties("INGROUP & (PON='XG Custom Part')");

 

  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...
Am 13.12.2022 um 09:01 schrieb Dominique Corpataux:

Man muss vielleicht fragen, wieso die 3D Details auf alle Objekte eingeschaltet und wieder ausgeschaltet werden wollen? Von meiner Seite her kenne ich es, dass man gerne mit den 3D Details planen möchte, dann aber in den Plänen in Ansichten und Schnitten eigentlich die Kanten und Beläge gerne nicht sehen möchte und man deswegen öfters mal hin- und herschalten will.

Wenn ich in der Version 21 in großen Dateien und in sehr komplexen Korpen aus dem Generator Dinge aendere, aendert VWX das nicht nach dem Verlassen des Korpusses.

Ich muss dann permanent die Details der Korpen ein- und ausschalten, weil irgendwas haengt.

Das "Betreten" des Generators und verlassen desselben aendert oftmals NICHT das was umgestellt wurde oder es geht schneller Aenderungen an Boxobjekten zu sehen, wenn man die Details ein und ausmacht.

 

Es ist nun nicht so, dass das VWX so funktioniert wie es uns verkauft wurde. Beinahe alles was wir brauchen koennen wir nur mit Workarounds hinbekommen, die dann an einer anderen Stelle wieder Probleme bereiten.

 

:(

 

Gruß KC

HP Z6 G4  Intel(R) Xeon(R) W-3223 CPU @ 3.50 GHz - NVIDIA Quadro RTX 4000

VWX IC 2023 SP7-F7 R1  Windows 10 64 GB  64 bit

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb kingchaos:

Wenn ich in der Version 21 in großen Dateien und in sehr komplexen Korpen aus dem Generator Dinge aendere, aendert VWX das nicht nach dem Verlassen des Korpusses.

Ich muss dann permanent die Details der Korpen ein- und ausschalten, weil irgendwas haengt.

Das "Betreten" des Generators und verlassen desselben aendert oftmals NICHT das was umgestellt wurde oder es geht schneller Aenderungen an Boxobjekten zu sehen, wenn man die Details ein und ausmacht.

 

Es ist nun nicht so, dass das VWX so funktioniert wie es uns verkauft wurde. Beinahe alles was wir brauchen koennen wir nur mit Workarounds hinbekommen, die dann an einer anderen Stelle wieder Probleme bereiten.

 

:(

 

Gruß KC

 

Änderungen im Korpusmöbel 3D sollten bei verlassen dessen direkt in der Kontsruktionsebene sichtbar sein. Ein paar Erweiterungen haben uns da allerdings vor ein paar vorher nicht erkannte Herausforderungen gestellt - ebenso wie die Performance großer Objekte.

Bitte immer mit der aktuellen Version arbeiten und nicht angezeigte Änderungen nach veralessen des Korpusmöbels 3D bitte reproduzierbar dem Support melden.

 

PS: In interiorcad 2023 gibt es nun auch die Möglichkeit das Korpusmöbel 3D zu "Aktualisieren" anstelle 3D Details aus und wieder ein zu schalten. Und wir liefern kontinuierlich vereinfachte Beschlagsgeometrien und die Möglichkeit die interiorcad Objektdatenbanken ausschließlich vor dem Export zu aktualisieren, um die Performance zu steigern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 Monate später...

 

Hallo ich habe folgende Auffälligkeit mit dem Script:

Am 13.12.2022 um 09:46 schrieb Jodak:

Danke, @Dominique Corpataux!

 

import vs;
vs.EditProperties("INGROUP & (PON='XG Cabinet')");

 

Python Script für 3D-Bauteile öffnet den Bearbeiten-Dialog aller 3D-Bauteile in der jeweiligen Datei:

import vs;
vs.EditProperties("INGROUP & (PON='XG Custom Part')");

 

Bei dem Versuch auf Bauteile einen Konturzug zu legen, dann über das obige Script die 3-D Details für alle Bauteile ausschalte, das Objekt verschiebe und über obiges Script die 3-D Details wieder einblende, verhält sich der Konturzug richtig und taucht wieder an der gleiche Stelle im Bauteil auf.

 

Wenn ich aber den gleichen Versuch mit einem Korpus (Korpusmöbel 3D) mache, ist nach dem Einschalten bei allen Korpen über das obige Script (das erste von beiden für Korpus) der Konturzug nicht mehr auf dem Korpus sondern an der alten Stelle im 3D Raum.

Auch wenn ich diesen Korpus auflöse und das obige Spiel über Bauteile machen, geht es nicht mehr.

WEnn ich nur bei einem Korpus über den dirkekten Klick in der Infopalette "3D Details" machen geht es immer. 

Ist das bei Euch auch so?

 

 

Vectorworks 2023 interiocad mit Architektur 

Windows 10 64 bit

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Dominique,

das Thema mit einem Script das alle 3D-Details aus- und einschaltet lässt mich nicht los.

Nachdem es wie oben (gestern) beschrieben mit dem "Ähnliche Objekte ändern" und Konturzüge (Und Bohrungen) auch nicht zuverlässig klappt habe ich mir dein Script nochmal angeschaut und ausprobiert.

 

  

Am 13.12.2022 um 07:45 schrieb Dominique Corpataux:

Zauberstab alle aktivieren und dann in der Infopalette einschalten? Theoretisch kann man mit einem Script mit "SetRField" einen Infopalettenwert ändern und dann mit "ResetObject" resetten. Es kann aber sein, wenn man die Objekte auf diese Weise zurücksetzt, dass sie Ihre bearbeitungen verlieren. Also keine gute Idee, das mit einem Script zu machen
 

show_3D = True

kms = []
parts = []
def add_handle(h):
	rec_handle = vs.GetParametricRecord(h)
	pio_name = vs.GetName(rec_handle)
	if pio_name == 'XG Cabinet':
		kms.append(h)
	elif pio_name == 'XG Custom Part':
		parts.append(h)

c = "(NOTINDLVP & NOTINREFDLVP & ((PON='XG Cabinet') | (PON='XG Custom Part')))"	
vs.ForEachObject(add_handle, c)

for km in kms:
	vs.SetRField(km, 'XG Cabinet', 'Show3DDetails', show_3D)
	vs.ResetObject(km)
	
for part in parts:	
	vs.SetRField(km, 'XG Custom Part', 'Show3DDetails', show_3D)
	vs.ResetObject(part)


 

 

(In der vorletzten Zeile ist ein kleiner Scriptfehler da gehört "part" statt "km" rein)

 

Wenn ich dem Script jetzt die Anweisung vs.ResetObjekt(Part oder km) lösche und es dann verwende geht es bei Korpusmöbel.

(Ich habe ein 2. Script gemacht das dann Show_3D = False schreibt)

 

Also wenn ich mit dem von mir abgänderten Script (ohen vs.ResetObjekt), dann 3D Details ausblende, dann über den "Aktualsieren" Button aktualsiere (der der seit 2023 neu in der Infopalette bei Korpusmöbel ist) dann das Korpusmöbel mit Bearbeitungen und Konturzüge verschiebe und dann über das geänderte Script die 3D Details wieder einblende, dann geht alles richtig.

 

Meine konkrete Frage:

Gibt es den "Aktualsierungs" Button als Script Befehl???

image.thumb.png.d27717679b03ff9cf822938896075a8a.png

 

Gruß Günther Sedlmeier

 

 

Vectorworks 2023 interiocad mit Architektur 

Windows 10 64 bit

Link zu diesem Kommentar
Auf anderen Seiten teilen

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,4Tsd
    • Beiträge insgesamt
      120,1Tsd
×
×
  • Neu erstellen...