關於使用巨集中的 DIESEL 表示式回應 AutoLISP

您可以使用 DIESEL 字串表示式做為回應使用 AutoLISP 或 ObjectARX 定義指令的一種方式。

DIESEL 表示式傳回字串值 (文字字串),該值可以回應標準指令、AutoLISP 和 ObjectARX ® 常式,以及其他巨集。

註: AutoLISP 與 ObjectARX 無法在 AutoCAD LT 中使用。

DIESEL 表示式傳回的值是文字字串,它可以用來回應 AutoLISP getxxx 或 ObjectARX acetGetxxx 函數的呼叫。此函數特性,讓功能表項目可以演算目前圖面的狀態,並將值傳回 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 
)
註: 您經常使用的 AutoLISP 常式應包括錯誤檢查,以確認使用者輸入的有效性。

執行先前範例的同時,您可以按一下執行 DIESEL 表示式的使用者介面元素,以回應其中一個提示。例如,您可以使用表示式 $ M = $ (*, $ (getvar, dimscale) ,0.375 ) 來使用為目前 DIMSCALE 3/8 的比例係數。

沒有類似的 AutoLISP 程式碼能完成此作業;AutoLISP 表示式傳回的值通常無法做為對 getxxx 函數呼叫 (例如,前面範例中的 getreal 函數) 的回應。