Se você tiver usado símbolos personalizados em seus modelos de exibição e desejar atualizá-os com os símbolos modificado, poderá abrir o modelo de exibição, gerar o gráfico, e usar MAPSYMBOLIMPORTEXPORT para importar os símbolos modificados. Para obter detalhes, consulte Para importar símbolos.
Para importar símbolos em lote sem uma interface de usuário
Gerar gráfico, selecione Reutilizar os desenhos atuais.
Como uma alternativa, você pode automaticamente completar as etapas acima usando um script. Na linha de comando, carregue o arquivo de script com o comando SCRIPT e aguarde até que ele termine. Quando você executar diversos scripts para diferentes modelos de exibição, assegure-se de sempre iniciar com um desenho vazio, antes de abrir o modelo de exibição. Caso contrário, você irá salvar as camadas antigas do desenho anterior no novo modelo de exibição.
O seguinte é um script de amostra. Você pode salvá-lo como um arquivo com uma extensão .scr.
CMDDIA 0 FILEDIA 0 _TBDMOPEN [path to your TBDM file] _TBGENERATEGRAPHIC _MAPSYMBOLIMPORTEXPORT _IMPORT [choose options that fit your needs] _TBDMSAVEQuando terminar com o script, defina as variáveis CMDDIA e FILEDIA de volta para seus valores originais, que normalmente é '1'.
Para poupar tempo, é possível importar os símbolos para muitos modelos de exibição em uma única operação, usando um script Microsoft Visual Basic for Applications (VBA). O seguinte é um script de amostra. É possível utilizá-lo como um modelo, fazer as modificações necessárias e, a seguir, salvá-lo como um arquivo .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
No script de exemplo, há um módulo "ImportSymbolInto_IM_DM" com um sub "ImportSymbolIntoDisplayModel()". Você precisa adaptar o número de modelos de exibição e caminhos para os arquivos DWT e .tbdm.
Para importar símbolos para múltiplos modelos de exibição usando um script VBA
Uma mensagem informará para fazer o download do Autodesk AutoCAD VBA Enabler se este não estiver instalado.
Se o sistema lhe avisar sobre as macros, clique em Ativar macros.