Odpowiadanie na AutoLISP za pomocą wyrażenia języka DIESEL w makrach

Użytkownik może stosować wyrażenia języka DIESEL do dostarczania odpowiedzi na polecenia zdefiniowane przy użyciu języka AutoLISP lub aplikacji ObjectARX.

Wyrażenia języka DIESEL mogą zwracać wartości ciągów (ciągi tekstowe) w odpowiedzi na standardowe polecenia programu, procedury języka AutoLISP i ObjectARX ® oraz inne makra.

Uwaga: Język AutoLISP jest niedostępny w systemie operacyjnym AutoCAD LT for Mac OS, a język ObjectARX jest niedostępny w programie AutoCAD LT.

Wartość zwracana przez wyrażenie języka DIESEL jest ciągiem tekstu i może być użyta jako odpowiedź na wywołanie funkcji getXXX języka AutoLISP lub acetGetXXX aplikacji ObjectARX. Pozwala to w pozycjach menu wyliczać warunki bieżącego rysunku i zwracać odpowiednią wartość do procedury AutoLISP lub ObjectARX.

Po wczytaniu i wykonaniu następującej przykładowej procedury AutoLISP program monituje o wprowadzenie nazwy i rozmiaru symbolu oraz położenia na rysunku.

(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 
)
Uwaga: Często używane procedury AutoLISP powinny zawierać kontrolę błędów w celu sprawdzania poprawności danych wprowadzanych przez użytkownika.

Podczas wykonywania poprzedniego przykładu można kliknąć elementy interfejsu użytkownika, które wykonują wyrażenie języka DIESEL w odpowiedzi na monity. Użytkownik może na przykład użyć wyrażenia $M=$(*,$(getvar,dimscale),0.375), aby zastosować współczynnik skali, która wynosi 3/8 bieżącej zmiennej DIMSCALE.

Nie jest to możliwe w przypadku podobnego kodu języka AutoLISP. Wartość zwracana przez wyrażenie AutoLISP nie może być używana jako odpowiedź na wywołanie funkcji getXXX (podobnie jak funkcja getreal w poprzednim przykładzie).