Бібліотека Python з відкритим кодом для створення DXF у форматі AutoCAD

Безкоштовна бібліотека САПР на 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. Також доступні інші доповнення, проте їх необхідно завантажувати окремо, оскільки вони не встановлюються автоматично під час базового налаштування.

Кілька версій DXF, включаючи R12, R2000, R2004, R2007, R2010, R2013 та R2018, підтримуються бібліотекою Ezdxf з відкритим кодом. Крім того, вона підтримує старіші версії DXF, ніж R12, та версії DXF R13 та R14 у режимі лише для читання. Використання бібліотеки Ezdxf регулюється ліцензією MIT.

Previous Next

Початок роботи з Ezdxf

Найпростіший спосіб встановити пакет Ezdxf – це використовувати pip. Він містить додаткові розширення C з PyPI у вигляді бінарних файлів. Будь ласка, скористайтеся наступною командою для безпроблемної інсталяції.

Встановлення Ezdxf через pip

pip install ezdxf 

Ви можете завантажити скомпільовану спільну бібліотеку з репозиторію Github.

Робота з полігоном через 3D-бібліотеку Python

Полігон — це двовимірна фігура з прямими сторонами. Полігональне моделювання — це підхід до моделювання об'єктів шляхом представлення або апроксимації їхніх поверхонь за допомогою сіток полігонів. Бібліотека Python з відкритим кодом Ezdxf дозволяє розробникам програмного забезпечення створювати полігони для кожної точки стеку лише кількома рядками коду Python. Це дуже корисно в 3D-принтерах, прошивка яких не коригує малі розміри отворів.

Створення DXF-файлів AutoCAD за допомогою Python

Бібліотека Ezdxf з відкритим вихідним кодом на Python включає повну підтримку читання та запису 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")
 

Відкриття та читання креслень DXF AutoCAD через 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")
 
 Українська