Библиотека Python с открытым исходным кодом для создания AutoCAD DXF
Бесплатная САПР-библиотека Python для создания, чтения и обработки файлов AutoCAD DXF. Разработчики могут читать и записывать файлы ASCII DXF и двоичные модели DXF.
Что такое библиотека Ezdxf?
Разработчики программного обеспечения могут работать с файлами AutoCAD DXF в своих программах Python благодаря мощной библиотеке Python AutoCAD DXF с открытым исходным кодом Ezdxf. AutoCAD использует широко распространённый тип файлов DXF (файл обмена чертежами) для обмена данными с другими САПР. Библиотека поддерживает большинство функций формата DXF, а также упрощает работу разработчиков, скрывая сложные особенности DXF от программистов.
С помощью библиотеки Ezdxf можно встраивать данные, специфичные для приложения, в сторонние программы. Возможность создавать файлы DXF, редактировать DXF, создавать существующие документы DXF, тестировать их с помощью CPython и Pypy3, сохранять содержимое сторонних DXF, использовать дополнительные расширения C для CPython и многие другие функции критически важны для управления документами DXF. Доступны и другие дополнения, однако их необходимо загружать отдельно, так как они не устанавливаются автоматически во время базовой настройки.
Библиотека Ezdxf с открытым исходным кодом поддерживает несколько версий DXF, включая R12, R2000, R2004, R2007, R2010, R2013 и R2018. Кроме того, она поддерживает более старые версии DXF, чем R12, а также версии DXF R13 и R14, в режиме только для чтения. Использование библиотеки Ezdxf регулируется лицензией MIT.
Начало работы с Ezdxf
Самый простой способ установить пакет Ezdxf — использовать pip. Он включает в себя дополнительные C-расширения от PyPI в виде двоичных дисков. Для успешной установки используйте следующую команду.
Install Ezdxf via pip
pip install ezdxf
Вы можете загрузить скомпилированную общую библиотеку из репозитория Github.
Работа с полигонами с помощью библиотеки Python 3D
Многоугольник — это двумерная фигура с прямыми сторонами. Полигональное моделирование — это подход к моделированию объектов, основанный на представлении или аппроксимации их поверхностей с помощью полигональных сеток. Библиотека Python с открытым исходным кодом Ezdxf позволяет разработчикам программного обеспечения создавать полигоны для каждой точки стека всего парой строк кода Python. Это очень полезно для 3D-принтеров, прошивка которых не корректирует малый размер отверстий.
Создание DXF-файлов AutoCAD с помощью Python
Открытый исходный код Python Ezdxf включает полную поддержку чтения и записи DXF-документов AutoCAD в приложениях Python. Библиотека создает новые DXF-документы с минимальным объемом содержимого, что означает, что в них включены только самые необходимые ресурсы, такие как типы линий, стили текста и многое другое. Также можно открыть существующий DXF-файл и легко изменить его содержимое.
Как создать новый рисунок DXF с помощью библиотеки Python?
import ezdxf
from ezdxf import colors
from ezdxf.enums import TextEntityAlignment
# Create a new DXF document.
doc = ezdxf.new(dxfversion="R2010")
# Create new table entries (layers, linetypes, text styles, ...).
doc.layers.add("TEXTLAYER", color=colors.RED)
# DXF entities (LINE, TEXT, ...) reside in a layout (modelspace,
# paperspace layout or block definition).
msp = doc.modelspace()
# Add entities to a layout by factory methods: layout.add_...()
msp.add_line((0, 0), (10, 0), dxfattribs={"color": colors.YELLOW})
msp.add_text(
"Test",
dxfattribs={
"layer": "TEXTLAYER"
}).set_placement((0, 0.2), align=TextEntityAlignment.CENTER)
# Save the DXF document.
doc.saveas("test.dxf")
Открытие и чтение чертежей AutoCAD DXF с помощью Python
Библиотека Python Ezdxf с открытым исходным кодом позволяет разработчикам программного обеспечения открывать, загружать и получать данные из существующего документа DXF всего парой строк кода Python. Обратите внимание, что она отлично работает с чертежами DXF из надежных источников, таких как AutoCAD или BricsCAD, и загружает файлы DXF с незначительными и серьезными дефектами. Вы можете легко получить доступ ко всем объектам DXF и выполнять итерации по ним, а также к атрибутам существующих объектов.
Как загрузить файл DXF через библиотеку Python?
import sys
import ezdxf
try:
doc = ezdxf.readfile("your_dxf_file.dxf")
except IOError:
print(f"Not a DXF file or a generic I/O error.")
sys.exit(1)
except ezdxf.DXFStructureError:
print(f"Invalid or corrupted DXF file.")
sys.exit(2)
Как работать с текстом в чертежах DXF с помощью Python
Библиотека Ezdxf Python обеспечивает полную поддержку работы с текстом в документах DXF. Библиотека включает в себя различные функции для обработки текста, такие как добавление простых однострочных текстовых объектов, базовое выравнивание текста (по верху, по центру, по низу и по базовой линии, по центру, по правому краю), подгонка текста, стандартные стили текста и типы линий, добавление новых стилей текста, использование 3D-текста, использование стандартных шрифтов и т. д.
Как добавить простой однострочный текст через Python API?
import ezdxf
from ezdxf.enums import TextEntityAlignment
# The TEXT entity is a DXF primitive and is supported in all DXF versions.
# The argument setup=True creates standard linetypes and text styles in the
# new DXF document.
doc = ezdxf.new("R12", setup=True)
msp = doc.modelspace()
# Use method set_placement() to define the TEXT alignment, because the
# relations between the DXF attributes 'halign', 'valign', 'insert' and
# 'align_point' are tricky.
msp.add_text("A Simple Text").set_placement(
(2, 3),
align=TextEntityAlignment.MIDDLE_RIGHT
)
# Using a predefined text style:
msp.add_text(
"Text Style Example: Liberation Serif",
height=0.35,
dxfattribs={"style": "LiberationSerif"}
).set_placement((2, 6), align=TextEntityAlignment.LEFT)
doc.saveas("simple_text.dxf")