Reagieren auf AutoLISP mit DIESEL-Ausdrücken in Makros

Sie können DIESEL-Zeichenfolgenausdrücke als Möglichkeit nutzen, Antworten auf einen in AutoLISP oder ObjectARX definierten Befehl bereitzustellen.

DIESEL-Ausdrücke geben Zeichenfolgenwerte (Textzeichenfolgen) als Antwort auf Standardbefehle, AutoLISP- und ObjectARX ® -Routinen oder andere Makros zurück.

Anmerkung: AutoLISP ist nicht in AutoCAD LT for Mac OS und ObjectARX nicht in AutoCAD LT verfügbar.

Der DIESEL-Ausdruck gibt eine Textzeichenfolge zurück, die als Antwort auf einen Aufruf der AutoLISP-Funktion getXXX oder ObjectARX acetGetXXX eingesetzt werden kann. Auf diese Weise können Menüelemente aktuelle Zeichnungen auswerten und einen Wert an eine AutoLISP- oder ObjectARX-Routine zurückgeben.

Wenn Sie die folgende AutoLISP-Beispielroutine laden und ausführen, fordert das Programm zur Eingabe eines Symbolnamens und einer Größe sowie einer Position in der Zeichnung auf.

(defun C:SYMIN()
  (setq sym 
    (getstring 
      "\nEnter symbol name: ")      ; Prompts for a symbol name
  )

  (setq 
    siz (getreal 
          "\nSelect symbol size: ") ; Prompts for a symbol size

    p1 (getpoint 
          "\nInsertion point: ")    ; Prompts for insertion point
  )

  (command "._insert"               ; Issues the INSERT command
           sym                      ; using the desired symbol
           p1 siz siz 0)            ; insertion point, and size

 (princ)                            ; Exits quietly 
)
Anmerkung: Eine regelmäßig eingesetzte AutoLISP-Routine sollte eine Fehlerkontrolle umfassen, mit der die Zulässigkeit der Benutzereingaben geprüft wird.

Während das vorige Beispiel ausgeführt wird, können Sie in Reaktion auf eine der Eingabeaufforderungen auf Benutzeroberflächenelemente klicken, die einen DIESEL-Ausdruck ausführen. Beispielsweise können Sie mit dem Ausdruck $M=$(*,$(getvar,dimscale),0.375) einen Skalierfaktor festlegen, der 3/8 des aktuellen Werts von DIMSCALE beträgt.

Mit vergleichbarem AutoLISP-Code ist dies nicht möglich; ein Wert, der von einem AutoLISP-Ausdruck zurückgegeben wird, kann normalerweise nicht als Antwort auf einen Aufruf der Funktion getXXX verwendet werden (z. B. die Funktion getreal aus dem vorangegangenen Beispiel).