Open Source knihovna Pythonu pro tvorbu DXF souborů v AutoCADu
Bezplatná knihovna Pythonu CAD pro vytváření, čtení a manipulaci s DXF soubory v AutoCADu. Vývojáři mohou číst a zapisovat modely ASCII DXF a binární DXF.
Co je knihovna Ezdxf?
Vývojáři softwaru mohou pracovat se soubory AutoCAD DXF ve svých vlastních programech v Pythonu díky robustní open source knihovně Pythonu AutoCAD DXF Ezdxf. AutoCAD používá široce používaný typ souboru DXF (drawing interchange file) k výměně dat s jinými CAD programy. Knihovna podporuje většinu funkcí formátu DXF a zároveň usnadňuje práci vývojářům tím, že skrývá složité detaily DXF před programátory.
Data specifická pro aplikaci mohou být vkládána programy třetích stran pomocí knihovny Ezdxf. Schopnost vytvářet soubory DXF, upravovat DXF, psát existující dokumenty DXF, testovat s CPythonem a Pypy3, uchovávat obsah DXF třetích stran, používat volitelná rozšíření C pro CPython a mnoho dalších funkcí je klíčová pro správu dokumentů DXF. K dispozici jsou i další doplňky, které je však nutné načíst samostatně, protože se neinstalují automaticky během základního nastavení.
Open source knihovna Ezdxf podporuje několik verzí DXF, včetně R12, R2000, R2004, R2007, R2010, R2013 a R2018. Kromě toho podporuje starší verze DXF než R12 a verze DXF R13 a R14 v režimu pouze pro čtení. Používání knihovny Ezdxf se řídí MIT-License.
Začínáme s Ezdxf
Nejjednodušší způsob instalace balíčku Ezdxf je pomocí pip. Obsahuje volitelná rozšíření jazyka C z PyPI jako binární kola. Pro hladkou instalaci použijte následující příkaz.
Instalace Ezdxf přes PIP
pip install ezdxf
Zkompilovanou sdílenou knihovnu si můžete stáhnout z repozitáře Github.
Práce s polygony pomocí 3D knihovny Pythonu
Polygon je dvourozměrný tvar s rovnými stranami. Polygonální modelování je přístup k modelování objektů reprezentací nebo aproximací jejich povrchů pomocí polygonových sítí. Open source knihovna Pythonu Ezdxf umožňuje vývojářům softwaru vytvářet polygony pro každý bod zásobníku pouze s několika řádky kódu Pythonu. Je to velmi užitečné u 3D tiskáren, jejichž firmware nekoriguje malé velikosti otvorů.
Vytváření souborů DXF v AutoCADu pomocí Pythonu
Open source Python Ezdxf obsahuje kompletní podporu pro čtení a zápis dokumentů DXF v AutoCADu v aplikacích Pythonu. Knihovna vytváří nové dokumenty DXF s velmi malým množstvím obsahu, což znamená, že jsou zahrnuty pouze ty zdroje, které jsou nezbytně nutné, jako jsou typy čar, styly textu a další. Je také možné otevřít existující soubor DXF a snadno upravit jeho obsah.
Jak vytvořit nový výkres DXF pomocí knihovny Pythonu?
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")
Otevírání a čtení výkresů DXF z AutoCADu pomocí Pythonu
Knihovna Ezdxf s otevřeným zdrojovým kódem v jazyce Python umožňuje vývojářům softwaru otevírat, načítat a získávat data z existujícího dokumentu DXF pomocí pouhých několika řádků kódu v Pythonu. Nezapomeňte, že funguje dobře pro výkresy DXF z důvěryhodných zdrojů, jako je AutoCAD nebo BricsCAD, a načte soubory DXF s drobnými i většími vadami. Můžete snadno přistupovat ke všem entitám DXF a iterovat přes ně a snadno přistupovat k atributům existujících entit.
Jak načíst soubor DXF pomocí knihovny Pythonu?
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)
Jak pracovat s textem ve výkresech DXF pomocí Pythonu
Knihovna Ezdxf pro Python poskytuje plnou podporu pro práci s textem v dokumentech DXF. Knihovna obsahuje různé funkce pro zpracování textu, jako je přidání jednoduché textové entity s jedním řádkem, základní zarovnání textu, jako je (nahoře, uprostřed, dole a účaří, na střed, vpravo), přizpůsobení textu, standardní textové styly a typy čar, přidání nového textového stylu, použití 3D textu, použití stojacích fontů atd.
Jak přidat jednoduchý jednořádkový text pomocí 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")