關於參考下拉功能表或快顯功能表

使用類似於啟用次功能表所使用的方式,您可以啟用或停用其他下拉式功能表或快顯功能表。這稱為功能表參考

可使用兩種不同方式參考下拉式功能表或快顯功能表:相對絕對。絕對參考使用功能表階層中功能表項目的絕對位置。相對參考使用自定群組名稱和元素 ID。建議使用相對參考,因為它具有動態性質。

絕對參考

除了參考功能表項目以外,您還可以使用以下語法啟用或停用功能表項目:

$Pn.i=xxx

$ 載入功能表部份;Pn 可指定作用中的功能表部份 (有效值為 0 到 16); i 可指定功能表項目號碼;而 xxx (如果有) 可指定灰顯或標記的字元的字串。

以下範例使用 $Pn=xxx 語法,在別名為 POP7 之功能表上的項目 1 加入勾選標記。

$P7.1=!.

下列範例在 AutoCAD 中使用 AutoLISP 的 menucmd 函數來參考下拉式功能表項目或快顯功能表項目。由於自訂檔是動態的 (透過載入局部 CUIx 檔),因此以下語法並不能適用於所有情況。

(menucmd "P1.2=~")

此語法依賴功能表項目的位置,如果 CUILOAD 指令在 POP1 之前插入一個新項目,此語法就無法運作。

功能表項目編號是連續的,無論功能表的階層為何。

使用下列格式,可讓您輕鬆找出項目位置,而無論它在功能表階層中的位置為何:

$P@.@=xxx

參考目前或最近選擇的指令。

$P@.n=xxx

參考目前或最近選擇之功能表中的項目 n

相對參考

您可以使用 AutoLISP menucmd 函數,根據自訂群組與元素 ID,參考下拉式功能表或快顯功能表項目。以下語法基於功能表項目的元素 ID 來參考功能表項目。

(menucmd "Gcustomizationgroup.element_id=value")

以下範例使用相對參考語法停用儲存在 ACAD 自訂群組中的 ID_Line 功能表項目。無論功能表項目在功能表中處於什麼位置,它都可以運作。

(menucmd "GACAD.ID_Line=~")

如果您知道主自訂 (CUIx) 檔中所包含的內容,便可建立包含參考主 CUIx 檔的其他功能表項目的局部自訂 (CUIx) 檔。這樣,局部 CUIx 檔就可以與特定的基本自訂檔配合使用。

AutoLISP 存取標示狀態

AutoLISP menucmd 函數接受 $Pn=xxx 指令字串,但不能有前導 $。在這些函數中,指令字串的 xxx 部份可以帶有特殊值。

Pn.i=?

以字串傳回指定項目目前已停用和已標記的狀態 (例如,~ 表示已停用的項目、!. 表示有勾選標記的項目,"" 表示未灰顯或未標記的項目)。

Pn.i=#?

傳回與 Pn.i=? 描述相同的字串類型,但字首為 Pn.i=。這與 @ 格式連用時非常有用,因為會傳回實際的功能表與項目號碼。

例如,如果停用 POP6 區段中的第五個項目,後面的 menucmd 程式碼會傳回下列字串值。

(menucmd "P6.5=?")     returns  "~" 
(menucmd "P6.5=#?")    returns  "P6.5=~"