關於本地化或修改次組合代碼

出於本地化考慮,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 檔案。透過在句子的前面加入 //,在此檔案中加入註釋。請勿在檔案中留有任何空行。使用換行字元來分隔每個代碼行。每個代碼定義均由以下元件組成 (以逗號分隔):

註: 代碼檔案必須以 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 次組合,您可以執行以下作業:

  1. 使用新的索引、本地化名稱、原始代碼和可選描述,在 C3DStockSubassemblyScripts.Codes 檔案結尾加入 <新代碼>
  2. 在 C3DStockSubassemblies VB 專案的 CodesSpecific.vb 中,於 AllCodes 結構結尾加入以下內容:Public <新代碼> as CodeType
  3. 在 CodesSpecific.vb 中 FillCodeStructure 常式的 With/End With 程式塊中,於結尾加入以下內容:GetFromCollection colCodesAndDescriptionHashtable, n, .<新代碼>
  4. 如果未找到代碼檔案,則宣告 CodesSpecific 模組 InitializeDefaults() 函數中 CodesDefault(<新代碼索引>) 的預設值。
  5. 變更 Dim 陳述式中 CodesSpecific 模組中陣列 CodesDefault 的大小。

使用這些程序加入的新代碼可以用於 Autodesk Civil 3D 常備次組合中任何既有的或新的 .NET 代碼次組合。

對於 VBA 次組合,可以執行以下操作:

  1. 使用新的索引、本地化名稱和可選描述,在 C3DStockSubassemblyScripts.Codes 檔案結尾加入 <新代碼>
  2. 在 C3DStockSubassemblyScripts.dvb 檔案的 CodesSpecific 模組中,於 AllCodes 結構結尾加入以下內容:g_s<新代碼> as CodeType
  3. 在 CodesSpecific 檔案中 FillCodeStructure 常式的 With/End With 程式塊中,於結尾加入以下內容:GetFromCollection colCodesAndDescriptionHashtable, n, .g_s<新代碼>
  4. 如果未找到代碼檔案,則宣告 CodesSpecific 模組 InitializeDefaults() 函數中 g_arrDefaults(<新代碼索引>) 的預設值。
  5. 變更 CodesSpecific 模組中陣列 g_arrDefault 的大小。

使用這些步驟加入的新代碼可以用於 Autodesk Civil 3D 常備次組合中任何既有的或新的 VBA 編碼次組合。

註: 關聯點代碼的過程主要是為了簡化預設內容的本地化而進行。如果您要編寫自訂次組合,則不必執行此操作步驟。您可以建立包含次組合可以參考的自訂代碼清單的新模組。也可以透過在每個模組內對字串進行本端固定編碼略過此步驟。

本地化次組合目錄和工具選項板

預設次組合通常為範圍廣泛的客戶和地理區域而定義。您可能想要變更某些目錄、選項板、工具或工具變數的顯示名稱,以適用於各種情況和語言。這些目錄和工具選項板在 .atc 檔中以 XML 格式編寫,可以進行編輯。

註: 依預設,在英文系統上,Autodesk Civil 3D 次組合工具目錄 .atc 檔案安裝至 C:\ProgramData\Autodesk\C3D<版本>\cht\Tool Catalogs\Road Catalog

下面的清單指出了出於本地化目的,您可以在次組合工具目錄 .atc 檔中變更的資料元素值。

註: 應僅變更資料元素的值,而不應變更其自身的資料元素名稱 (例如「基本車道」次組合中的「寬度」)。這些資料元素是用於次組合腳本的整體變數名稱。

安裝地區套件、自訂的代碼檔案或語言環境特定的代碼檔案

如果打算安裝包含區域特定代碼檔案的地區套件,或者打算安裝 (使用) 包含區域特定內容的代碼檔案,您必須先執行以下作業,然後再安裝地區套件或安裝自訂的代碼檔案。

對區域特定代碼檔案或自訂的代碼檔案製作備份複本,將複本更名為所安裝的代碼檔案的預設名稱 (例如,對於英文版本產品,預設代碼檔案名為 C3DStockSubassemblyScripts_US.codes),然後將其複製到以下位置:C:\ProgramData\Autodesk\C3D <版本>\cht。對於非英文系統,「cht」位置應對應於適當的語言環境。

請注意,第一次將 Autodesk Civil 3D 安裝在新電腦上後,會安裝以下兩種版本的代碼檔案:

為保護代碼檔案內容,安裝了 C3DStockSubassemblyScripts_<語言環境>.codes 檔案 (在本範例中為 C3DStockSubassemblyScripts_US.codes) 以提供備份手法。

安裝包含區域特定代碼檔案的地區套件時,本地化代碼檔案會被安裝到 C3DStockSubassemblyScripts.codes 所在位置,並覆寫該既有檔案,同時建立名為 C3DStockSubassemblyScripts_<語言環境>.codes 的複本。您有可能會修改您的 C3DStockSubassemblyScripts.codes 檔案,這就是先將其備份,然後再安裝地區套件或語言環境特定代碼檔案的重要性所在。

代碼檔案問題疑難排解

如果在使用自訂的次組合或者執行某些 Autodesk Civil 3D 廊道塑型自學課程時出現非預期結果,這可能是由於圖面試圖參考其找不到的代碼檔案資訊造成的。在某些情況下,這些問題可以透過更新既有代碼檔案以使其包含必要資訊來解決。