Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Auswahl ja/nein

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:  Auswahl ja/nein (1886 mal gelesen)
steinwurm
Mitglied



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

Beiträge: 36
Registriert: 04.12.2006

erstellt am: 12. Jan. 2007 08:23    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 zusammen!
Ich brauche nochmal Eure Hilfe.
Bei meinem vorhandenen Lisp-Programm möchte ich nun noch eine Abfrage einbauen, die der Variablen "tisch" den Wert ja oder nein zuweist. Bei Ja soll der Block 1 eingefügt werden und bei Nein der Block 2.
Was muss ich da einbauen?

(setq tisch ????????????
;;Bei Ja:
(command "-einfüge" "Tisch1" "0,0" "1" "1" "0")
;;Bei Nein:
(command "-einfüge" "Tisch2" "0,175.5" "1" "0.5" "0")

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

Ex-Mitglied
marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 12. Jan. 2007 09:29    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 steinwurm 10 Unities + Antwort hilfreich

Hi,
hier mal ein Erklärungsversuch:
Code:
;; Initialisieren des Verhaltens der nachfolgenden getxx Funktion
;; Hier zulässige Keywords & einfaches Enter als Antwort zulässig
(initget "Ja Nein")
(if (not
      ;; Rückgabe von getkword in Variable Antwort speichern
      ;; Fragesyntax wie in AutoCAD üblich:
      ;; Frage, gültige Antworten in eckigen Klammern, Vorgabe bei Enter in dreieckigen Klammern
      ;; Gültige Antworten in eckigen Klammern mit Slash Delimiter ermöglicht die
      ;; Anzeige der Optionen in einem Befehlskontextmenü
      ;; Ab R2007 wird dieses Kontextmenü bei aktivierter dynamischer Eingabe AUTOMATISCH angezeigt
      ;; In pre R2007 Versionen bei Rechtsklick wenn die Frage gestellt wird.
      (setq ANTWORT (getkword "Tisch1 einfügen? [Ja/Nein]: <Ja> "))
    )
  ;; Vorgabewert setzen, wenn Antwort einfach ENTER
  (setq ANTWORT "Ja")
)
;; Wenn Variable Antwort = Wert "Ja"...
(if (= ANTWORT "Ja")
  ;; Dann dieses ausführen
  (command "_.-insert" "Tisch1" "0,0" "1" "1" "0")
  ;; ansonsten jenes
  (command "_.-insert" "Tisch2" "0,175.5" "1" "0.5" "0")
)

Die FRage bleibt natürlich, ob in dieser Situation eine "Ja/Nein" Frage die richtige ist.
Wenn man mich auf der Website eines Online Händlers "fragt": "Willst Du diesen VW kaufen?" Ja/Nein
erwarte ich eigentlich, dass ich bei der Antwort "Nein" nicht "Ja" zu dem Kauf eines Porsche gesagt habe... Denk' mal drüber nach ;-)
Ich würde bei Deinem Beispiel eher fragen:
"Tisch1 oder Tisch2 einfügen?"

------------------
Ciao,
Marc

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

gmk
Mitglied
Dipl.-Ing.(FH) Vermessung


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

Beiträge: 667
Registriert: 23.10.2002

Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM

erstellt am: 12. Jan. 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 Nur für steinwurm 10 Unities + Antwort hilfreich

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 12. Jan. 2007 11:02    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 steinwurm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von gmk:
schau mal hier

Ciao Georg


Hi gmk,
ja die Herren von cadmaro haben's drauf. Jedoch sehe ich deren Code eher schon im "fortgeschrittener Lisp'ler" Bereich. Für jemanden auf dem Niveau von steinwurm ist das sicherlich "Nice to know" aber vielleicht ein wenig zu hoch?!
Ich persönlich nutze in der Regel auch eher das Standardkonstrukt mit if und lokaler Variable als eine Lösung wie von den cadmaros vorgeschlagen. Die weniger elegante ist für meine persönliche Wahrnehmung auch nach Jahren des nichtbeschäftigens mit entsprechendem Code locker nachvollziehbar. Die Lesbarkeit der cadmaro Variante empfinde ich eher als sperrig; meine Meinung.

------------------
Ciao,
Marc

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 12. Jan. 2007 13:19    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 steinwurm 10 Unities + Antwort hilfreich

Für diese Art der ABfragen, habe ich mir ein kleines Tool gebastelt, da  mit diese textlichen Eingaben nicht gefallen. Mit folgendem Tool kann man diese Abfragen auch per Dialog machen

(if (= VbOk (msgbox "Wollen sie den Block einfügen" "AutoCad" VbYesNo))
    (command "._insert" ...)
    (command "._insert" ...)
)


;------------------------------------------------------------------------------
; VBA MSGBOX Box
; (MsgBox "Wollen sie das wirklich löschen ?" "Fuchsi CAD" (+ vbYesNoCancel VbQuestion)  )
;------------------------------------------------------------------------------
; -> _prompt  Meldung
; -> _title    Dialogüberschrift
; -> _Buttons  angezeigte Buttons
;------------------------------------------------------------------------------
(defun MsgBox ( _prompt _title _buttons / math ret )
  (vl-load-com)
  (setq math (vlax-get-or-create-object "ScriptControl"))
  (vlax-put math "Language" "VBScript")
  (setq ret (vlax-invoke math "EVAL" (strcat "Msgbox(\""  _prompt  "\"," (itoa _Buttons) ",\"" _title "\")")))
  (vlax-release-object math)
  ret
)
(setq vbOKOnly          0 ;Nur die Schaltfläche OK anzeigen.
      VbOKCancel        1 ;Schaltflächen OK und Abbrechen anzeigen.
      VbYesNoCancel      3 ;Schaltflächen Ja, Nein und Abbrechen anzeigen.
      VbYesNo            4 ;Schaltflächen Ja und Nein anzeigen.

      VbCritical        16 ;Meldung mit Stop-Symbol anzeigen. 
      VbQuestion        32 ;Meldung mit Fragezeichen-Symbol anzeigen.
      VbExclamation    48 ;Meldung mit Ausrufezeichen-Symbol anzeigen.
      VbInformation    64 ;Meldung mit Info-Symbol anzeigen.


      vbOK 1 ;OK
      vbCancel 2 ;Abbrechen
      vbAbort 3 ;Abbruch
      vbRetry 4 ;Wiederholen
      vbIgnore 5 ;Ignorieren
      vbYes 6 ;Ja
      vbNo 7 ;Nein
)

------------------

Ing. Anton Fuchs
WWW.FFZELL.AT.TC

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

steinwurm
Mitglied



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

Beiträge: 36
Registriert: 04.12.2006

erstellt am: 20. Feb. 2007 14:28    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 das vorangehende getestet und auch schon eingebaut. Allerdings brauche ich noch eine Abwandlung.
Bei der Frage nach den Außenkanten habe ich die Möglichkeit zu Ja oder Nein. Bei Ja soll nachd er Anzahl gefragt werden und bei Nein soll nichts passieren. Wenn ich jetzt jedoch nein sage, werden die 3 Punkte abgefragt (wie Kantenbelegung = 3) ?!?

(initget 1 "Ja Nein")
(setq Aussenkanten (getkword "Sollen Außenkanten bearbeitet werden? [Ja/Nein]:<Nein>"))
(if (not Aussenkanten)(setq Aussenkanten "Nein"))
(initget 2 "3 4 5 6 7 8 9")
(if (= Aussenkanten "Ja")
(setq Kantenbelegung (getkword "Wie viele Eckpunkte? [3/4/5/6/7/8/9]:")))
(if (= Kantenbelegung "3")
(command "-einfüge" "AK-Pkt1" pause "1" "1" "0"
"-einfüge" "AK-Pkt2" pause "1" "1" "0"
"-einfüge" "AK-Pkt3" pause "1" "1" "0"))
(if (= Kantenbelegung "4")
(command "-einfüge" "AK-Pkt1" pause "1" "1" "0"
"-einfüge" "AK-Pkt2" pause "1" "1" "0"
"-einfüge" "AK-Pkt3" pause "1" "1" "0"
  "-einfüge" "AK-Pkt4" pause "1" "1" "0"))
(if (= Kantenbelegung "5")
(command "-einfüge" "AK-Pkt1" pause "1" "1" "0"
"-einfüge" "AK-Pkt2" pause "1" "1" "0"
"-einfüge" "AK-Pkt3" pause "1" "1" "0"
  "-einfüge" "AK-Pkt4" pause "1" "1" "0"
  "-einfüge" "AK-Pkt5" pause "1" "1" "0"))
(if (= Kantenbelegung "6")
(command "-einfüge" "AK-Pkt1" pause "1" "1" "0"
"-einfüge" "AK-Pkt2" pause "1" "1" "0"
"-einfüge" "AK-Pkt3" pause "1" "1" "0"
  "-einfüge" "AK-Pkt4" pause "1" "1" "0"
  "-einfüge" "AK-Pkt5" pause "1" "1" "0"
  "-einfüge" "AK-Pkt6" pause "1" "1" "0"))
(if (= Kantenbelegung "7")
(command "-einfüge" "AK-Pkt1" pause "1" "1" "0"
"-einfüge" "AK-Pkt2" pause "1" "1" "0"
"-einfüge" "AK-Pkt3" pause "1" "1" "0"

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

andi2050
Mitglied



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

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 20. Feb. 2007 18:33    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 steinwurm 10 Unities + Antwort hilfreich

Ich tippe mal darauf, daß die Variable 'Kantenbelegung' nicht als lokale Variable deklariert ist. Dann hat die Variable den Wert "3" noch von dem vorherigen Programmdurchlauf.

Übrigens: Diese mehrfach-IF's lassen sich gut mit COND ersetzen... nur als Tip 

Grüße

Andi

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