Zum Inhalt springen

Masteransichtsbereich


Manuel Roth

Empfohlene Beiträge

Hallo zusammen

 

Hier (und ziemlich sicher noch anderen Orten) wurde der Wundsch nach einem Ansichtsbereichstil geäussert.

 

Desshalb habe ich nun ein Tool gebastelt, welches die Sichtbarkeiten von Klassen und Ebenen von einem Masteransichtsbereich auf einen untergeordneten Ansichtsbereich überträgt.

 

(Mir ist bewusst, dass die Lösung über eine Datenbank nicht ein wirklicher Stil erzeugt, ich befürchte allerdings, dass eine Realisierung per Objekt im Zubehörmanager sehr schwer bis unmöglich wird.)

 

Viel Spass beim Ausprobieren. Falls ihr irgendwelche Verbesserungsvorschläge habt, bin ich offen, wenngleich ich nicht garantieren kann, dass sie in den nächsten 5 Minuten gelöst werden.?

 

Masteransichtsbereich V1.0.zip

  • Like 5
  • Lieben 1

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar
vor 9 Minuten schrieb herbieherb:

Ich fänds super, wenn als nächstes Klassenübersteuerungen dazukommen.

Mit Ebenenübersteuerungen habe ich für ein anderes Projekt bereits einmal gekämpft und dabei leider verloren. ?

Werde es mit den Klassen aber auch noch einmal versuchen. Vieleicht geht es dort besser.

 

vor 11 Minuten schrieb herbieherb:

Dann hat man schon fast alles alltägliche für 2D-Ansichtsbereiche drin.

Fast gefällt mir nicht. Was müsste denn sonst nocht rein?

  • Like 1

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar
Am 10.9.2019 um 09:19 schrieb herbieherb:

Ich fänds super, wenn als nächstes Klassenübersteuerungen dazukommen.

Ich bin dran. Die Übersteuerung funktioniert bereits. Allerdings möchte ich noch weitere Details ausbessern.

 

Am 10.9.2019 um 09:38 schrieb herbieherb:

die Lichtquellen, sowie Vorder- und Hintergrunddarstellungsart

Kennst du da die Befehle, mit welchen diese Eigenschaften ausgelesen werden können? Mich würde vorallem die Hintergrunddarstellung interessieren. Dies weil ich bei der Aktualisierung nicht jedes Rendering neu rechnen möchte.

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar
vor 22 Stunden schrieb Manuel Roth:

Ich bin dran. Die Übersteuerung funktioniert bereits. Allerdings möchte ich noch weitere Details ausbessern.

 

Kennst du da die Befehle, mit welchen diese Eigenschaften ausgelesen werden können? Mich würde vorallem die Hintergrunddarstellung interessieren. Dies weil ich bei der Aktualisierung nicht jedes Rendering neu rechnen möchte.

 

Hallo Manuel!

Wie muss ich vorgehen, wenn ich mit deinem Script unter zuhilfenahme des Masterdokuments die anderen Ansichtsbereiche in Kallsen oder/und Ebenen übersteuern möchte?

Ich habe dein Demo mit den Ansichtsbereichs-Beispielen geöffnet und erkenne, dass die Ansichtsbereiche gem. deiner Beschriftung mit der Datenbank verbunden und eingestellt sind. Wie gehe ich jedoch jetzt weiter vor?

Link zu diesem Kommentar

Wenn du nun das Aktualisieren-Skript ausführst werden vom Masteransichtsbereich die Sichtbarkeiten aufgenommen und auf jeden Nichtmasteransichtsbereich übertragen. Je nachdem welche Einstellungen beim Nichtmasteransichtsbereich (furchtbares Wort aber mir fällt nichts besseres ein.? Für Vorschläge bin ich offen.) getätigt wurden, werden nur Klassen- oder Ebenensichtbarkeiten übertragen. Oder eben beide.

 

vor 6 Minuten schrieb fkroeger:

Masterdokuments

Das Ganze funktioniert aber nur innerhalb von einem Dokument. Das heisst du musst in jedem Dokument zu jedem Stil einen Master haben. Referenzierbar in andere Dokumente ist das Ganze leider nicht.

 

Im Moment funktionieren nur die Sichtbarkeiten. Klassenübersteuerungen und einige kleine Fixes dürften allerdings schon vor Ende Woche kommen.

  • Like 2

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Wie versprochen noch diese Woche die neue Version 1.1 zu den Werkzeugen um die Ansichtsbereichstile.

 

Masteransichtsbereich V1.1.zip

 

Die wichtigsten Änderungen sind.

- Die Möglichkeit auch Klassenüberschreibungen zu übertragen.

- Ein neues Skript zum Löschen von Stilen.

Mit diesem ist allerdings noch Vorsicht geboten, da der Abbrechen-Button noch nicht funktioniert. Wenn jemand weiss wie ich das Skript nach einem Klick auf diesen Button auch wirklich abbrechen kann, wäre ich um eine Lösung sehr dankbar.

 

Wenn noch weitere Verbesserungsvorschläge oder Fragen auftauchen, bin ich da.

  • Like 2
  • Lieben 2

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

@herbieherb oder sonstjemand der sich mit Scripten auskennt.

Hast du eine Idee, wie die Abbrechenfunktion sauber integriert werden kann?

 

Zudem möchte ich die Werte der Checkboxes speichern, damit ich sie beim nächsten Aufruf der Funktion wieder auf die alten Werte setzen kann. Dies weil es ev. schwer werden kann Default-Werte so zu definieren, dass es allen recht wird. Ich habe an die Parameter unter Bearbeiten... beim Plug-In-Manager gedacht. Können die für so etwas verwendet werden und wenn ja wie. Oder gibt es andere Ansätze, die besser passen?

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Ja, nimm dafür die Parameter. Einfach die Felder definieren im Plugin-Manager unter Parameter. Danach kannst du im Script mit vs.P'Parametername'. Wenn dein Parameter z.B. xyz heisst, gibt der Befehl vs.Pxyz den gespeicherten Wert aus.

 

Bei den Dialogboxen hab ich leider auch noch nicht wirklich den Durchblick.

Vectorworks 2024 - Architektur - Win 10

Link zu diesem Kommentar

Ich fühl mich gerade ein bisschen unfähig.

Es scheint so leicht und trotzdem bin ich nicht fähig es zum laufen zu bringen.

 

Was mache ich falsch?

Masteransichstbereich.vsm

Ich gebrauche deine Funktion in den Codlinien 174 ff. und 190ff. Wobei der Fehler nach mir wohl eher beim Schreiben der Parameter passiert. Also Linie 190

 

Dies ist keinenfalls eine neuer Version und sollte noch nicht installiert werden. Sobald alles funktioniert gibt es V1.2.

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Du hast beim Schreiben ab Zeile 190 das P vor dem Parameternamen vergessen.

statt:

if vs.GetBooleanItem(dialog, GrNames):
	Name = vs.GetMultilineText(dialog, PdNames)
	Master = False
	Cl = vs.GetBooleanItem(dialog, CbCl)
	vs.Cl = Cl
				
	ClOvrd = vs.GetBooleanItem(dialog, CbClOvrd)
	vs.ClOvrd = ClOvrd
				
	La = vs.GetBooleanItem(dialog, CbLa)
	vs.La = La

brauchst du:

if vs.GetBooleanItem(dialog, GrNames):
	Name = vs.GetMultilineText(dialog, PdNames)
	Master = False
	Cl = vs.GetBooleanItem(dialog, CbCl)
	vs.PCl = Cl
				
	ClOvrd = vs.GetBooleanItem(dialog, CbClOvrd)
	vs.PClOvrd = ClOvrd
				
	La = vs.GetBooleanItem(dialog, CbLa)
	vs.PLa = La

 

Bearbeitet von herbieherb

Vectorworks 2024 - Architektur - Win 10

Link zu diesem Kommentar

Wenn Fehler doch immer so einfach wären.

 

Trotzdem macht es nicht was ich möchte.

- Dialog aufbauen. Für die Checkboxes sollen die Werte der Parameter verwendet werden.

- Beim Auswerten des Dialoges Checkboxwerte in Parameter schreiben.

 

Das Schreiben funktioniert soweit so gut. Wenn ich am Ende des Codes den Wert mit einem kleinen Dialog nochmals ausgebe ist er korrekt. Allerdings zeigt die Ausgabe am Anfang des Codes unabhängig vom Ausgabewert des vorherigen Durchlaufes immer den Wert 1 (Was ja mit Booleans gar nicht möglich sein sollte.) Von daher verstehe ich auch, dass die Checkboxes immer einen falschen Anfangswert haben. Aber wesshalb fällt der Wert zwischen den Aufrufen hinaus? Und wesshalb wird eine 1 und kein TRUE augezeigt.

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Das ist nicht besonders kompliziert. Die Befehle dazu kommen von Python selbst. Such mal nach Python und open(), write(), close()

Wichtig bei der Sache ist aber, dass du dafür sorgst, dass das File in jedem Fall geschlossen wird. (Auch wenn das Script abbricht). Wenn du ein File mit einem with statement öffnest/beschreibst brauchst du kein zusätzliches exception handling. Das File wird so auch bei einem Fehler automatisch geschlossen:

with open("welcome.txt") as file:
	data = file.read()
	do something with data

 

Vectorworks 2024 - Architektur - Win 10

Link zu diesem Kommentar

Wäre es sehr unschön, wenn einfach die Vorgabewerte aus der Datenbank ausgelesen würden. Dies würde aber weitere Problemchen ergeben. Das Schreiben der Werte schaffe ich. Das Auslesen noch nicht. Zudem müsste es eine Möglichkeit geben zu prüfen, ob eine Datenbank existiert.

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar
vor 1 Stunde schrieb Manuel Roth:

Unter welchem Pfad muss das File welcome.txt liegen, damit ich es öffnen kann? Wenn ich es im Benutzerordner bei den Plug-Ins ablege, kommt ein Fehler, dass das File nicht existiert.

Du musst den ganzen Pfad angeben. Den Pfad zum Programm- bzw. Benutzerordner bekommst du über diese Befehle:

appfolder = vs.GetFolderPath(1)
appuserfolder = vs.GetFolderPath(12)

Bei den Pfaden musst du noch aufpassen, weil Windows \ benutzt und Unix /. Also keine hardcoded Pfade benutzen. Du umgehst das mit den pathlib Befehlen, die ein Pfadobjekt generieren, welches automatisch das richtige Zeichen benutzt:

from pathlib import Path
data_folder = Path("source_data/text_files/")
file_to_open = data_folder / "raw_data.txt"

Das File mit den Variablen würd ich ins Plugin-Verzeichnis des Benutzerordners speichern.

  • Like 1

Vectorworks 2024 - Architektur - Win 10

Link zu diesem Kommentar

@herbieherb

Irgendwann vor langer Zeit hast du einmal gerschrieben, dass du Lichtquellen priorisieren würdest.

Am 10.9.2019 um 09:38 schrieb herbieherb:

Fürs 3D würd ich die Lichtquellen, sowie Vorder- und Hintergrunddarstellungsart priorisieren. Dann sind die Grundeinstellungen abedeckt.

 

Im Appendix gibt es aber drei Einstellungen für die Lichter. Ambient light is ON, Ambient Light Brightness und Ambient Light Color. Einmal, ob es an ist, einmal wie hell es ist und einmal die Farbe. Können diese Einstellungen zusammengefasst werden oder hast du mit Lichtquellen nur eins davon gemeint?

 

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Könnte schwer werden. Keine Ahnung, wo genau diese Einstellungen gespeichert werden und noch weniger, wie sie manipuliert werden können. Auf die schnelle finde ich auch in der Funktionsreferenz nichts schlaues dazu.

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

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
×
×
  • Neu erstellen...