ExportToDxf method (MapDoc)

Экспортирует слои карты в файл в формате DXF AutoCAD.

Применяется к:

MapDoc

Синтаксис:

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 Sub

Python:

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("Экспорт не выполнен")