Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Laufenden AutoCAD-Befehl in Lisp beenden.

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Laufenden AutoCAD-Befehl in Lisp beenden. (3821 mal gelesen)
fred_tomke
Mitglied
Applikationsingenieur


Sehen Sie sich das Profil von fred_tomke an!   Senden Sie eine Private Message an fred_tomke  Schreiben Sie einen Gästebucheintrag für fred_tomke

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 12. Mrz. 2007 09:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich habe mit der Suchfunktion nicht ganz das gewünschte Ergebnis erhalten, deshalb probiere ich es auf diesem Wege:

Ich habe einen AutoCAD-Befehl in einem LISP-Programm gestartet, z.B. mit
(vl-cmdf "_solidedit" "_face" "_color")

Dann kann der User der Reihe nach die Flächen wählen. Leider geht das innerhalb von _solidedit nicht mit ssget, dann wäre das Problem schnell gelöst. Man muss den User in die Flächen des Volumenkörpers klicken lassen. Der Befehl _solidedit leuchtet die Flächen dann aus. Klar, auch getpoint kann man prüfen, ob ESC oder Enter oder linke Maustaste gedrückt wurde. Wie breche ich aber dann den laufenden Befehl _solidedit ab, vor allem, wenn der User bereits eine Fläche gewählt hat, dann aber unmotiviert die ESC-Taste drückt, um den Gesamtvorgang zu beenden? HINWEIS: Der Befehl muss laufen, damit die gewählten Flächen ausgeleuchtet werden!

Hier gehts also nur um die Frage, wie ein laufender AutoCAD-Befehl über LISP beendet werden kann.

VG, Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 12. Mrz. 2007 10:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fred_tomke 10 Unities + Antwort hilfreich

keine Ahnung worauf das hinauslaufen soll,
aber

(progn
(vl-cmdf "_solidedit" "_face" "_color")
(while (/=(getvar "cmdactive")0)(command pause))
)

suchst du sowas?

..ein reines (command) statt (command pause) bricht ab ..

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fred_tomke
Mitglied
Applikationsingenieur


Sehen Sie sich das Profil von fred_tomke an!   Senden Sie eine Private Message an fred_tomke  Schreiben Sie einen Gästebucheintrag für fred_tomke

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 12. Mrz. 2007 10:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi cadmium,

nein, nicht ganz.

(while (/=(getvar "cmdactive")0)(command pause))
kenne ich. Diese Variante beendet das Programm, indem alle Eingaben mit Eingabe bestätigt werden. Und das ist das, was ich nicht unbedingt will.

Konstruierter Fall:
(vl-cmdf "_solidedit" "_face" "_color")
der User pickt eine Fläche, nimmt dann die Option alle, stellt fest dass er doch nicht will und drückt ESC. Das fange ich ja ab bei getpoint. Mache ich dann wie von Dir beschrieben weiter, wird den gewählten Flächen eine andere Farbe zugewiesen (z.B. VonLayer oder die zuletzt verwendete Farbe). Das will ich ja nicht. Also müsste man ein ESC an den aktiven AutoCAD-Befehl senden.

Zum Verständnis: Aus einem Dialog heraus kann man einen Volumenkörper zeichnen. Über eine weitere Schaltfläche soll der Befehl wie aus dem Menü Ändern > Volumenkörper bearbeiten > Flächen farbig auzsfüllen gestartet werden. Dabei müsste ich so oft pause in die Zeile
(vl-cmdf "_solidedit" "_face" "_color" pause "" intFarbe "_X" "_X")
schreiben, wie der User Volumenkörper-Flächen pickt. Das weiß ich aber nicht, deshalb fange ich das ab und frage auch die Farbe ab (sonst kommt nur die Befehlszeileneingabe). Wird an einer der beiden Stellen abgebrochen muss auch der begonnene Befehl abgebrochen werden.

Ich hoffe, dass ich das einigermaßen erklären konnte.

VG, Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 12. Mrz. 2007 10:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fred_tomke 10 Unities + Antwort hilfreich

na dann hätte ich noch

(defun DT:SENDKEYS (KEYS / WSCRIPT)
  (if(setq WSCRIPT (vlax-create-object "WScript.Shell"))
    (progn
       (vlax-invoke-method WSCRIPT 'sendkeys KEYS)
       (vlax-release-object WSCRIPT)
    )
  ) 
  (princ)
)

und dann der Aufruf
(DT:SENDKEYS "{ESC}")

wenn du weißt, wann du ihn aufrufst..
..wenn nicht, lad mal die Funktion und gib
(DT:SENDKEYS "{F1}") in der Befehlszeile ein  


------------------
      - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fred_tomke
Mitglied
Applikationsingenieur


Sehen Sie sich das Profil von fred_tomke an!   Senden Sie eine Private Message an fred_tomke  Schreiben Sie einen Gästebucheintrag für fred_tomke

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 12. Mrz. 2007 11:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Na, das sieht doch mal Klasse aus! Danke!
Janze 10 Taler gehen auf die Reise.

VG, Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HofCAD
Mitglied


Sehen Sie sich das Profil von HofCAD an!   Senden Sie eine Private Message an HofCAD  Schreiben Sie einen Gästebucheintrag für HofCAD

Beiträge: 8
Registriert: 12.09.2006

erstellt am: 16. Mrz. 2007 09:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fred_tomke 10 Unities + Antwort hilfreich

Hi cadmium,

Warum nicht
(command) und (command "HELP")?

VG HofCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 16. Mrz. 2007 09:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fred_tomke 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von HofCAD:
Hi cadmium,

Warum nicht
(command) und (command "HELP")?

VG HofCAD


Lies den gesamten Thread!! 

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz