| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Drucker(name) vom letzten Befehl _plot (1046 mal gelesen)
|
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003 Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz 16 GB RAM Windows 10 Pro 64-bit AutoCAD Mechnical 2020 Deu
|
erstellt am: 09. Jul. 2010 14:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich brauche für einen bestimmten Fall den Drucker(namen), mit dem beim letzten Befehl _plot gedruckt wurde. Ich habe weder bei den Systemvariablen noch bei den vl-Funktionen etwas passendes gefunden. Wie kann ich den Drucker(name) vom letzten Befehl _plot ermitteln? Danke im Voraus und viele Grüße Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 09. Jul. 2010 15:20 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd10
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 09. Jul. 2010 20:01 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd10
|
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003 Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz 16 GB RAM Windows 10 Pro 64-bit AutoCAD Mechnical 2020 Deu
|
erstellt am: 12. Jul. 2010 10:08 <-- editieren / zitieren --> Unities abgeben:
Hallo CADchup, Zitat: Original erstellt von CADchup:
ungetestet: vla-get-ConfigName im Layoutobjekt?
ich habe Folgendes versucht: (setq caggplot (vla-get-configname (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))) Damit bekomme ich leider nicht den Drucker, den der Anwender beim Befehl _plot gewählt hat. Deshalb hier den groben Ablauf: 1.) Im Modellbereich den Befehl _plot starten. 2.) Den Drucker wählen. 3.) Den Befehl _plot mit OK beenden. 4.) Jetzt den Drucker ermitteln, den der Anwender zuvor beim Befehl _plot gewählt hatte. Gibt es dafür eine Möglichkeit? Danke im Voraus und viele Grüße Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003 Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz 16 GB RAM Windows 10 Pro 64-bit AutoCAD Mechnical 2020 Deu
|
erstellt am: 12. Jul. 2010 10:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Heiko, danke für Deine Information. Zitat: Original erstellt von Dorfy: ungetestet und nur als Idee... Logfile und/oder Registry - es ist einfach zu warm
in der Registry habe ich nichts gefunden, was auf den zuletzt gewählten Drucker beim Befehl _plot hindeutet. Im Logfile steht (mit cmdecho=1) auch nicht was ich suche: Befehl: _.plot Tatsächlicher Plotbereich: 199.83 breit und 287.00 hoch Ansichtsfenster 2 wird geplottet. Viele Grüße Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003 Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz 16 GB RAM Windows 10 Pro 64-bit AutoCAD Mechnical 2020 Deu
|
erstellt am: 12. Jul. 2010 10:41 <-- editieren / zitieren --> Unities abgeben:
Hallo, Zitat: Original erstellt von Bernd10:
(setq caggplot (vla-get-configname (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))) Damit bekomme ich leider nicht den Drucker, den der Anwender beim Befehl _plot gewählt hat.
ich vermute, das funktioniert nur, wenn der Anwender "Auf Layout anweden" ausgeführt hat. Stimmt meine Vermutung? Kann ich das dann "erzwingen"? Gibt es eine Alternative? Viele Grüße Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 12. Jul. 2010 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd10
|
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003 Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz 16 GB RAM Windows 10 Pro 64-bit AutoCAD Mechnical 2020 Deu
|
erstellt am: 12. Jul. 2010 15:56 <-- editieren / zitieren --> Unities abgeben:
Hallo Heiko, danke für den Link. Zitat: Original erstellt von Dorfy: vllt. ist hier was bei
Folgendes hat für meinen Zweck funktioniert: (setq cregkey (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Profiles\\" (getvar "CPROFILE") "\\Previous plot settings")) (if (eq (getvar "tilemode") 1) (setq caggplot (vl-registry-read (strcat cregkey "\\Model") "Cfg Name")) (setq caggplot (vl-registry-read (strcat cregkey "\\Layout") "Cfg Name")) ) ; if Ich würde aber gerne den Zugriff auf die Registry durch eine vorhandene Funktion ersetzen. Leider habe ich keine geeignete gefunden. Nur die Funktion vla-get-UseLastPlotSettings, die aber nicht das gewünschte Ergebnis bringt. Kann ich den oben genannten Code durch vorhandene Funktionen ersetzen? Viele Grüße Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003 Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz 16 GB RAM Windows 10 Pro 64-bit AutoCAD Mechnical 2020 Deu
|
erstellt am: 12. Jul. 2010 16:04 <-- editieren / zitieren --> Unities abgeben:
Hallo, Zitat: Original erstellt von Bernd10:
Folgendes hat für meinen Zweck funktioniert: (setq cregkey (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Profiles\\" (getvar "CPROFILE") "\\Previous plot settings")) (if (eq (getvar "tilemode") 1) (setq caggplot (vl-registry-read (strcat cregkey "\\Model") "Cfg Name")) (setq caggplot (vl-registry-read (strcat cregkey "\\Layout") "Cfg Name")) ) ; if
ich muss mich leider korrigieren. Beim letzten Versuch hat wieder nicht funktioniert. Somit ist dies auch nicht zuverlässig. Viele Grüße Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 13. Jul. 2010 09:22 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd10
Hi, es wäre zuverlässig, wenn du Acad neu starten würdest, bevor du die Registry ausliest, da die Werte erst beim Beenden neu geschrieben werden. Aktuell sehe ich keine andere Lösung, als das Plotlog auszuwerten. Entweder, indem du per Reaktor die Verwendung der Plotbefehle überwachst und vor dem Plotten das Plotlog einschaltest um es anschließend auslesen zu können. Oder ohne Reaktor: Ein Tool schaltet das Plotlog ein, lässt den Plotbefehl in der Befehlszeile mit der Seiteneinrichtung <Vorheriger Plot> laufen und schaut anschließend ins Log. Die Code-Beispiele zum Schalten und lesen des Logs gibt's in Dorfys Link. Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003 Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz 16 GB RAM Windows 10 Pro 64-bit AutoCAD Mechnical 2020 Deu
|
erstellt am: 13. Jul. 2010 14:03 <-- editieren / zitieren --> Unities abgeben:
Hallo, nach einigem Testen habe ich mich entschlossen, nicht den Namen vom Drucker zu kontrollieren, sondern ich kontrolliere die PDF-Datei. Die PDF-Datei wird über eine PC3-Datei mit Hilfe von FreePDF XP erstellt, in der ich das Verzeichnis fest vereinbaren kann. Durch das bekannte Verzeichnis und den bekannten Dateinamen kann ich kontrollieren, ob eine PDF-Datei für die Zeichnung erstellt wurde. Somit kann ich die weiteren Schritte unterscheiden. Danke für die Informationen und viele Grüße Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003 Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz 16 GB RAM Windows 10 Pro 64-bit AutoCAD Mechnical 2020 Deu
|
erstellt am: 15. Jul. 2010 10:10 <-- editieren / zitieren --> Unities abgeben:
Hallo, Zitat: Original erstellt von CADchup:
Aktuell sehe ich keine andere Lösung, als das Plotlog auszuwerten. Entweder, indem du per Reaktor die Verwendung der Plotbefehle überwachst und vor dem Plotten das Plotlog einschaltest um es anschließend auslesen zu können. Oder ohne Reaktor: Ein Tool schaltet das Plotlog ein, lässt den Plotbefehl in der Befehlszeile mit der Seiteneinrichtung <Vorheriger Plot> laufen und schaut anschließend ins Log.Die Code-Beispiele zum Schalten und lesen des Logs gibt's in Dorfys Link.
die Praxis hat schnell gezeigt, dass es doch nicht ausreicht, auf die vorhandene PDF-Datei zu kontrollieren. Deshalb habe ich aus dem oben genannten Link den Code genommen und abgewandelt: (vl-load-com) (setq AcadOutputPref (vla-get-Output (vla-get-Preferences (vlax-get-acad-object)))) (setq sContinuousPlotLog (vla-get-ContinuousPlotLog AcadOutputPref)) (setq sAutomaticPlotLog (vla-get-AutomaticPlotLog AcadOutputPref)) (vla-put-ContinuousPlotLog AcadOutputPref :vlax-true) (vla-put-AutomaticPlotLog AcadOutputPref :vlax-true) (if (vl-string-search "FR" (strcase (ver))) (setq logfilename "Journal de tracé et de publication.CSV") (setq logfilename "PlotAndPublishLOG.csv") ) (setq plotlogname (strcat (getvar "LOGFILEPATH") "\\" logfilename)) (if (and plotlogname (findfile plotlogname)) (progn (setq ofile (open (findfile plotlogname) "r")) (setq rl (read-line ofile)) (while rl (if (eq (vl-princ-to-string (read rl)) "SH") (setq lastrl rl) ) (setq rl (read-line ofile)) ) (close ofile) ) ) (setq h lastrl) (setq h (vl-string-right-trim "\"" (vl-string-left-trim "\"" h))) (while (setq symb1 (vl-string-search ";" h)) (setq it (append it (list (substr h 1 (1- symb1))))) (setq h (substr h (+ symb1 3))) ) (vla-put-ContinuousPlotLog AcadOutputPref sContinuousPlotLog) (vla-put-AutomaticPlotLog AcadOutputPref sAutomaticPlotLog) (setq cagg (nth 14 it)) ; zuletzt benutzter Drucker Viele Grüße Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |