Aktualizowanie modelu wyświetlania o zaimportowane symbole

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

  1. W oknie Opcje globalnego modelu branżowego Generuj grafikę wybierz opcję Użyj bieżącego rysunku.
  2. Otwórz projekt, którego dotyczy model wyświetlania i zacznij od pustego rysunku.
  3. Ustaw obie zmienne systemowe CMDDIA i FILEDIA na 0 (zero).
  4. W wierszu polecenia wprowadź ciąg TBDMOPEN.
  5. Po wyświetleniu monitu wprowadź ścieżkę do modelu wyświetlania, który chcesz zmodyfikować.
  6. Wprowadź polecenie TBGENERATEGRAPHIC.
  7. Wprowadź polecenie MAPSYMBOLIMPORTEXPORT.
  8. Po wyświetleniu monitu wybierz opcję Importuj.
  9. Wprowadź ścieżkę do pliku symbolu zawierającego symbole, które chcesz zaimportować.
  10. Wybierz opcję importu, aby określić sposób wybrania symboli w interfejsie użytkownika.
  11. Zakończ import, a następnie wprowadź polecenie TBDMSAVE.

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]
_TBDMSAVE
Po zakończeniu tworzenia skryptu ustaw pierwotne wartości zmiennych CMDDIA i FILEDIA, czyli zwykle „1”.

Opcja skryptu VBA

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

  1. W wierszu polecenia programu Map 3D wprowadź ciąg VBAIDE, aby otworzyć okno programu Microsoft VBA.

    Zostanie wyświetlony komunikat o konieczności pobrania programu Autodesk AutoCAD VBA Enabler, jeżeli nie został zainstalowany.

  2. W oknie Microsoft VBA wykonaj następujące czynności:
    1. Kliknij menu File i wybierz polecenie Import File.
    2. W oknie dialogowym Import File znajdź i zaznacz plik .bas zawierający skrypt.
    3. Kliknij przycisk Otwórz.
    4. W oknie Microsoft VBA kliknij przycisk Save.
    5. W oknie dialogowym Save As określ ścieżkę i nazwę pliku, a następnie kliknij przycisk Save.
  3. Zamknij okno Microsoft VBA.
  4. W wierszu polecenia wprowadź ciąg VBALOAD, aby wczytać plik .dvb zapisany po wykonaniu czynności powyżej.

    Jeżeli w systemie zostanie wyświetlone ostrzeżenie dotyczące makr, kliknij przycisk Odblokuj makra.

  5. W wierszu polecenia wprowadź ciąg VBARUN i wybierz odpowiednie makro do uruchomienia.