| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Mehrfachplot über LISP-Programm (2123 mal gelesen)
|
Werner Mitglied Konstrukteur
Beiträge: 72 Registriert: 19.11.2000
|
erstellt am: 19. Okt. 2003 20:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Lispler Habe momentan ein kleines Problem mit einem meiner Programme. (ACAD2002) Möchte über ein Lisp-Programm die Anzahl der Kopien die gedruckt werden sollen vorgeben. Im Plotbefehl von ACAD kann ich jedoch keine Abfrage für die Anzahl der zu druckenenden Kopien finden. Habe ich hier was übersehen? (command "_.plot" .......) Werner
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 20. Okt. 2003 07:59 <-- editieren / zitieren --> Unities abgeben: Nur für Werner
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 20. Okt. 2003 08:39 <-- editieren / zitieren --> Unities abgeben: Nur für Werner
Da du nicht geschrieben hast das dies zwingend in Lisp erfolgen muß, wäre evtl zu erwähnen... (falls du es einfach nicht kennst, und immer die gleiche Anzahl benötigt wird) ...das man eine PC3 dafür erstellen kann- dort kann man nämlich "Anzahl Kopien" auch festlegen. Man plottet also 1-fach auf diesen Treiber und er macht autom. 4,5,6 wie auch immer eingestellt - Kopien davon. ------------------ - Sebastian Mattis - CAD.de-User Treffen JEDEN Tag ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Werner Mitglied Konstrukteur
Beiträge: 72 Registriert: 19.11.2000
|
erstellt am: 20. Okt. 2003 18:27 <-- editieren / zitieren --> Unities abgeben:
Vielen Dannk für eure Antworten Hallo Geos: Bei ACAD 2002 kann ich beim besten Willen keine Eingabemöglichkeit für die Seitenzahl finden. (Abgesehen vom normalen Menü natürlich) Falls es doch irgendo stecken sollte, bitte Info wo die Abfrage steckt. Hallo Cadffm: Vorgabe für Blattzahl sollte in Lisp erfogen. Über eingenes Menüe kann ich frei wählen ob ich 1, 2 usw. Plotts erstellen möchte. Eine Vorgabe in der PC3-Datei möchte ich darum möglichst vermeiden. Lösung ist jeodoch auf jeden Fall vorstellbar mit einer entsprechenden Anzahl von PC3-Dateien. Das Programm funktioniert eigentlich auch. Ich möchte nur aus Geschwindigkeitsgründen den Mehrfachaufruf zukünftig vermeiden. Werner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Helmut Schepers Mitglied
Beiträge: 35 Registriert: 01.11.2001 AutoCad 2000, AutoCAd 2002, Windows XP-pro Treppenbau-Software
|
erstellt am: 21. Okt. 2003 20:51 <-- editieren / zitieren --> Unities abgeben: Nur für Werner
Hallo Werner wenn es eine reine Lisp-Lösung sein soll, solltest du dich einmal näher mit den VLA-Funktionen beschäftigen. Hier ein kleines Beispiel, wie man die Anzahl der Seiten einstellt. Ob dieser Aufruf mit (command "_.plot"...) funktioniert habe ich nicht ausprobiert, da ich bei mir, wenn automatisch gedruckt werden soll, die gesamte Druckerausgabe über die VLA-Funktionen steuer. (vla-put-numberofcopies (vla-get-plot (vla-get-ActiveDocument (vlax-get-acad-object))) HIER_DIE_SEITENANZAHL_EINGEBEN")
vielleicht hilfts Gruß Helmut
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Werner Mitglied Konstrukteur
Beiträge: 72 Registriert: 19.11.2000
|
erstellt am: 22. Okt. 2003 20:45 <-- editieren / zitieren --> Unities abgeben:
Hallo Helmut Vielen Dank für den Tip. Soweit ich es beruteilen kann, ist die vla Funktion aus Visuallisp. Gehöre leider zu der langsam aussterbenden Spezies die mit dem guten alten Autolisp in der Hardcore (Textversion) aufgewachsen sind. Soll heisen, das ich so gut wie keine Ahnung von Visuallisp habe und momentan auch keinen Nerv es mir reinzuziehen. Falls sonst keiner noch eine Idee hat muß ich wohl die Vorgabe der Plottanzahl aus Autolisp heraus begraben. Werner
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 23. Okt. 2003 10:02 <-- editieren / zitieren --> Unities abgeben: Nur für Werner
|
Werner Mitglied Konstrukteur
Beiträge: 72 Registriert: 19.11.2000
|
erstellt am: 27. Okt. 2003 19:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Bin entweder zu doof, oder es fehlt sonst irgend etwas. Vorschlag von Helmut scheint mir richtig zu sein. Habe nur leider keine Ahnung wie ich das ganze für meine Zwecke zum laufen bekomme. Also, fals es wirklich so einfach ist, bitte Aufruf in einem kleinen Beispiel etwas näher erläutern. (defun c:test1() (vla-put-numberofcopies (setq t1 (vla-get-plot (setq t2 (vla-get-ActiveDocument)) (vlax-get-acad-object) 2") ) (Ich weis, so funktioniert es nicht. Aber wie funktioniert es???) Vielen Dank Werner S
nil Befehl: (vla-get-plot) ; Fehler: no function definition: VLA-GET-PLOT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Helmut Schepers Mitglied
Beiträge: 35 Registriert: 01.11.2001 AutoCad 2000, AutoCAd 2002, Windows XP-pro Treppenbau-Software
|
erstellt am: 27. Okt. 2003 22:01 <-- editieren / zitieren --> Unities abgeben: Nur für Werner
Hallo Werner, hier einmal ein etwas größeres Beispiel, wie man einen Drucker mit VLisp ansteuern kann. (defun f:hs_plot (p0 p1 anz sc / al ll ur ) ;p0 --> Punkt links unten ;p1 --> Punkt rechts oben ;anz --> Anzahl der zu druckenden Seiten ;sc --> Plot-Maßstab (vl-load-com) (setq al (vla-item (vla-get-layouts(vla-get-ActiveDocument(vlax-get-acad-object)))"Model")) (vla-put-configname al "Epson Stylus COLOR 1520 ESC/P 2") (vla-put-CanonicalMediaName al "A4") (vla-put-plotrotation al 0) (vla-put-stylesheet al "monochrome.ctb") (vla-put-paperunits al 0) (vla-put-plotwithplotstyles al :vlax-false) (vla-put-scalelineweights al :vlax-false) (vla-put-usestandardscale al :vlax-false) ;(vla-setcustomscale al 1 10) (vla-put-standardscale al sc) (vla-put-numberofcopies (vla-get-plot(vla-get-ActiveDocument (vlax-get-acad-object))) anz) (setq ll (vlax-make-safearray vlax-vbdouble (cons 0 1))) ;Punkt links unten (vlax-make-variant(vlax-safearray-fill ll p0)) (setq ur (vlax-make-safearray vlax-vbdouble (cons 0 1))) ;Punkt rechts oben (vlax-make-variant(vlax-safearray-fill ur p1)) (vla-setwindowtoplot al ll ur) (vla-put-plottype al 4) ; 4 = Fenster (vla-RefreshPlotDeviceInfo al) (vla-plottodevice(vla-get-plot(vla-get-ActiveDocument(vlax-get-acad-object)))) ) Gruß Helmut ------------------ AutoCad 2000, AutoCAd 2002 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |