Sobre como responder ao AutoLISP com expressões DIESEL em macros

Você pode usar as expressões de sequência de caracteres DIESEL como uma forma para fornecer respostas a um comando definido com AutoLISP ou ObjectARX.

As expressões DIESEL retornam os valores de sequência (de texto) que podem ser usados como resposta a comandos padrão, rotinas do AutoLISP e do ObjectARX ® e outras macros.

Nota: O AutoLISP e o ObjectARX não estão disponíveis no AutoCAD LT.

O valor retornado por uma expressão DIESEL é uma sequência de texto e pode ser usado em resposta a uma chamada da função AutoLISP getXXX ou ObjectARX acetGetXXX. Essa funcionalidade permite que os itens de menu avaliem as condições de desenho atuais e retornem um valor para uma rotina do AutoLISP ou do ObjectARX.

Se você carrega e executa a rotina de amostra do AutoLISP, o programa solicita um nome de símbolo e o tamanho e a localização no desenho.

(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: Uma rotina do AutoLISP utilizada regularmente deve incluir verificação de erro para observar a validade da entrada do usuário.

Enquanto o exemplo anterior está sendo executado, você pode clicar em elementos da interface do usuário que executam uma expressão DIESEL em resposta a um dos prompts. Por exemplo, você pode usar a expressão $M=$(*,$(getvar,dimscale),0.375) para utilizar um fator de escala que é 3/8 da DIMSCALE atual.

Isso não pode ser feito com o código do AutoLISP semelhante; um valor retornado por uma expressão do AutoLISP normalmente não pode ser usado como uma resposta a uma chamada de função getxxx (como a função getreal no exemplo anterior).