1. Produkty
  2.   CHAM
  3.   Python
  4.   Ezdxf
 
  

Biblioteka Open Source Pythona do tworzenia plików DXF w programie AutoCAD

Bezpłatna biblioteka Python CAD do tworzenia, odczytu i manipulacji plikami AutoCAD DXF. Programiści mogą korzystać z obsługi odczytu i zapisu modeli ASCII DXF i modeli binarnych DXF.

Czym jest biblioteka Ezdxf?

Programiści mogą pracować z plikami AutoCAD DXF w swoich programach Python dzięki solidnej bibliotece open source dla AutoCAD DXF o nazwie Ezdxf. AutoCAD wykorzystuje powszechnie używany typ pliku DXF (plik wymiany rysunków) do wymiany danych z innymi programami CAD. Biblioteka obsługuje większość funkcji formatu DXF, a jednocześnie ułatwia pracę programistom, ukrywając przed nimi zawiłości formatu DXF.

Dane specyficzne dla aplikacji mogą być osadzane przez programy innych firm za pomocą biblioteki Ezdxf. Możliwość tworzenia plików DXF, edycji plików DXF, zapisywania istniejących dokumentów DXF, testowania za pomocą CPython i Pypy3, zachowywania zawartości DXF innych firm, korzystania z opcjonalnych rozszerzeń języka C dla CPython i wiele innych funkcji ma kluczowe znaczenie dla zarządzania dokumentami DXF. Dostępne są również inne dodatki, jednak należy je załadować osobno, ponieważ nie instalują się automatycznie podczas podstawowej konfiguracji.

Biblioteka Ezdxf (open source) obsługuje kilka wersji DXF, w tym R12, R2000, R2004, R2007, R2010, R2013 i R2018. Ponadto obsługuje starsze wersje DXF niż R12 oraz wersje DXF R13 i R14 w trybie tylko do odczytu. Korzystanie z biblioteki Ezdxf podlega licencji MIT.

Previous Next

Rozpoczęcie pracy z Ezdxf

Najprostszym sposobem instalacji pakietu Ezdxf jest użycie pip. Zawiera on opcjonalne rozszerzenia C z PyPI w postaci binarnych kół. Aby instalacja przebiegła bezproblemowo, użyj poniższego polecenia.

Instalacja Ezdxf przez pip

pip install ezdxf 

Skompilowaną bibliotekę współdzieloną możesz pobrać z repozytorium Github.

Praca z wielokątami za pomocą biblioteki Python 3D

Wielokąt to dwuwymiarowy kształt o prostych bokach. Modelowanie wielokątów to podejście do modelowania obiektów poprzez reprezentowanie lub aproksymację ich powierzchni za pomocą siatek wielokątów. Biblioteka Pythona o otwartym kodzie źródłowym Ezdxf umożliwia programistom tworzenie wielokątów dla każdego punktu stosu za pomocą zaledwie kilku linijek kodu w Pythonie. Jest to bardzo przydatne w drukarkach 3D, których oprogramowanie układowe nie koryguje małych rozmiarów otworów.

Tworzenie plików AutoCAD DXF za pomocą Pythona

Python Ezdxf (oprogramowanie open source) oferuje pełne wsparcie dla odczytu i zapisu dokumentów AutoCAD DXF w aplikacjach Python. Biblioteka tworzy nowe dokumenty DXF z minimalną ilością treści, co oznacza, że uwzględnia tylko te zasoby, które są absolutnie niezbędne, takie jak typy linii, style tekstu i inne. Możliwe jest również łatwe otwieranie istniejących plików DXF i modyfikowanie ich zawartości.

Jak utworzyć nowy rysunek DXF za pomocą biblioteki Pythona?

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")
 

Otwieranie i odczytywanie rysunków AutoCAD DXF za pomocą Pythona

Biblioteka Python Ezdxf o otwartym kodzie źródłowym umożliwia programistom otwieranie, ładowanie i pobieranie danych z istniejącego dokumentu DXF za pomocą zaledwie kilku linijek kodu Pythona. Należy pamiętać, że działa ona dobrze w przypadku rysunków DXF z zaufanych źródeł, takich jak AutoCAD lub BricsCAD, i ładuje pliki DXF z drobnymi lub poważnymi defektami. Można łatwo uzyskać dostęp i iterować po wszystkich elementach DXF, a także łatwo uzyskać dostęp do atrybutów istniejących elementów.

Jak załadować plik DXF za pomocą biblioteki Pythona?

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 obsługiwać tekst w rysunkach DXF za pomocą Pythona

Biblioteka Ezdxf Python zapewnia pełne wsparcie dla obsługi tekstu w dokumentach DXF. Biblioteka zawiera różne funkcje przetwarzania tekstu, takie jak dodawanie prostych, jednowierszowych elementów tekstowych, podstawowe wyrównanie tekstu (góra, środek, dół i linia bazowa, środek, prawa strona), dopasowanie tekstu, standardowe style tekstu i typy linii, dodawanie nowego stylu tekstu, używanie tekstu 3D, używanie standardowych czcionek i tak dalej.

Jak dodać prosty tekst jednowierszowy za pomocą interfejsu API Pythona?

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")
 
 Polski