Если в моделях отображения применялись пользовательские обозначения, которые требуется обновить, заменив на отредактированные обозначения, откройте модель отображения, создайте графику и используйте команду MAPSYMBOLIMPORTEXPORT для импорта отредактированных обозначений. Дополнительные сведения приведены в разделе Импорт обозначений.
Импорт обозначений одним пакетом без пользовательского интерфейса
Создать графику выберите параметр Повторно использовать текущие чертежи.
В качестве альтернативы, описанные выше операции можно выполнить автоматически с помощью сценария. В командной строке с помощью команды SCRIPT загрузите файл сценария и дождитесь завершения. При выполнении нескольких сценариев для разных моделей отображения перед открытием каждой модели всегда создавайте пустой чертеж. В противном случае в новой модели отображения будут сохраняться старые слои из предыдущего чертежа.
Ниже приведен образец сценария. Можно сохранить его как файл с расширением .scr.
CMDDIA 0 FILEDIA 0 _TBDMOPEN [path to your TBDM file] _TBGENERATEGRAPHIC _MAPSYMBOLIMPORTEXPORT _IMPORT [choose options that fit your needs] _TBDMSAVEПосле завершения работы со сценарием установите для переменных CMDDIA и FILEDIA исходные значения, которые, как правило, равняются 1.
В целях экономии времени можно в рамках одной операции импортировать обозначения для многих моделей отображения с помощью сценария Microsoft Visual Basic for Applications (VBA). Следующий сценарий представляет собой образец. Его можно использовать в качестве шаблона, внести требуемые изменения, а затем сохранить в формате .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
В сценарии-образце имеется модуль ImportSymbolInto_IM_DM с вложенным элементом ImportSymbolIntoDisplayModel(). Вам потребуется настроить количество моделей отображения и пути к файлам DWT и .tbdm.
Импорт обозначений для нескольких моделей отображения с использованием сценария VBA
Появится сообщение с предложением загрузить компонент Autodesk AutoCAD VBA Enabler, если он не установлен.
Если система выдаст предупреждение о макросах, выберите параметр «Включить макросы».