|
Lisp : Alle geöffneten Pläne auf Modellansicht
wronzky am 23.04.2008 um 11:17 Uhr (0)
Hi,nur als Nachtrag, für alle, die hier im Lisp-Forum auch Lisp-Fragen haben:Code:(vlax-for i (vla-get-documents (vlax-get-acad-object)) (vla-put-activespace i 1))Grüsse, Henning@Cadmium: einen Einzeiler als vlx... ------------------Henning JesseVoxelManufakturComputer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de
|
In das Form Lisp wechseln |
|
Lisp : stolti.lsp
wronzky am 24.04.2008 um 17:18 Uhr (0)
Hi Stolti,die meisten Deiner Befehle setzen ja Systemvariablen. Für den Umgang mit Systemvariablen gibt es in Lisp die Befehle (getvar "...") und (setvar "...").Versuch es also mal mit (setvar "polaraddang" "").Grüsse, Henning------------------Henning JesseVoxelManufakturComputer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de
|
In das Form Lisp wechseln |
|
Lisp : 2 Plotfiles mit einem Lisp erstellen
wronzky am 07.05.2008 um 19:52 Uhr (0)
Hi Andreas,hier fehlen die schliessenden Klammern: Code:(setq lot (getvar "ctab")) (setq ncan (strcat lot "_for_CW8400PG")) ;----- (setq hfmt (strcat "Übergröße ISO: " fmt)) ;----- (setq nhp (strcat lot "_for_HP1050C")) ;-----Ob der Plot-Befehl die richtigen Parameter hat, hab ich aber nicht getestet.Grüsse, Henning------------------Henning Jesse[EDIT] Warum bekommt man beim Schreiben eigentlich keine Nachricht, dass das Thema schon erledigt ist [/EDIT]VoxelManufakturComputer-Dienstleistungen für Architek ...
|
In das Form Lisp wechseln |
|
Lisp : 2 Plotfiles mit einem Lisp erstellen
wronzky am 08.05.2008 um 19:03 Uhr (0)
Hi Andreas,ich denke, es liegt daran, dass Du fmt nicht immer gesetzt bekommst. Check mal Deine Layouts mit (getvar "limmax") und schau, ob auch Deinen Werte dabei sind. Wenn nicht, dann steht in fmt nil, und strcat liefert "Fehlerhafter Argumenttyp: stringp nil".[EDIT]ich würds so: machen:Code:(setq xmax (car (getvar "limmax"))) (cond ((= xmax 297.0) (setq fmt "A4")) ((= xmax 420.0) (setq fmt "A3")) ((= xmax 594.5) (setq fmt "A2")) ((= xmax 841.0) (setq fmt "A1")) ((= xmax 1189.0) (setq fmt "A0")) ( ...
|
In das Form Lisp wechseln |
|
Lisp : 2 Plotfiles mit einem Lisp erstellen
wronzky am 08.05.2008 um 19:43 Uhr (0)
Ich verweise noch mal auf mein EDIT einen Beitrag höher...Grüsse, Henning(PS: Weiss nicht, ob Du PMs liest)------------------Henning JesseVoxelManufakturComputer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de
|
In das Form Lisp wechseln |
|
Lisp : 2 Plotfiles mit einem Lisp erstellen
wronzky am 08.05.2008 um 19:58 Uhr (0)
Hi Andreas,Da fällt mir nur auf die schnelle auf, dass Du einmal mit (getvar "ctab") den Namen des aktuellen Layouts ausliest, dann daran den Plotternamen anhängst, und das ganze als neuen Layoutnamen zum Plotten verwendest. Gibt es denn die Layouts auch (ctab + Plottername)?Grüsse, Henning------------------Henning JesseVoxelManufakturComputer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de
|
In das Form Lisp wechseln |
|
Lisp : 2 Plotfiles mit einem Lisp erstellen
wronzky am 08.05.2008 um 20:21 Uhr (0)
Ich weiss ja nicht, welche Papierformate euer HP hat. Bei unserem 800er sind die Übergrössen ausser A0 immer noch mit (Querformat) oder (Hochformat) bestückt.Grüsse, Henning------------------Henning JesseVoxelManufakturComputer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de
|
In das Form Lisp wechseln |
|
Lisp : 2 Plotfiles mit einem Lisp erstellen
wronzky am 08.05.2008 um 20:27 Uhr (0)
Zitat:Original erstellt von Obi-Wahn:Das Problem was ich dennoch hab ist, dass kein Speicherndialog angezeigt wird, aber ein Plotfile mit dem namen N.plt angelegt wird.Dann wird wohl einer Deiner "N" Parameter als Plotfilename genommen?Jetzt musst Du nur noch das richtige "N" gegen [Plotfilename] austauschen.Grüsse, Henning------------------Henning JesseVoxelManufakturComputer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de
|
In das Form Lisp wechseln |
|
Lisp : Objekte verlängern mit Lisp
wronzky am 23.07.2008 um 21:11 Uhr (0)
Hiohne gross zu rechnen, kannst Du ja auch den Befehl Länge mit der Option Delta benutzen. Das ist für den Anfang auch einfacher zu verstehen. Bin mal so frei, Dir ein schnelles Beispiel zukommen zu lassen:Code:(defun c:vox-lengthen () (setq lg 0.2) (setq ele (car (entsel))) (setq ele_eig (entget ele)) (if (= (cdr (assoc 0 ele_eig)) "LINE") (setq p1 (cdr (assoc 10 ele_eig)) p2 (cdr (assoc 11 ele_eig)) ) ) (if (= (cdr (assoc 0 ele_eig)) "ARC") (setq p1 (polar (cdr (assoc 10 ele_eig)) (cdr (assoc 50 e ...
|
In das Form Lisp wechseln |
|
Lisp : Plotstil zuweisen
wronzky am 29.07.2008 um 21:25 Uhr (0)
Hallo Heiko, Zitat:Original erstellt von Heiko-T:(defun c:_plstimbl ()Da Du ja ernsthaft versuchst Lisp zu lernen (gehe ich zumindest von aus, sonst braucht man das Kochbuch ja nicht;) ), und schon so einen grossartigen Anfang hingelegt hast, füge ich noch ein paar wenige Zeilen hinzu, damit Du auch nicht nur Boa sagst, sondern vielleicht auch verstehst, was da eigentlich abgeht. Vielleicht verstehst Dus ja noch nicht alles, aber mal als Anreiz:Code:(defun c:_plstimbl (/ bl ele) (vl-load-com) (if (= (getva ...
|
In das Form Lisp wechseln |
|
Lisp : Repeat hilfe!!!
wronzky am 08.08.2008 um 13:04 Uhr (0)
Hi,also letztes zuerst:geb mal _vlide in autocad ein (oder Menü Extras - AutoLisp - Visual Lisp Editor)und die ESC-Taste kannst Du nicht (so einfach) abfangen. Da ESC den Befehl normalerweise abbricht, müstest Du Dich mit Errorhandling auseinandersetzen...Mein Tipp: Lass es fürs erste.Grüsse, Henning------------------Henning JesseVoxelManufakturComputer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de
|
In das Form Lisp wechseln |
|
Lisp : Falscher Block durch Lisp eingefügt
wronzky am 13.08.2008 um 16:15 Uhr (0)
Hi Robert,das liegt daran, dass Du die Definition der Funktion HK-SETZEN (und auch alle anderen) mit jedem Laden neu setzt. Dann ist immer die zuletzt definierte Funktion gültig.Verschiedene Möglichkeiten der Lösung:- Du benennst nicht nur die C:... Funktion um, sondern auch alle zugehörigen und erzeugst so eindeutige Namen.- Du schreibst die (Defun...)-Funktionen IN die (defun C:...) hinein, und definierst sie jedesmal beim Aufruf neu.- Du definierst die HK-SETZ-Funktion mit Übergabeparameter (= Blockname ...
|
In das Form Lisp wechseln |
|
Lisp : Falscher Block durch Lisp eingefügt
wronzky am 13.08.2008 um 17:05 Uhr (0)
Hi Robert,frei nach Radio Eriwan: im Prinzip JA, aber: Zitat:1.Möglichkeit - Ich schreibe bei jedem defun noch ein z.B. "-Roh" dazuist nur die halbe Wahrheit, natürlich müssen die Aufrufe aus den anderen Funktionen dann auch angepasst werden. Zitat:2.Möglichkeit:Alle defun-funktionen in die defun c: -d.h. weniger Klammern und alle variablen an den Anfang.nicht weniger Klammern, sondern anders verschachtelt:Code:(defun c:blabla () ;-- Command-Defun (defun funktion1 () ;-- Funktion 1-Defun ... ) ( ...
|
In das Form Lisp wechseln |