Acerca de la respuesta a AutoLISP con expresiones DIESEL en macros

Puede utilizar las expresiones de cadena DIESEL como método para proporcionar respuestas a los comandos definidos con AutoLISP u ObjectARX.

Las expresiones DIESEL devuelven valores de cadena (cadenas de texto) que se puede utilizar como respuesta a los comandos estándares, a AutoLISP, a las rutinas de ObjectARX ® y a otras macros.

Nota: AutoLISP no está disponible en AutoCAD LT for Mac OS y ObjectARX no está disponible en AutoCAD LT.

Dado que el valor devuelto por una expresión DIESEL es una cadena de texto, se puede utilizar como respuesta a una ejecución de la función getXXX de AutoLISP o acetGetXXX de ObjectARX. Esta función permite que los elementos de menú evalúen las condiciones actuales del dibujo y devuelvan un valor a una rutina de AutoLISP u ObjectARX.

Si carga y ejecuta la siguiente rutina de ejemplo de AutoLISP, el programa solicita el nombre y el tamaño del símbolo, así como una ubicación en el dibujo.

(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 
)
Nota: Las rutinas de AutoLISP que se utilizan regularmente deben incluir comprobación de errores para verificar la validez de los datos introducidos por el usuario.

Mientras el ejemplo anterior se ejecuta, puede hacer clic en los elementos de interfaz de usuario que ejecuten una expresión DIESEL en respuesta a una de las solicitudes. Por ejemplo, puede usar la expresión $M=$(*,$(getvar,dimscale),0.375) para utilizar un factor de escala que sea 3/8 del valor actual de DIMSCALE.

Esto no se puede hacer con código similar de AutoLISP; normalmente, un valor devuelto por una expresión de AutoLISP no se puede utilizar como respuesta a una llamada a la función getXXX (como, por ejemplo, la función getreal del ejemplo anterior).