若要匯入符號

您可以在單一作業中使用 MAPSYMBOLIMPORTEXPORT 指令或 Microsoft VBA 腳本匯入多個符號。

當您設定點、線或多邊形圖徵的型式時,「負載」選項可讓您匯入符號。您也可以使用 MAPSYMBOLIMPORTEXPORT 指令,如下所述。

若要使用使用者介面匯入符號

  1. 將 CMDDIA 或 FILEDIA 系統變數設定為 '1'。
  2. 於指令提示下,輸入 MAPSYMBOLIMPORTEXPORT。
  3. 「符號資源庫」中,按一下「匯入」
  4. 「開啟」對話方塊中,尋找並選取要匯入的檔案,或在 「檔名」輸入檔案的名稱, 然後按一下「開啟」

    您可以匯入 DWG 檔中的圖塊作為符號。您也可以將符號資源庫 (*.layer)、向量符號 (*.xml )、填充線定義 (*.pat)、線型式 (*.lin ), 或點陣式影像 (*.gif、*.jpg *.bmp *.png) 匯入至符號資源庫。

  5. 按一下「關閉」。

若要不使用使用者介面匯入符號

  1. 同時將 CMDDIA 和 FILEDIA 系統變數設定為 '0'。
  2. 於指令提示下,輸入 MAPSYMBOLIMPORTEXPORT。
  3. 於發出提示後,選擇「匯入」
  4. 輸入包含要匯入之符號的符號檔案路徑。
  5. 如果您要取代既有具有相同名稱的符號,請選擇「是」;如果您不想覆蓋具有相同名稱的符號,請選擇「否」。
  6. 請待以下訊息顯示:「此符號匯出已成功完成!」。
提示: 做為一個選項,您可以透過腳本自動完成上述步驟。在指令行中,使用「腳本」指令載入腳本檔並等待直到完成。以下為腳本的一個範例。將其儲存為帶 .scr 副檔名的檔案。
CMDDIA 0
FILEDIA 0
_MAPSYMBOLIMPORTEXPORT _IMPORT "C:\data\MySymbols.dwg" _YES

VBA 腳本選項

若要節省時間,您可以在單一作業中使用 Microsoft Visual Basic for Applications (VBA) 腳本為多個圖面匯入符號。以下腳本是一個範例。您可以將其用做樣板、進行所需的修改,然後將其儲存為 .bas 檔案。

Attribute VB_Name = "ImportSymbolIntoDWG"
Sub ImportSymbolIntoAllDWG()
    Dim fileSystemObject, fileSystemFolder, file, fileCollection
    Dim collectionOfFiles As New Collection
    
    Dim path As String
    ' Define where the DWG files are located
    path = "C:\Autodesk\DWGFiles"
    
    Dim prototypeDWG As String
    ' Define where the symbol(s) should be imported from
    prototypeDWG = "C:\Autodesk\Prototype\Prototype_GA_modified.dwg"
    
    Dim currentSDI As Integer
    currentSDI = ThisDrawing.GetVariable("SDI")
    
    If (currentSDI = 1) Then
        MsgBox "The functions works only with multiple drawings [SDI=0]"
        Exit Sub
    End If
    
    '' use this to request the path
    'path = ThisDrawing.Utility.GetString(1, vbCrLf & "Enter the path of the DWG files to update: ")
    'prototypeDWG = ThisDrawing.Utility.GetString(1, vbCrLf & "Enter the path of the prototype DWG: ")
    
    ThisDrawing.SetVariable "FILEDIA", 0
    ThisDrawing.SetVariable "CMDDIA", 0
    
    Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
    Set fileSystemFolder = fileSystemObject.GetFolder(path)
    Set fileCollection = fileSystemFolder.Files
    
    For Each file In fileCollection
        If UCase(Right(file.Name, 4)) = UCase(".dwg") Then
            collectionOfFiles.Add file.path
        End If
    Next
    
    For Each drawing In collectionOfFiles
        Application.Documents.Open (drawing)
        ThisDrawing.SendCommand "_MAPSYMBOLIMPORTEXPORT" & vbCr & "_IMPORT" & vbCr & prototypeDWG & vbCr & "_YES" & vbCr
        ThisDrawing.Save
        ThisDrawing.Close
    Next drawing
    
End Sub

在範例腳本中,有一個模組「ImportSymbolIntoDWG」(帶子模組「ImportSymbolIntoAllDWG()」)。您需要修改「路徑」變數來指定圖面所在的路徑,並修改「prototypeDWG」變數以指向包含要匯入之符號的 DWG 檔案。

若要為多個圖面匯入符號,請使用 VBA 腳本

  1. 將所有圖面放在您要為其更新符號的一個資料夾中。
  2. AutoCAD Map 3D 工具集 指令行輸入 VBAIDE,以開啟「Microsoft VBA」視窗。

    如果您尚未安裝,系統會顯示一則訊息,告知您下載 Autodesk AutoCAD VBA Enabler。

  3. 在「Microsoft VBA」視窗中,執行以下作業:
    1. 按一下「檔案」, 並選取「匯入檔案」
    2. 「匯入檔案」對話方塊中,尋找並選取包含腳本的 .bas 檔案。
    3. 按一下「開啟」
    4. 在「Microsoft VBA」視窗中,按一下「儲存」
    5. 「另存」對話方塊中,指定路徑與檔案名稱,然後按一下「儲存」
  4. 關閉「Microsoft VBA」視窗。
  5. 在指令行上,輸入 VBALOAD 以載入您在上方儲存的 .dvb 檔。

    如果系統向您發出有關巨集的警告,請按一下「啟用巨集」。

  6. 在指令行上,輸入 VBARUN 並選擇相關的巨集以執行。