Jeżeli w modelach wyświetlania użyto symboli niestandardowych i mają zostać zaktualizowane o zmodyfikowane symbole, można otworzyć model wyświetlania, wygenerować grafikę i użyć polecenia MAPSYMBOLIMPORTEXPORT, aby zaimportować zmodyfikowane symbole. Aby uzyskać szczegółowe informacje, zobacz temat Importowanie symboli.
Wsadowe importowanie symboli bez interfejsu użytkownika
Generuj grafikę wybierz opcję Użyj bieżącego rysunku.
Czynności podane nad skryptem można także ukończyć automatycznie. W wierszu polecenia wczytaj plik skryptu za pomocą polecenia SCRIPT i poczekaj na jego zakończenie. Po wykonaniu kilku skryptów dla różnych modeli wyświetlania należy zawsze zacząć od pustego rysunku przed otwarciem modelu wyświetlania. W przeciwnym razie stare warstwy z poprzedniego rysunku zostaną zawsze zapisane w nowym modelu wyświetlania.
Poniżej przedstawiono przykładowy skrypt Można go zapisać jako plik z rozszerzeniem .scr.
CMDDIA 0 FILEDIA 0 _TBDMOPEN [path to your TBDM file] _TBGENERATEGRAPHIC _MAPSYMBOLIMPORTEXPORT _IMPORT [choose options that fit your needs] _TBDMSAVEPo zakończeniu tworzenia skryptu ustaw pierwotne wartości zmiennych CMDDIA i FILEDIA, czyli zwykle „1”.
Aby oszczędzić czas, można zaimportować modele wyświetlania 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 = "ImportSymbolInto_IM_DM"
Sub ImportSymbolIntoDisplayModel()
Dim prototypeDWG, templateDWT As String
Dim FileDia, CmdDia As Integer
Dim displayModelArray(0 To 2) As String 'TODO: Adapt to the number of Display Models to update
' TODO - Adapt to your settings
' Define the path to the Display Models for updating the symbol(s)
' When adding or removing Display Models, please adapt also the size of displayModelArray
' and the loop over all Display Models
displayModelArray(0) = "C:\TEST\DM1\DM1.tbdm"
displayModelArray(1) = " C:\TEST\DM2\DM2.tbdm"
displayModelArray(2) = " C:\TEST\DM3\DM3.tbdm"
' Attention !!!
' Only use the "Generic Graphic" - Application option: Reuse current drawings
' We need the same drawing for all operations !
' TODO - Adapt to your settings
' Define where the symbol(s) should be imported from
prototypeDWG = "C:\temp\symbol_modified.dwg "
' TODO - Adapt to your settings
' Define the template file to be used when open a new DWG
templateDWT = "c:\temp\Template\map2d.dwt"
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
FileDia = ThisDrawing.GetVariable("FILEDIA")
CmdDia = ThisDrawing.GetVariable("CMDDIA")
ThisDrawing.SetVariable "FILEDIA", 0
ThisDrawing.SetVariable "CMDDIA", 0
' Loop all Display Models
For inti = 0 To 2
' Open an empty drawing
Application.Documents.Open (templateDWT)
' Open the Display Model
ThisDrawing.SendCommand "_TBDMOPEN" & vbCr & displayModelArray(inti) & vbCr
ThisDrawing.SendCommand "_TBGENERATEGRAPHIC" & vbCr
' Import the symbol and apply changes to the layers
ThisDrawing.SendCommand "_MAPSYMBOLIMPORTEXPORT" & vbCr & "_IMPORT" & vbCr & prototypeDWG & vbCr & "_YES" & vbCr
' Save the changes of the layers to the Display Model
ThisDrawing.SendCommand "_TBDMSAVE" & vbCr
' Do not save the drawing
ThisDrawing.Close (False)
Next
' Reset the system variables
ThisDrawing.SetVariable "FILEDIA", FileDia
ThisDrawing.SetVariable "CMDDIA", CmdDia
End Sub
W skrypcie przykładowym występuje moduł „ImportSymbolInto_IM_DM” z modułem podrzędnym „ImportSymbolIntoDisplayModel ()”. Należy dostosować liczbę modeli wyświetlania i ścieżek do plików DWT i .tbdm.
Importowanie symboli dla wielu modeli wyświetlania przy użyciu skryptu VBA
Zostanie wyświetlony komunikat o konieczności pobrania programu Autodesk AutoCAD VBA Enabler, jeżeli nie został zainstalowany.
Jeżeli w systemie zostanie wyświetlone ostrzeżenie dotyczące makr, kliknij przycisk Odblokuj makra.