Найти в Дзене
SoftSAR

Python работа с файлами DXF

Оглавление

В данной статье, мы рассмотрим методы чтения и создания DXF файлов. DXF файлы это файлы чертежей, представляет собой открытый формат файлов для обмена графической информацией между приложениями САПР. Для чтения и записи файлов DXF в Python существует модуль ezdxf.

Ezdxf это пакет Python для создания новых файлов DXF и чтения/изменения/записи существующих файлов DXF. Для работы библиотеки не требуется устанавливать CAD системы.

Устанавливаем библиотеку через командную строку:

pip install ezdxf

Документация доступна по ссылке.

Создание нового файла DXF

Создадим новый файл DXF с заданной версией DXF, например, DXF R12. Сохраним файл в папке с проектом с именем new_name.dxf.

Пока что, у нас есть пустой файл DXF его необходимо наполнить содержимым. Файлы DXF состоят из блоков, слоев и объектов.

Макеты это контейнеры для объектов DXF, таких как LINE или CIRCLE. Самое важное это компоновка пространства модели, которое представляет рабочее пространство. Макеты представляют листы для печати, в которых часто содержится кадрирование и блоки плитки чертежа и объекты VIEWPORT. Пространство модели всегда присутствует и не может быть удалено.

Метод doc.modelspace() возвращает пространство модели, метод layers.add создает новый слой в качестве параметров передаем название слоя и его характеристики цвет линий, тип линий, вес линий и др., методом add_line() мы создаем прямую линию, передавая в качестве параметров кортежи с координатами линии, а также словарь с параметрами линии.

-2

Метод add_lwpolyline создает полилинии, принимая в качестве параметра список с координатами.

-3

Создаем простой сплайн методом add_spline, передав в качестве параметра список координат.

-4

Метод add_circle рисует окружность и дуги, принимает в качестве параметров координаты цента и радиус, при рисовании дуги добавляются параметры начала и конца дуги.

-5

В приведенном выше примере создается горизонтальная размерная линия. Размерный стиль по умолчанию «EZDXF» определяется как:

  • единица чертежа = 1 м
  • высота текста измерения 0,25 (масштаб чертежа = 1:100)
  • стрелка "ARCHTICK", размер стрелки dimasz = 0.175
-6

Аргумент angle определяет угол размерной линии по отношению к оси x. Для вертикального размера установите угол 90 градусов,

-7

Чтение файлов DXF

Загрузка файла DXF, обработка возможных исключений, если файл не существует или поврежден.

Пространство модели содержит представление объектов чертежа. Метод doc.modelspace() возвращает пространство модели чертеже. Перебирая в цикле все объекты DXF в пространстве модели, мы считаем все содержимое чертежа. В данном примере с помощью цикла for мы перебираем все объекты чертежа, если объект является линией мы выводим на печать информацию об этой линии(слой на котором она нарисована, координаты начала и конца). Помимо слоя на котором расположена линия можно узнать цвет dxf.color, толщина линий dxf.lineweight, тип линий dxf.linetype и др.

В данной статье, мы рассмотрели основы работы с файлами DXF средствами Python. Комбинируя простые элементы, можно программно создавать сложные чертежи, пакетно обрабатывать чертежи, тем самым автоматизировав свою работу.

С уважением, Карян Армен.
Занимаюсь профессиональной разработкой прикладных программ на Python.
email SoftSAR@yandex.ru
Telegram @SoftSar_am
Наука
7 млн интересуются