關於巨集中的 DIESEL 表示式

您可以在自訂 (CUI/CUIx) 檔中使用 DIESEL 字串表示式,做為其他建立巨集的方式,並可用於變更下拉式功能表標示。

DIESEL 表示式可透過使用者介面元素使用,且必須遵循 $section=submenu 格式;其中 section 的名稱是 M,而 submenu 就是您要使用的 DIESEL 表示式。

注意下列範例:

^C^C^P$M=$(if,$(=,$(getvar,cvport),1),mspace,pspace)

此 DIESEL 表示式提供可根據 CVPORT 系統變數的目前值,切換模型空間與圖紙空間的方式。當 CVPORT 設定為 1 時,就會執行 MSPACE 指令,否則執行 PSPACE 指令。該表示式以透通方式演算。如果省略特殊字元 ^P (它可切換 MENUECHO 的打開和關閉),表示式僅會顯示已核發的指令。

以下範例中的 DIESEL 表示式會以 0.5 的值乘以 DIMSCALE 的目前值,以計算當使用 -INSERT 指令插入註記圖塊時的比例係數。

^C^C-insert;note;0,0;$M=$(*,$(getvar,dimscale),0.5);;0;

DIESEL 表示式也可用於定義下拉式功能表項目的標示,使功能表處於無法使用的狀態,或變更功能表的顯示方式。在使用下拉功能表標示中的 DIESEL 表示式時,請確定第一個字元是 $ 字元。

在此範例中,將目前圖層設定為 BASE,且將下列 DIESEL 表示式用作下拉式功能表的標示。

$(eval,"Current layer: " $(getvar,clayer))

其結果是,顯示適當的下拉功能表,而且隨目前圖層的變更而更新。

Current Layer: BASE

註: 下拉式功能表和快顯功能表的寬度,均在載入自訂檔時決定。載入功能表之後,由 DIESEL 表示式所產生或變更的功能表標示會被截短,以適應既有功能表的寬度。

如果您預期 DIESEL 所產生的功能表標示會很寬,則可以用下列範例來確保功能表寬度能夠適合您的標示。本範例會顯示系統變數 CLAYER 目前值的前 10 個字元。

$(eval,"Current value: " $(substr,$(getvar,clayer),1,10))

在功能表標示中,您不能用結尾空格增加功能表寬度,因為,載入功能表時,結尾空格會被忽略。您用來增加功能表標示寬度的所有空格,都必須置於 DIESEL 表示式之中。

下一個範例使用同一個 DIESEL 表示式做為標示以及部份功能表項目。它提供一種可將目前的日期輸入圖面的實用方法。

功能表標示

$(edtime,$(getvar,date),DDD", "D MON YYYY)

巨集

^C^Ctext \\\ $M=$(edtime,$(getvar,date),DDD", "D MON YYYY);

另外,您還可使用 DIESEL 巨集來標記下拉功能表標示或使其無法使用。下列下拉功能表標示在指令處於作用中的狀態時顯示為無法使用。當指令不處於作用中時,該文字會正常顯示。

$(if,$(eq,$(getvar,tilemode),1),~)&Polygonal Viewport

您可以用類似的方法,在下拉功能表項目旁放置一個標記,或互動式地變更用作標記的字元。

$(if,$(and,$(getvar,ucsicon),1),!.)&On