Components 元素參考

Components 元素是用於指定外掛程式某個版本的組成元件。

您可以使用一個以上的 Components 元素來識別外掛程式的元件;每個 Components 元素則可以識別一個或多個元件。Components 元素的平台和產品資訊則是利用 RuntimeRequirements 元素定義。

如果 Components 元素中定義的所有元件皆套用到相同的平台,您便不需要將 RuntimeRequirements 元素加入至個別的 ComponentEntry 元素中。

RuntimeRequirements 元素一起時,Components 元素可能含有一個或多個以下元素

註: Components 元素僅可以有一個 RegistryEntriesSystemVariablesEnvironmentVariables 元素,但可以包含多個 ComponentEntry 元素。

下表概述了 Components 元素的基本關係和它本身可以包含的任何元素。

<Components>
  <RuntimeRequirements ... />

  <RegistryEntries>
    <RegistryEntry ... />
  </RegistryEntries>

  <SystemVariables>
    <SystemVariable ... />
  </SystemVariables>

  <EnvironmentVariables>
    <EnvironmentVariable ... />
  </EnvironmentVariables>

  <ComponentEntry ... >
    <RuntimeRequirements ... />
  </ComponentEntry>

  <ComponentEntry ... />

  <Commands ...>
    <Command ... />
  </Commands>
</Components>

ComponentEntry 元素 - AutoCAD 2013 系列產品和更新版本中都支援此元素

ComponentEntry 元素為必要元素,而且是用於指定 Components 元素中每個個別元件的相關詳細資料。

您可以依需要指定所需數目的 ComponentEntry 元素。元件類型可以是下列其中一種檔案格式:

如果 LoadReasons 屬性設定為 LoadOnCommandInvocation,則 ComponentEntry 元素可包含 Commands 元素。

註: ComponentEntry 元素是依其列示順序載入 (從下到上)。因此,其他元件所從屬的任何檔案都必須位於清單下方。例如,若 ObjectARX 模組從屬於 ObjectDBX 模組,則 ObjectARX 模組必須顯示在清單中 ObjectDBX 模組的上方。

ComponentEntry 元素可以貼附下列任何屬性:

屬性

描述

AppName

AutoLISP 可選;ObjectARX 和 .NET 必選 - Component 名稱;與 ObjectARX API AcadAppInfo 類別中的 AppName 相同。

AppDescription

Component 描述;與 ObjectARX API AcadAppInfo 類別中的 AppDescription 相同。

AppType

Component 類型;覆寫從 ModuleName 屬性提供的檔案副檔名所衍生的類型。

元件類型可以是下列其中一種:

  • .Net – 管理或混合的 .NET 組合
  • Arx – ObjectARX
    註: 將組合中的 ARX 檔案載入至 AutoCAD for Mac 時的必要項目。
  • Atc – 工具選項板
  • Bundle – 組合套件
  • CuiCuix – 局部自訂
  • Dbx – ObjectDBX
  • Dependency – 資源 DLL (不載入至 AutoCAD 系列產品中)
  • JavaScript – JavaScript
  • LispCompiledLisp – AutoLISP/Visual LISP
  • Mnu – 功能表自訂
  • VBA – VBA 專案
  • Xaml – 用於實施關聯式功能區頁籤的 XAML 檔

ModuleName

在組合中與元件的相對路徑;與 ObjectARX API AcadAppInfo 類別中的 ModuleName 相同。

元件類型是從檔案副檔名來判斷:

  • .atc – 工具選項板
  • .arx – ObjectARX
  • .cuix – 局部自訂
  • .dbx – ObjectDBX
  • .dll – 管理的 .NET 組合
  • .dvb – VBA 專案 (AutoCAD 2015 系列產品和更新版本)
    註: 必須先安裝 VBA Enabler,才能使用 DVB 檔。載入時,使用者必須按一下「啟用巨集」,才能存取專案及其巨集。
  • .js – Javascript (AutoCAD 2015 系列產品和更新版本)
  • .lsp.fas.vlx – AutoLISP/Visual LISP
  • .xaml – 可延伸應用程式標記語言 (AutoCAD 2015 系列產品和更新版本)
    註: 屬性 XamlType 必須設定為「ContextualTabRule」

如果您的應用程式將處理多種語言,可以將 ModuleName 與區域設定代碼結合,指定特定元件的不同版本。請參閱〈支援的區域設定程式碼參考〉取得支援的區域設定程式碼完整清單。

註: 所有檔案指定元皆為 '/' 而非 '\',並且為相對於 .bundle 根資料夾的路徑。

PerDocument

僅 AutoLISP - 當此值為 True 時,每個文件會載入一次 AutoLISP 檔案。預設為 True。

Loadreasons

可指定多個值 - 使用 LoadReasons 以及 LoadOnCommandInvocation 參數的異常狀況定義元件的載入行為參數。

根據預設,如果未指定 LoadReasons,則會啟用 LoadOnAutoCADStartupLoadOnAppearanceLoadOnProxy (設定為 True)。如果需要停用參數 (設定為 False),則必須指定 LoadReasons 元素,且參數應設定為 False。

根據預設,LoadOnCommandInvocation 為停用狀態,啟用此元素將會停用 LoadOnAutoCADStartupLoadOnAppearance (除非明確啟用)。如果一個或多個指令元素定義為元件元素的一部分,則系統會隱含啟用 LoadOnCommandInvocation

請參閱《ObjectARX 參考指南》,取得有關 AcadAppInfo LoadReasons 的完整詳細資料。

有效參數值:

  • True – 參數值已啟用
  • False – 參數值已停用

可使用以下參數:

  • LoadOnCommandInvocation。只在呼叫自訂指令時載入。當使用此參數時,必須包含‘Commands’元素。如果 LoadOnCommandInvocation 已啟用,則系統會假設 LoadOnAutoCADStartupLoadOnAppearance 已停用 (除非明確啟用)。只適用於 AutoLISP 和·.NET 模組。
    註: 由於啟動效能的緣故,在元件定義指令時使用此選項非常重要。
  • LoadOnAutoCADStartup。 當啟動 AutoCAD 系列產品時載入。指定此參數時,此參數優先於其他所有參數。建議只在沒有其他適合的參數時才使用 LoadOnAutoCADStartup,其他時候請儘可能停用此參數 (設定為 False)。如果省略 LoadOnAutoCADStartup 參數,則除非啟用 LoadOnCommandInvocation,否則該參數會預設為啟用 (設定為 True),此時 LoadOnAutoCADStartup 是預設為 False。只適用於 ObjectARX 和·.NET 模組。
  • LoadOnProxy。當偵測到自訂圖元的代理時載入。根據預設,除非明確停用 (設定為 False),否則此參數為啟用。當啟用 (設定為 True) 時,LoadOnAutoCADStartup 應為停用。僅適用於 ObjectDBX 檔案。
  • LoadOnAppearance。當產品在其中一個 ApplicationPlugins 資料夾中偵測到應用程式組合時會載入此參數,因此支援在安裝時立即載入,無須重新啟動 AutoCAD 系列產品。參數的作用方式與 LoadOnAutoCADStartup 相同,但載入內容是與當產品執行時,何時安裝應用程式有關,例如當透過 Autodesk Exchange Apps 網站進行安裝時。

XamlType

XAML 類型;目前僅支援值「ContextualTabRule」,將 XAML 檔案指定給 ModuleName 屬性時必須使用這個值。使用 XAML 檔案的應用程式檔案應該列示在包含 XAML 檔的 ComponentEntry 元素之後。

RegistryEntries 元素 - AutoCAD 2015 系列產品和更新版本中都支援此元素

RegistryEntries 元素是可選的元素,並且可以包含一個或多個 RegistryEntry 元素。RegistryEntry 元素包含外掛程式應建立或修改之登錄項目的定義。登錄項目是儲存在 Windows 登錄中或 Mac 作業系統上的性質清單 (PLIST) 檔案中。

註: 在 Windows 中,登錄項目都是在 HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\<版本>\ACAD-<產品>:<語言> 之下建立。登錄項目無法在其他位置中建立。在 Mac 作業系統上的 PLIST 檔案中則是使用對等的位置。
RegistryEntry 元素

屬性

描述

名稱

要建立或修改之登錄項目的名稱。

要指定給登錄項目的值。

這個值可以包含其中一個可選的運算子字首:+-&|

如需詳細資訊,請參閱「變數值運算子字首」一節。

註: 將值套用至登錄項目時,不會保留運算子字首。

類型

要指定給登錄項目的資料類型。修改既有登錄項目時為可選。

有效值為:

  • REG_SZ – 字串;Null 終止
  • REG_EXPAND_SZ – 包含未展開之環境變數的字串,例如 %APPDATA%;Null 終止
  • REG_DWORD – 無正負號的 32 位元整數
  • REG_QWORD – 帶正負號的 64 位元整數

如果運算子字首做為登錄項目值的一部分使用時,必須指定適當的資料類型。如果未使用適當的資料類型,則此作業將被視為是字串作業。

旗標

(可選) 建立和修改旗標。可指定多個旗標;使用豎線號來分隔每個旗標。

支援下列旗標:

  • Create – 建立登錄項目 (如果登錄項目不存在的話)。(預設行為)
  • Open – 每次載入外掛程式時,以及只有當登錄項目存在時,修改登錄項目的值。
  • OpenOnce – 第一次載入外掛程式時,以及只有當登錄項目存在時,修改登錄項目的值。解除安裝並重新安裝外掛程式會導致登錄項目的值再次變更。
註: Open 或 OpenOnce 旗標必須用於修改登錄項目的值。

以下範例會建立登錄碼 MYREGKEY 並加入 STRING 和 NUMBER 值:

<RegistryEntries>
    <RegistryEntry
        Key="MYREGKEY"
        Name="STRING"
        Value="Example"
        Type="REG_SZ"
    />

    <RegistryEntry
        Key="MYREGKEY"
        Name="NUMBER"
        Value="123"
        Type="REG_DWORD"
    />
</RegistryEntries>

SystemVariables 元素 - AutoCAD 2015 系列產品和更新版本中都支援此元素

SystemVariables 元素是可選的元素,並且可以包含一個或多個 SystemVariables 元素。SystemVariable 元素包含外掛程式應建立或修改之系統變數的定義。

SystemVariable 元素

屬性

描述

名稱

要建立或修改之系統變數的名稱。

要指定給變數的值。

這個值可以包含其中一個可選的運算子字首:+-&|

如需詳細資訊,請參閱「變數值運算子字首」一節。

註: 將值套用至變數時,不會保留運算子字首。

PrimaryType

要指定給變數的資料類型。修改既有系統變數時為可選。

有效值為:

  • Int16 – 帶正負號的 16 位元整數
  • Int32 – 32 位元整數
  • Real – 浮點或倍精度數值
  • String - 單一或多個字元值

如果運算子字首做為變數值的一部分使用時,必須指定適當的資料類型。如果未使用適當的資料類型,則此作業將被視為是字串作業。

StorageType

變數值的儲存位置 (如果保留的話)。修改既有系統變數時為可選。

有效值為:

  • Database – 保留在建立變數的圖檔中
  • Profile – 保留做為目前 AutoCAD 紀要的一部分
  • Session – 不會在建立這個階段作業的圖面中或跨圖面階段作業保留
  • User – 保留做為 FixedProfile for AutoCAD 的一部分

擁有者

(可選) AcRX 服務名稱。

用於使系統變數成為唯讀狀態,且僅能由使用 acrxRegisterService() 以註冊服務名稱的應用程式修改。

旗標

(可選) 建立和修改旗標。可指定多個旗標;使用豎線號來分隔每個旗標。

支援下列旗標:

  • Create – 建立變數 (如果變數不存在的話)。(預設行為)

  • Open – 每次載入外掛程式時,以及只有當變數存在時,修改變數的值。

  • OpenOnce – 在第一次載入外掛程式時,並且僅在變數存在時修改變數的值。解除安裝並重新安裝外掛程式會導致變數的值再次變更。

  • SpacesAllowed – 允許於指令提示時按空格鍵。如果未指定,則按空格鍵的作用與按 Enter 鍵一樣。

    註: 僅與 Create 旗標搭配,且當 PrimaryType 屬性設定為 String 時使用。
  • DotIsEmpty – 允許藉由輸入 "." (句點) 做為變數的值以清除變數的值。

    註: 僅與 Create 旗標搭配,且當 PrimaryType 屬性設定為 String 時使用。
  • NoUndo – 不記錄變數的變更,而且無法使用 U 或 UNDO 指令退回。

    註: 僅與 Create 旗標搭配使用。
  • Chatty – 觸發反應器通知,即使變數的值是設定為其目前的值亦然。

    註: 僅與 Create 旗標搭配使用。
註: Open 或 OpenOnce 旗標必須用於修改變數的值。

以下範例會建立一個名為 MYVARIABLE 的系統變數:

<SystemVariable
    Name="MYVARIABLE"
    PrimaryType="String"
    StorageType="User"
    Value="Example"
    Owner=""
    Flags="Create|DotIsEmpty|SpacesAllowed"
/>

以下範例會在首次載入外掛程式時,將 CURSORSIZE 系統變數的值變更為 100:

<SystemVariable
    Name="CURSORSIZE"
    Value="100"
    Flags="OpenOnce"
/>

EnvironmentVariables 元素 - AutoCAD 2015 系列產品和更新版本中都支援此元素

EnvironmentVariables 元素是可選的元素,並且可以包含一個或多個 EnvironmentVariable 元素。EnvironmentVariables 元素包含外掛程式應建立或修改之環境變數的定義。環境變數是儲存在 Windows 登錄中或 Mac 作業系統上的性質清單 (PLIST) 檔案中。

註: 環境變數的值一定會儲存為一個字串,而環境變數名稱需區分大小寫。
EnvironmentVariable 元素

屬性

描述

名稱

要建立或修改之環境變數的名稱。

要指定給變數的值。

這個值可以包含其中一個可選的運算子字首:+-&|

如需詳細資訊,請參閱「變數值運算子字首」一節。

註: 將值套用至變數時,不會保留運算子字首。

類型

(可選) Value 所代表的資料類型。

有效值為:

  • Int16 – 帶正負號的 16 位元整數
  • Int32 – 帶正負號的 32 位元整數
  • Real – 浮點或倍精度數值
  • String - 單一或多個字元值

如果運算子字首做為變數值的一部分使用時,必須指定適當的資料類型。如果未使用適當的資料類型,則此作業將被視為是字串作業。

旗標

(可選) 建立和修改旗標。可指定多個旗標;使用豎線號來分隔每個旗標。

支援下列旗標:

  • Create – 建立變數 (如果變數不存在的話)。(預設行為)
  • Open – 每次載入外掛程式時,以及只有當變數存在時,修改變數的值。
  • OpenOnce – 在第一次載入外掛程式時,並且僅在變數存在時修改變數的值。解除安裝並重新安裝外掛程式會導致變數的值再次變更。
註: Open 或 OpenOnce 旗標必須用於修改變數的值。

以下範例會建立兩個名稱分別為 MYNUMVAR 和 MYSTRVAR 的環境變數:

<EnvironmentVariables>
    <EnvironmentVariable
        Name="MYNUMVAR"
        Value="123"
    />

    <EnvironmentVariable
        Name="MYSTRVAR"
        Value="Example"
    />
</EnvironmentVariables>

變數值的運算子字首

運算子字首是用於修改載入外掛程式時變數的目前值。您可以將下表中列示的其中一個運算子字首加入至 RegistryEntrySystemVariableEnvironmentVariable 元素的 Value 屬性。

Prefix

描述

+ (加號)

將值加入或附加至既有變數的值。

Int16、Int32、Real:將 Value 加入至既有變數的值。

String:將 Value 附加至既有變數的值。

- (連字符號)

從既有變數的值減去或移除一個值。

Int16、Int32、Real:從既有變數的值減去 Value

String:從既有變數的值移除 Value

& (& 符號)

具有既有變數值的逐位 And 作業;僅支援數值。

| (豎線號)

具有既有變數值的逐位 Or 作業;僅支援數值。

註: 如果變數的值應以其中一個運算子字首為開頭,則在運算子之前加入反斜線。例如,如果變數的值應為 +radius,請輸入 \+radius 做為值。

以下項目一定會啟用 END、MID、CEN、NOD、QUA 與 INT 常駐式物件鎖點,並保留所有其他物件鎖點設定的現狀:

<SystemVariable
    Name="OSMODE"
    Value="|63"
    Flags="Open"
/>

Commands 元素 - AutoCAD 2013 系列產品和更新版本中都支援此元素

Commands 元素可選,除非 LoadReasons 屬性啟用 LoadOnCommandInvocation 參數。用於指定要使用哪一個指令註冊 LoadOnCommandInvocation

您可以依需要指定一個以上的 Command 元素。

Commands 元素可以貼附下列屬性:

屬性

描述

GroupName

用於組織相關指令的名稱。

Command 元素 - AutoCAD 2013 系列產品和更新版本中都支援此元素

指定每個指令的整體和本端名稱。

Command 元素可以貼附下列任何屬性:

屬性

描述

Global

整體指令名稱。

Local

本端指令名稱。

您可將 Local 與區域設定代碼結合,定義多個語言的指令。請參閱〈支援的區域設定程式碼參考〉取得支援的區域設定程式碼完整清單。

HelpTopic

當指令的狀態處於作用中並按 F1 時,將會開啟的說明主題。

註: 若要顯示說明主題,必須將說明檔案指定給外掛程式。外掛程式的說明檔案位置是由 ApplicationPackage 元素中的 Helpfile 屬性指定。

StartupCommand

若值為 True,便會在啟動時執行指令 。