Zum Inhalt springen

Klassen NIEMALS drucken!


Empfohlene Beiträge

Hi zusammen.

Möchte in meinen Projekten einige Klassen IMMER vom (versehentlichen) Druck ausschließen.

Da VW keine "nicht drucken" oder "gesperrt" Funktion besitzt, habe ich mir mit einem Tag (NIEMALS DRUCKEN) geholfen und stelle die mit diesem Schlagwort versehenen Klassen kurz vorher auf unsichtbar.
Jetzt die Frage:

Lässt sich ein Script schreiben, welches das automatisiert? Also: suche alle Klassen mit dem bestimmten Tag, stelle diese unsichtbar - dann Drucken?!

Bildschirmfoto 2020-09-03 um 11.29.50.png

CADLIFE GmbH & Co. KG
Vectorworks Partner Norddeutschland
Klaus-Groth-Str. 25b, 20535 Hamburg
home:
https://www.cadlife.de

Vectorworks Designer & Braceworks & Vision & Connectcad - Version: 2023 SP8 & 2024 29.0.4 (Update 4.1)

MacBook Pro 16" 2021, M1 Max, 64 GB & MacBook Air 2020, M1, 8 GB - Sonoma 14.4.1

Lenovo Legion 7 Gen 6 / 16" (AMD Ryzen 9 5000 Series), 32 GB, 16 GB NVIDIA Geforce RTX 3080, Windows 11 Pro

Link zu diesem Kommentar

...könnte viell. auch über die Klassenbeschreibung gehen. Die lässt sich mit Vectorscript über "GetDescriptionText" abfragen...

 

man stößt da aber recht schnell an Grenzen, sobald man aus Layouts druckt. Ansichtsbereiche lassen sich damit sicher nicht "durchdringen", um auch darin die "NIEMALS DRUCKEN"-Klassen abzustellen. Gesicherte Darstellungen sind da sicher auch ein sinnvolles Werkzeug...

 

(nur ein paar Gedanken)

MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM

Vectorworks 2022 - SP6

Vectorworks 2023 - SP6

Link zu diesem Kommentar

Wäre möglich. Einfach eine gesicherte Darstellung anlegen und per Script die Darstellung abrufen und den Druckbefehl auslösen. Man könnte auch per Script durch Ansichtsbereich-Sichtbarkeiten durchgehen, ich denke aber es geht um Hilfslinien auf den Layoutebenen?

 

Ich spielte auch schon mit dem Gedanken ein solches Script zu schreiben, hab mich dann aber dagegen entschieden. Anhand der vergessenen Layouthilfslinien erkenne ich nämlich, wenn Mitarbeiter ihre Exporte/Drucke ablegen ohne dass sie selbst auch nur kurz drüberschauen. ?

  • Like 1

Vectorworks 2024 - Architektur - Win 10

Link zu diesem Kommentar

Ich bin nicht sicher, wie der Druckbefehl aufgerufen werden kann. Vielleicht kann @herbieherb, @Oliver Daus oder @Antonio Landsberger mir da kurz weiterhelfen.

 

Ansonsten sollte es durchaus machbar sein.

Bearbeitet von Manuel Roth

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

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

Ich habe bei Desktopaufräumen ein Dokument gefunden, in dem ich ein Script für dieses Thema begonnen habe. ?

 

Ich habe damals allerdings gestoppt, weil ich auf die schnelle keine Möglichkeit zur Unterscheidung von normalen Ansichtsbereichen und Schnitten gefunden habe. Hat jemand eine Idee, wie das bewerkstelligt werden könnte?

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar
  • 3 Wochen später...
Am 3.9.2020 um 15:22 schrieb herbieherb:

Das Python-Script wär ganz einfach:


vs.VRestore('Name der gesicherten Darstellung')
vs.PrintUsingPrintDialog()

Sobald du mit Klassentags statt mit gesicherten Darstellungen arbeiten willst, wird das Script etwas komplizierter.

 

Wie würde denn ein solches Skript aussehen? Oder wo finde ich die benötigten Informationen? Über Appendix und Function Reference wurde ich nicht schlau - bin aber auch nicht wirklich erprobt in VectorScript/PythonScript.

 

Ich denke, die Basis (Auswahl von Klassen mit Tags) könnte ich ganz ähnlich für meinen Wunsch bezüglich Konstruktionsebenen anwenden?.

 

Vectorworks 2022 interiorcad |  Windows11

Link zu diesem Kommentar

Hier eine vereinfachte Version des Scripts. Es ginge eigentlich noch weiter (da es mit Schnitten und Renderings Rechenzeitprobleme geben wird), sollte im Grundsatz allerdings funktionieren. Wichtig ist einfach, dass im Druckdialog alle Ansichtsbereiche aktualisiert werden.

#MRoth V1.0

#Ansichtsbereiche auf aktueller Ebene auflisten
Vps = []
c = "((((ST=REGVIEWPORT)|(ST=SECTVIEWPORT)) & (L='" + vs.GetLName(vs.ActLayer()) + "')))"
vs.ForEachObject(Vps.append, c)

#Loop durch alle Klassen
for i in range(1, vs.ClassNum() + 1):
	cl = vs.ClassList(i)
	
	#Tagliste erstellen
	b, s = vs.GetObjectTags(vs.GetObject(cl))
	if s == None:
		tags = []
	else:
		tags = list(s)
	
	#Wenn Tag vorhanden, dann ausblenden
	if "NIEMALS DRUCKEN" in tags: #Tag der Klassen, die nicht gedruckt werden sollen
		#Klasse ausblenden
		vs.HideClass(cl)
		
		#Klasse in allen Ansichtsbereichen ausblenden
		for Vp in Vps:
			vs.SetVPClassVisibility(Vp, cl, -1)
		
#Darstellung aktualisieren
vs.ReDrawAll()

#Printdialog anzeigen
vs.PrintUsingPrintDialog()

 

  • Like 3

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
  • Forenstatistik

    • Themen insgesamt
      23,5Tsd
    • Beiträge insgesamt
      121Tsd
×
×
  • Neu erstellen...