出於本地化考慮,Autodesk Civil 3D 常備次組合使用外部代碼檔案來定義次組合中參考的點代碼、連接代碼和造型代碼。
外部代碼檔案名為 C3DStockSubassemblyScripts.codes,與 C3DStockSubassemblyScripts.dvb 檔案和/或 C3DStockSubassemblies.dll 檔案位於同一資料夾中。依預設,在英文系統上,此位置通常為 C:\ProgramData\Autodesk\C3D<版本 >\cht。對於非英文系統,「cht」位置對應於適當的語言或區域。
代碼檔案與 .dvb 檔中包含 CodesSpecific 模組的每個次組合關聯。以下部分解釋了代碼檔案的定義,以及如何對其進行編輯或向其加入點、連接和造型代碼。
對於 .NET 次組合,CodesSpecific 模組位於 C3DStockSubassemblies VB 專案的 CodesSpecific.vb 檔案中;對於 VBA 次組合,CodesSpecific 模組位於 .dvb 檔中。
認識 C3DStockSubassemblyScripts.codes 檔案
可以使用任何文字編輯器開啟 C3DStockSubassemblyScripts.Codes 檔案。透過在句子的前面加入 //,在此檔案中加入註釋。請勿在檔案中留有任何空行。使用換行字元來分隔每個代碼行。每個代碼定義均由以下元件組成 (以逗號分隔):
- 索引編號:用於 (根據需要,針對點、連接或造型) 將標示指定到次組合模組的整數值。
- 本地化代碼:在 Autodesk Civil 3D 中,將顯示在「次組合性質」、「組合性質」和/或「廊道性質」中「代碼」頁籤上的值,用於設定連接的型式。
- 原始代碼: Autodesk Civil 3D 使用的代碼變數。 無論使用哪種本地化版本的次組合,均以相同的方式對其進行解釋,以便圖面可以在不同的語言版本間移轉。
- 代碼描述:進一步解釋與此代碼關聯的功能的本地化描述。此文字顯示在「次組合、組合和/或廊道性質」對話方塊中「代碼」頁籤的「描述」欄中。此文字是可選的。
註: 代碼檔案必須以 Unicode 格式儲存。例如,如果您在使用記事本更新代碼檔案,當儲存檔案時,「另存」對話方塊會讓您選擇編碼方式。請確保選擇 Unicode。
下列為 C3DStockSubassemblyScripts.codes 檔案中的代碼定義行範例:
38,路緣底部,BottomCurb,無邊溝路緣的路緣底部。
索引編號為:38
本地化代碼為:路緣底部
原始代碼為:BottomCurb
代碼描述為:無邊溝路緣的路緣底部。
修改 Autodesk Civil 3D 內建次組合的預設代碼
若要變更或本地化代碼顯示名稱,請在文字編輯器中開啟 C3DStockSubassemblyScripts.codes 檔案,然後變更本地化代碼和/或相應的代碼描述。
例如,可以透過編輯 C3DStockSubassemblyScripts.codes 檔案中以粗體顯示的部分 (如下所示) 來變更路緣底部的顯示名稱:
38,BottomKerb,BottomCurb,Bottom of kerb for a kerb without gutter
將新代碼加入到 Autodesk Civil 3D 內建次組合
如果要按照新代碼修改既有次組合或加入新次組合模組,並且要使用與預設內容相同的結構,則對於 .NET 次組合,您可以執行以下作業:
- 使用新的索引、本地化名稱、原始代碼和可選描述,在 C3DStockSubassemblyScripts.Codes 檔案結尾加入 <新代碼>。
- 在 C3DStockSubassemblies VB 專案的 CodesSpecific.vb 中,於 AllCodes 結構結尾加入以下內容:Public <新代碼> as CodeType
- 在 CodesSpecific.vb 中 FillCodeStructure 常式的 With/End With 程式塊中,於結尾加入以下內容:GetFromCollection colCodesAndDescriptionHashtable, n, .<新代碼>
- 如果未找到代碼檔案,則宣告 CodesSpecific 模組 InitializeDefaults() 函數中 CodesDefault(<新代碼索引>) 的預設值。
- 變更 Dim 陳述式中 CodesSpecific 模組中陣列 CodesDefault 的大小。
使用這些程序加入的新代碼可以用於 Autodesk Civil 3D 常備次組合中任何既有的或新的 .NET 代碼次組合。
對於 VBA 次組合,可以執行以下操作:
- 使用新的索引、本地化名稱和可選描述,在 C3DStockSubassemblyScripts.Codes 檔案結尾加入 <新代碼>。
- 在 C3DStockSubassemblyScripts.dvb 檔案的 CodesSpecific 模組中,於 AllCodes 結構結尾加入以下內容:g_s<新代碼> as CodeType
- 在 CodesSpecific 檔案中 FillCodeStructure 常式的 With/End With 程式塊中,於結尾加入以下內容:GetFromCollection colCodesAndDescriptionHashtable, n, .g_s<新代碼>
- 如果未找到代碼檔案,則宣告 CodesSpecific 模組 InitializeDefaults() 函數中 g_arrDefaults(<新代碼索引>) 的預設值。
- 變更 CodesSpecific 模組中陣列 g_arrDefault 的大小。
使用這些步驟加入的新代碼可以用於 Autodesk Civil 3D 常備次組合中任何既有的或新的 VBA 編碼次組合。
註: 關聯點代碼的過程主要是為了簡化預設內容的本地化而進行。如果您要編寫自訂次組合,則不必執行此操作步驟。您可以建立包含次組合可以參考的自訂代碼清單的新模組。也可以透過在每個模組內對字串進行本端固定編碼略過此步驟。
本地化次組合目錄和工具選項板
預設次組合通常為範圍廣泛的客戶和地理區域而定義。您可能想要變更某些目錄、選項板、工具或工具變數的顯示名稱,以適用於各種情況和語言。這些目錄和工具選項板在 .atc 檔中以 XML 格式編寫,可以進行編輯。
註: 依預設,在英文系統上,Autodesk Civil 3D 次組合工具目錄 .atc 檔案安裝至 C:\ProgramData\Autodesk\C3D<版本>\cht\Tool Catalogs\Road Catalog。
下面的清單指出了出於本地化目的,您可以在次組合工具目錄 .atc 檔中變更的資料元素值。
- <ItemName> 值是目錄、品類、選項板或次組合的描述性名稱。
- <Description> 值描述目錄、品類、選項板或次組合。
- <Keywords> 值包含次組合的說明字串。
- <Params> 資料元素包含以下屬性:
- DisplayName:顯示在「AutoCAD 性質」視窗中的選取次組合的名稱。
- 描述:顯示在「AutoCAD 性質」視窗左下角的選取次組合的描述性文字。
- 如果需要,可以變更以下資料元素值:
- <Params> 中任何子元素的參數值 (例如「基本車道」次組合中的「寬度」)。
- 在 Autodesk Civil 3D 中支援英呎和公尺的<單位> 值。
- <DotNetClass Assembly = ...> (針對 .NET 次組合),可對其進行修改以指向不同的 .NET 類別。
- <Macro Module = ...> (針對 VBA 次組合),可對其進行修改以指向不同的巨集。
註: 應僅變更資料元素的值,而不應變更其自身的資料元素名稱 (例如「基本車道」次組合中的「寬度」)。這些資料元素是用於次組合腳本的整體變數名稱。
安裝地區套件、自訂的代碼檔案或語言環境特定的代碼檔案
如果打算安裝包含區域特定代碼檔案的地區套件,或者打算安裝 (使用) 包含區域特定內容的代碼檔案,您必須先執行以下作業,然後再安裝地區套件或安裝自訂的代碼檔案。
對區域特定代碼檔案或自訂的代碼檔案製作備份複本,將複本更名為所安裝的代碼檔案的預設名稱 (例如,對於英文版本產品,預設代碼檔案名為 C3DStockSubassemblyScripts_US.codes),然後將其複製到以下位置:C:\ProgramData\Autodesk\C3D <版本>\cht。對於非英文系統,「cht」位置應對應於適當的語言環境。
請注意,第一次將 Autodesk Civil 3D 安裝在新電腦上後,會安裝以下兩種版本的代碼檔案:
- C3DStockSubassemblyScripts.codes
- C3DStockSubassemblyScripts_US.codes
為保護代碼檔案內容,安裝了 C3DStockSubassemblyScripts_<語言環境>.codes 檔案 (在本範例中為 C3DStockSubassemblyScripts_US.codes) 以提供備份手法。
安裝包含區域特定代碼檔案的地區套件時,本地化代碼檔案會被安裝到 C3DStockSubassemblyScripts.codes 所在位置,並覆寫該既有檔案,同時建立名為 C3DStockSubassemblyScripts_<語言環境>.codes 的複本。您有可能會修改您的 C3DStockSubassemblyScripts.codes 檔案,這就是先將其備份,然後再安裝地區套件或語言環境特定代碼檔案的重要性所在。
代碼檔案問題疑難排解
如果在使用自訂的次組合或者執行某些 Autodesk Civil 3D 廊道塑型自學課程時出現非預期結果,這可能是由於圖面試圖參考其找不到的代碼檔案資訊造成的。在某些情況下,這些問題可以透過更新既有代碼檔案以使其包含必要資訊來解決。