| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: linienlisp (1386 mal gelesen)
|
michelangelo Mitglied
Beiträge: 158 Registriert: 08.04.2004 Win XP, ACAD 2002 ExpressTool vom ACAD 2000
|
erstellt am: 11. Okt. 2004 10:56 <-- editieren / zitieren --> Unities abgeben:
|
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2041 Registriert: 08.04.2002
|
erstellt am: 11. Okt. 2004 11:31 <-- editieren / zitieren --> Unities abgeben: Nur für michelangelo
|
michelangelo Mitglied
Beiträge: 158 Registriert: 08.04.2004 Win XP, ACAD 2002 ExpressTool vom ACAD 2000
|
erstellt am: 11. Okt. 2004 12:02 <-- editieren / zitieren --> Unities abgeben:
Das hat wunderbar geklappt jetzt habe ich aber noch ein Problem wen ich Variante 1 lade. kann ich eine Polylinie zeichnen, mit sovielen ecken wie ich will. das lisp macht dann aber nicht fertig. das heisst setvar "plinewid" bleibt. mit variante 2 gehts, kann aber nur eine gerade zeichnen. wie kann ich die eingabe getpoint beliebig wieder hollen?? Variante 1: (defun c:bus () (command "_pline" (getpoint) "b" 10 "" (getpoint)) (setvar "PLINEWID" 0) ) Variante 2: (defun c:bus () (command "_pline" (getpoint) "b" 10 "" (getpoint) "") (setvar "PLINEWID" 0) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
michelangelo Mitglied
Beiträge: 158 Registriert: 08.04.2004 Win XP, ACAD 2002 ExpressTool vom ACAD 2000
|
erstellt am: 11. Okt. 2004 13:57 <-- editieren / zitieren --> Unities abgeben:
|
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2041 Registriert: 08.04.2002
|
erstellt am: 11. Okt. 2004 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für michelangelo
guckst du hier: Code:
(defun c:bus () (command "_pline" (setq pt1 (getpoint)) "b" 10 "" (setq pt1 (getpoint pt1)) "") (setq pl (entlast)) (while (setq pt2 (getpoint pt1)) (command "_pline" pt1 pt2 "") (command "_pedit" (entlast) "_j" pl "" "") (setq pt1 pt2) (setq pl (entlast)) ) (setvar "PLINEWID" 0) )
------------------ mfg Siegfried Schachinger http://www.tbschatz.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
michelangelo Mitglied
Beiträge: 158 Registriert: 08.04.2004 Win XP, ACAD 2002 ExpressTool vom ACAD 2000
|
erstellt am: 11. Okt. 2004 16:20 <-- editieren / zitieren --> Unities abgeben:
@schachinger vielen danke das gibt ein paar U's Habe mein Lisp einwenig erweitert. Wie kann ich die eingebene variable dudu speichern. Und wen ich den befehl wiederholen mit enter bestätigen, oder neuen wert eingeben.?? (defun c:bus (/ old_lay) (setq old_lay (getvar "clayer")) (command "layer" "set" "E_LICHTE_LGN" "") (c:blinie) (command "layer" "set" old_lay "") (defun c:blinie ( / dudu ) (setq dudu (getreal "\breite: ")) (command "_pline" (setq pt1 (getpoint)) "b" dudu "" (setq pt1 (getpoint pt1)) "") (setq pl (entlast)) (while (setq pt2 (getpoint pt1)) (command "_pline" pt1 pt2 "") (command "_pedit" (entlast) "_j" pl "" "") (setq pt1 pt2) (setq pl (entlast)) ) (setvar "PLINEWID" 0) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 11. Okt. 2004 16:43 <-- editieren / zitieren --> Unities abgeben: Nur für michelangelo
Hier etwas kürzer und ohne Pedit Code:
(DEFUN C:PL10 () ; Hauptprogramm (breitePl 10.0) (PRIN1) ) ;;;;;; Unterprogramm für beliebige Breiten (DEFUN BREITEPL (breite / oldPLINEWID pkt) (SETQ oldPLINEWID (GETVAR "PLINEWID")) (SETVAR "PLINEWID" breite) (COMMAND "_PLINE" (SETQ pkt (GETPOINT))) (WHILE (SETQ pkt (GETPOINT pkt)) (COMMAND pkt) ) (COMMAND "") (SETVAR "PLINEWID" oldPLINEWID) )
Es fehlt natürlich noch ein anständiger ERROR-Handler für den Fall, dass der Befehl abgebrochen wird. Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
michelangelo Mitglied
Beiträge: 158 Registriert: 08.04.2004 Win XP, ACAD 2002 ExpressTool vom ACAD 2000
|
erstellt am: 11. Okt. 2004 17:07 <-- editieren / zitieren --> Unities abgeben:
|
michelangelo Mitglied
Beiträge: 158 Registriert: 08.04.2004 Win XP, ACAD 2002 ExpressTool vom ACAD 2000
|
erstellt am: 11. Okt. 2004 18:16 <-- editieren / zitieren --> Unities abgeben:
kann mir einer helfen? (defun c:blinie (/ dudu) (setq dudu (getreal "\nbreite [nocHmal] : ")) (command "_pline" (setq pt1 (getpoint)) "b" dudu "" (setq pt1 (getpoint pt1)) "" (setq nochmal (getvar "dudu")) ) (setq pl (entlast)) (while (setq pt2 (getpoint pt1)) (command "_pline" pt1 pt2 "") (command "_pedit" (entlast) "_j" pl "" "") (setq pt1 pt2) (setq pl (entlast)) ) (setvar "PLINEWID" 0) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkl-cad Mitglied Technischer Zeichner
Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 12. Okt. 2004 08:19 <-- editieren / zitieren --> Unities abgeben: Nur für michelangelo
Hallo, mach die Variable doch einfach global Beispiel: (defun c:blinie ( / frage) (if (= dudu nil)(setq dudu 200)());Standartbreite setzen (setq frage (getreal (strcat "\nBreite:" " <" (rtos dudu) "> "))) (if (= frage nil) () (setq dudu frage) ) (command "_pline" (setq pt1 (getpoint)) "b" dudu "" (setq pt1 (getpoint pt1)) "" (setq nochmal (getvar "dudu")) ) (setq pl (entlast)) (while (setq pt2 (getpoint pt1)) (command "_pline" pt1 pt2 "") (command "_pedit" (entlast) "_j" pl "" "") (setq pt1 pt2) (setq pl (entlast)) ) (setvar "PLINEWID" 0) ) ------------------ Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
michelangelo Mitglied
Beiträge: 158 Registriert: 08.04.2004 Win XP, ACAD 2002 ExpressTool vom ACAD 2000
|
erstellt am: 12. Okt. 2004 08:25 <-- editieren / zitieren --> Unities abgeben:
|