| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Lisp beenden! (1351 mal gelesen)
|
vision Mitglied
Beiträge: 113 Registriert: 27.10.2003 AutoCAD 2015 Expresstools Windows 10
|
erstellt am: 04. Jun. 2015 09:57 <-- editieren / zitieren --> Unities abgeben:
Hallo, das Lisp-Programm bricht eine überkreuzende Linie um 2.5 mm auf. Das funktioniert auch. Was aber nicht geht, ist das Programm mit der rechten Maustaste zu beenden (nur mit ESC-Taste). Für Eure Unterstützung bedanke ich mich schon im Voraus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 04. Jun. 2015 10:06 <-- editieren / zitieren --> Unities abgeben: Nur für vision
(schon wieder Klugsch ...)Auch wenn dein Posting lediglich eine Feststellung und keine Frage oder konkretes Hilfegesuch enthält .. Du musst deine Abbruchbedingung in der (while - Schleife bei Leer Eingabe so einstellen, dass aus der Schleife herausgegangen wird. Mal über deinen Code geschaut: Wenn (if (setq schn (getpoint "\n Schnittpunkt wählen: ")) Falsch(also Nil) ist, dann musst du (setq t_0 nil) setzen. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 04. Jun. 2015 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für vision
|
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: 04. Jun. 2015 10:30 <-- editieren / zitieren --> Unities abgeben: Nur für vision
Ich denke ein Mouse Reaktor ist hier Overkill. Als Kompromiss kann man eine Option zur Beendigung des Befehls einbauen (hier Beenden). Code: (defun Init () (setq Err *error* *error* Fehler Osx (getvar "OSMODE") ) )(defun ReInit () (setvar "OSMODE" Osx) (setq *error* Err) (redraw t_2 4) (princ) ) (defun Fehler (s) (print (strcat "Fehler: " s)) (ReInit) ) (defun c:LINE_BRUCH (/ t_0 t_1 t_2 Err Osx) (Init) (vl-load-com) (setq t_0 T) (While t_0 (setq t_0 nil) (While (not t_0) ; Diese Zeile auskommentieren, wenn Leereingabe ; oder danebenklicken = Nil auch zur Beendigung führen soll (initget "Beenden") (setq t_0 (entsel "\n Bruchlinie wählen [Beenden]: ")) ) ;end while 2 ; Diese Zeile auskommentieren, wenn Leereingabe ; oder danebenklicken = Nil auch zur Beendigung führen soll (cond ((= t_0 "Beenden") (setq t_0 nil) ) (t_0 (setq t_1 (entget (car t_0))) (setq t_2 (car t_0)) (redraw t_2 3) ;Linie ausleuchten! (setvar "OSMODE" 32) (if (setq schn (getpoint "\n Schnittpunkt wählen: ")) (progn (if (or (= (cdr (assoc 0 t_1)) "LINE") (= (cdr (assoc 0 t_1)) "LWPOLYLINE") ) (progn ; dann ... (setvar "OSMODE" 0) (command "_break" t_2 (vlax-curve-getPointAtDist (vlax-ename->vla-object t_2) (- (vlax-curve-getDistAtPoint (vlax-ename->vla-object t_2) schn ) ;vlax-curve-getDistAtPoint 1.25 ; Bruchbreite - ) ) ;vlax-curve-getPointAtDist (vlax-curve-getPointAtDist (vlax-ename->vla-object t_2) (+ 1.25 ; Bruchbreite + (vlax-curve-getDistAtPoint (vlax-ename->vla-object t_2) schn ) ) ) ;vlax-curve-getPointAtDist ) ;end command ) ;end progn ) ; end if ) ;end progn ) ; end if schn ) ;end cond t_0 ) ; end cond ) ;end while 1 ) ;end defun
------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 04. Jun. 2015 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für vision
|
Jürgen Scheeren Mitglied Energieanlagen Konstrukteur , CAD-Administrator
Beiträge: 262 Registriert: 03.04.2003 Autocad MEP 2016 win7x64bit
|
erstellt am: 04. Aug. 2015 11:50 <-- editieren / zitieren --> Unities abgeben: Nur für vision
|