Wiele symboli można zaimportować w jednej operacji, używając polecenia MAPSYMBOLIMPORTEXPORT lub skryptu Microsoft VBA.
Jeżeli używane są funkcje Punkt, Linia lub Wielobok opcja Wczytaj umożliwia zaimportowanie symboli. Polecenia MAPSYMBOLIMPORTEXPORT można także użyć w sposób opisany poniżej.
Importowanie symboli przy użyciu interfejsu użytkownika
Można importować bloki w plikach DWG jako symbole. Do repozytorium symboli można także zaimportować bibliotekę symboli (*.layer), symbol wektora (*.xml), definicję kreskowania (*.pat), styl linii (*.lin) lub obrazy rastrowe (*.gif, *.jpg *.bmp *.png).
Importowanie symboli bez użycia interfejsu użytkownika
CMDDIA 0 FILEDIA 0 _MAPSYMBOLIMPORTEXPORT _IMPORT "C:\data\MySymbols.dwg" _YES
Aby oszczędzić czas, można zaimportować symbole wielu rysunków w jednej operacji, używając skryptu programu Microsoft Visual Basic for Applications (VBA). Poniżej przedstawiono przykładowy skrypt. Można go użyć jako szablonu, wprowadzić wymagane zmiany, a następnie zapisać jako plik .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
W skrypcie przykładowym występuje moduł „ImportSymbolIntoDWG” z modułem podrzędnym „ImportSymbolIntoAllDWG()”. Należy zmodyfikować zmienną „path”, aby określić ścieżkę lokalizacji rysunków, oraz zmienną „prototypeDWG”, aby wskazać plik DWG zawierający symbole do zaimportowania.
Importowanie symboli dla wielu rysunków przy użyciu skryptu VBA
Zostanie wyświetlony komunikat o konieczności pobrania programu Autodesk AutoCAD VBA Enabler, jeśli nie został jeszcze zainstalowany.
Jeżeli w systemie zostanie wyświetlone ostrzeżenie dotyczące makr, kliknij przycisk Odblokuj makra.