Экспортирует слои карты в файл в формате DXF AutoCAD.
Visual Basic:
Function ExportToDxf(DxfName As String, CfgName As String, Flags As Long) As Boolean
DxfName - полное имя файла для записи.
CfgName - имя файла конфигурации для экспорта. Если файла конфигурации нет, задается пустая строка.
Flags - битовые флаги:
0 - экспортировать все объекты;
1 - экспортировать только выделенные объекты;
2 - экспортировать, используя стили текущих тематических раскрасок;
4 - экспортировать невидимые объекты и надписи;
8 - экспортировать бирки (надписи);
16 - вместе с флагом 8 раскладывать бирки по слоям DXF вариантов надписей.
Каждый слой карты попадает в файл DXF отдельным слоем с тем же названием (UserName). Флаг 8 добавляет бирки объектов в общий слой DXF «Labels», а вместе с флагом 16 - в отдельные слои по вариантам надписей, с названиями вида «название варианта (lables)».
С флагом 1 экспортируются только объекты из выделения слоев (Selection); если ничего не выделено, файл создается пустым, без объектов.
Результат метода не всегда говорит о том, записан ли файл. Если задан несуществующий файл конфигурации, метод возвращает True, но файла DXF не создает; для папки, которой нет, он возвращает False. Поэтому после вызова стоит проверить сам файл.
Пример выгружает всю рабочую карту в DXF вместе с бирками, разложенными по слоям вариантов надписей, и проверяет, что файл записан.
Visual Basic:
Sub MapDoc_ExportToDxf 'Берем рабочую карту Set Doc = Zulu.ActiveMapDoc P = "C:\Data\map.dxf" 'Все объекты (0), бирки (8), бирки по слоям вариантов надписей (16) R = Doc.ExportToDxf(P, "", 8 + 16) Set FSO = CreateObject("Scripting.FileSystemObject") If R And FSO.FileExists(P) Then MsgBox "Файл DXF записан, байт: " & FSO.GetFile(P).Size Else MsgBox "Экспорт не выполнен" End If End SubPython:
import zulu import os def Macro_MapDoc_ExportToDxf(): # Берем рабочую карту doc = zulu.App.ActiveMapDoc path = r"C:\Data\map.dxf" # Все объекты (0), бирки (8), бирки по слоям вариантов надписей (16) r = doc.ExportToDxf(path, "", 8 + 16) if r and os.path.exists(path): print("Файл DXF записан, байт:", os.path.getsize(path)) else: print("Экспорт не выполнен")