Forum:Lisp
Thema:Daneben ist nicht Enter - grread
Möchten Sie sich registrieren?
Wer darf antworten? Registrierte Benutzer können Beiträge verfassen.
Hinweise zur Registrierung Sie müssen registriert sein, um Beiträge oder Antworten auf Beiträge schreiben zu können.
Ihr Benutzername:
Ihr Kennwort:   Kennwort vergessen?
Anhang:    Datei(en) anhängen  <?>   Anhänge bearbeiten  <?>
Grafik für den Beitrag:                                                
                                                       
Ihre Antwort:

Fachbegriff
URL
Email
Fett
Kursiv
Durchgestr.
Liste
*
Bild
Zitat
Code

*HTML ist AUS
*UBB-Code ist AN
Smilies Legende
Netiquette

10 20 40

Optionen Smilies in diesem Beitrag deaktivieren.
Signatur anfügen: die Sie bei den Voreinstellungen angegeben haben.

Wenn Sie bereits registriert sind, aber Ihr Kennwort vergessen haben, klicken Sie bitte hier.

Bitte drücken Sie nicht mehrfach auf "Antwort speichern".

*Ist HTML- und/oder UBB-Code aktiviert, dann können Sie HTML und/oder UBB Code in Ihrem Beitrag verwenden.

T H E M A     A N S E H E N
marc.scherer

Beiträge: 2448 / 7

Windows 7 Professional 64bit
AutoCAD Architecture 2011/2015 (deu/eng)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung

Hi Geos,

warum grread?

Ich hab' das in dieser Art gelöst:

Code:

;; Funktion gibt nil zurück, wenn nicht gewählt oder aber
;; mehr als einer gewählt wurde (Implizit)
;; Oder 'STR bei Rechtsklick
;; Oder Ename, wenn Objekt geklickt
(defun IMPLIZIT-ENTSEL (QUESTION / SGET)
  (if (not (setq SGET (ssget "I"))) ;_ Implizite Objektwahl!
    (progn
      (initget " ")
      (if (= (type (setq SGET (entsel (strcat "\n" QUESTION)))) 'STR)
        (setq SGET 'STR)
        (if sget
          (setq SGET (car SGET))
          )
      )
    )
    (progn
      (if (not (> (sslength SGET) 1))
        (setq SGET (ssname SGET 0))
        (setq SGET NIL)
      )
      (sssetfirst NIL NIL)
    )
  )
  SGET
)


(defun C:# (QUESTION / ENAME)
  (while (not ENAME)
    (setq ENAME (IMPLIZIT-ENTSEL QUESTION))
    (cond
      ((not ENAME)
       (setq QUESTION "NICHTS gewählt, neuer Versuch. Rechtsklick beendet die Objektwahl: "
       )
      )
      ((= ENAME 'STR)
       (princ "\nRechtsklick. Objektwahl wurde beendet.")
      )
    )
  )
  (if (not (= ENAME 'STR))
    ENAME
  )
)


Beispielaufruf:

Code:
(setq xx (C:# "Objekt wählen:"))

...

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

[Diese Nachricht wurde von marc.scherer am 07. Sep. 2009 editiert.]