Utilizzo di espressioni DIESEL nelle macro in risposta a funzioni AutoLISP

È possibile utilizzare le espressioni di stringa DIESEL per fornire risposte ad un comando definito con AutoLISP o ObjectARX.

Le espressioni DIESEL restituiscono valori di stringa (stringhe di testo) utilizzabili come risposta a comandi standard, routine AutoLISP e ObjectARX ® e altre macro.

Nota: AutoLISP non è disponibile in AutoCAD LT for Mac OS e ObjectARX non è disponibile in AutoCAD LT.

Il valore restituito da un'espressione DIESEL è una stringa di testo e può essere utilizzato in risposta ad una chiamata della funzione getXXX di AutoLISP o della funzione acetGetXXX di ObjectARX. Questa funzionalità consente alle voci di menu di valutare le condizioni del disegno correnti e di restituire un valore ad una routine AutoLISP o ObjectARX.

Se si carica e si esegue la routine AutoLISP di esempio che segue, viene richiesto di specificare il nome e la dimensione di un simbolo e una posizione nel disegno.

(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: Una routine AutoLISP utilizzata regolarmente deve includere il controllo degli errori per verificare la validità dell'input dell'utente.

Mentre viene eseguito l'esempio precedente, è possibile fare clic su elementi dell'interfaccia utente che eseguono un'espressione DIESEL in risposta ad uno dei messaggi di richiesta. È ad esempio possibile specificare l'espressione $M=$(*,$(getvar,dimscale),0.375) per utilizzare un fattore di scala pari a 3/8 dell'impostazione corrente di DIMSCALE.

Questa operazione non può essere eseguita con codice AutoLISP simile. Un valore restituito da un'espressione AutoLISP generalmente non può essere utilizzato come risposta ad una chiamata della funzione getXXX, quale la funzione getreal dell'esempio precedente.