| |
| 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: Auswahl, bei nein abbruch (556 mal gelesen)
|
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009
|
erstellt am: 10. Aug. 2010 08:45 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich beschäftige mich seit kurzem mit Macros in AutoCad mech 2008/2009. Ich möchte ein lisp schreiben, bzw habe auch schon damit angefangen welches Zeichnungen nachbearbeitet und abschliessend speichert. Ich komme jedoch mit der Abfrage (JA/Nein) nicht klar, es soll so funktionieren, dass bei "Ja" das Macro weiter abgearbeitet wird, und bei "Nein" eine Ausschrift erfolgt und das Macro abgebrochen wird. Ich hatte es auch schon andersherum probiert (d.h. alles für "Ja" ins IF geschrieben), da scheitere ich aber daran, dass das bereinigen scheinbar nicht innerhalb eines IF funzt. Ich hoffe ihr versteht, was ich meine. Ich hab auch schon auf diversen Seiten geschaut, auch hier im Forum gesucht, aber meiner Ansicht nach nichts passendes gefunden. mfg KJ.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 10. Aug. 2010 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für RobCraven
icvh denke, es ist ein Fehler im IF Syntax ist so (if (bedingung) (erüllt anweisung) (nicht erfüllt anweisung)) Das heisst diese Zeile macht genau folgendes Wenn die Abfrage gleich "NEIN" ist, mach ein command Gridmode 0, ansonsten mach ein command Cancel
Code:
(if (= Abfrage "Nein") ;;bei nein abbrechen und ausschrift (command "Gridmode" "0") ;; -> Erfüllt ANweisung (command "cancel") ;; -> Nicht Erfüllt Anweisung )
ich denke, du willst aber beide Commands machen bei Abfrage ="nein"
Code: (if (= Abfrage "Nein") ;;bei nein abbrechen und ausschrift (progn (command "Gridmode" "0") (command "cancel") ) )
progn fasst nun beide command Anweisungen zu einer Lisp Anweisung zusammen [Diese Nachricht wurde von fuchsi am 10. Aug. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 10. Aug. 2010 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für RobCraven
Noch was (command "cancel") ist etwas, nun ja ungewöhnlich Dazu gebe es erstens (exit) in Lisp. Noch schöner wäre eine Abbruch ohne Fehlermeldung
Code: (defun c:sv()(command "BEREINIG" "BL" "" "N") ;; Rahmen/Schriftkopf/Stempel auf AM_BOR ;;Stückliste auf AM_5 ;;Zeichnungsblöcke auf 0 (command "_zoom" "_e") (command "LIMMIN" "0.0000,0.0000") (command "Griddisplay" "2") (command "Gridmode" "1") (command "LWDISPLAY" "EIN") ;;abfrage (initget "Ja Nein") (setq Abfrage (getkword "Sind Grenzen,Limiten und Linienstärke ok? [Ja/Nein] <Nein>:")) (if (not Abfrage) (setq Abfrage "Nein")) ;;if (if (= Abfrage "Nein") ;;bei nein abbrechen und ausschrift (progn ;; alles bei NEIN machen (command "Gridmode" "0") (prompt"\nNacharbeiten --->LISP neu starten mit sv")(princ) ) (progn ;; alles bei JA machen (command "Gridmode" "0") (command "BEREINIG" "AL" "" "N") (command "_qsave") (command "_close" "n") ) ) ;;if (princ) ) ;;defun
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 10. Aug. 2010 09:36 <-- editieren / zitieren --> Unities abgeben: Nur für RobCraven
|
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009
|
erstellt am: 10. Aug. 2010 11:03 <-- editieren / zitieren --> Unities abgeben:
|