Строковые выражения DIESEL можно использовать для предоставления ответов на команду, определенную с помощью AutoLISP или ObjectARX.
Выражения DIESEL возвращают строковые значения (текстовые строки), которые могут быть использованы в ответ на стандартные команды, процессы AutoLISP и ObjectARX ® , а также другие макросы.
Так как значение, возвращаемое выражением DIESEL, является текстовой строкой, его можно использовать в ответах на запросы функций getXXX AutoLISP или acetGetXXX ObjectARX. Это позволяет вычислять в пунктах меню режимы текущего чертежа и возвращать соответствующие значения в процессы AutoLISP и ObjectARX.
Если загрузить и выполнить приведенный ниже процесс AutoLISP, программа запросит имя и размер символа, а также местоположение в чертеже.
(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 )
Пока выполняется указанный выше процесс, щелкните элементы пользовательского интерфейса, которые выполняют выражения DIESEL в ответ на один из запросов. Например, можно использовать выражение $M=$(*,$(getvar,dimscale),0,375) для работы с масштабным коэффициентом, который составляет 3/8 от текущего значения DIMSCALE.
Это невозможно выполнить с помощью аналогичных кодов AutoLISP, поскольку, как правило, возвращаемые выражениями AutoLISP значения не воспринимаются в качестве ответов на запросы функций getXXX (например, функции getreal в предыдущем примере).