AutoCAD DXF 作成用のオープンソース Python ライブラリ
AutoCAD DXFファイルの作成、読み取り、操作のための無料のPython CADライブラリ。開発者はASCII DXFおよびバイナリDXFモデルの読み取りと書き込みをサポートできます。
Ezdxf ライブラリとは?
ソフトウェア開発者は、堅牢なオープンソースの Python AutoCAD DXF ライブラリ Ezdxf を使用することで、独自の Python プログラム内で AutoCAD DXF ファイルを操作できます。AutoCAD は、広く使用されている DXF(図面交換ファイル)ファイル形式を使用して、他の CAD プログラムとデータを交換します。このライブラリは DXF 形式の機能の大部分をサポートするだけでなく、複雑な DXF の仕組みをプログラマーから隠蔽することで、開発者の作業負担を軽減します。
Ezdxf ライブラリを使用することで、サードパーティ製プログラムからアプリケーション固有のデータを埋め込むことができます。DXF ファイルの作成、DXF の編集、既存の DXF ドキュメントの書き込み、CPython および Pypy3 によるテスト、サードパーティ製 DXF コンテンツの保持、CPython 用のオプションの C 拡張機能の使用など、DXF ドキュメントの管理には不可欠な多くの機能を備えています。その他のアドオンも利用可能ですが、基本セットアップでは自動的にインストールされないため、別途ロードする必要があります。
オープンソースのEzdxfライブラリは、R12、R2000、R2004、R2007、R2010、R2013、R2018など、複数のDXFバージョンをサポートしています。さらに、R12より古いDXFバージョンと、DXFバージョンR13およびR14も読み取り専用モードでサポートしています。Ezdxfライブラリの使用はMITライセンスに準拠しています。
Ezdxf を使い始める
Ezdxf パッケージをインストールする最も簡単な方法は、pip を使用することです。pip には、PyPI のオプションの C 拡張機能がバイナリホイールとして含まれています。スムーズにインストールするには、以下のコマンドを使用してください。
Python 3Dライブラリでポリゴンを操作する
ポリゴンとは、直線の辺を持つ2次元形状です。ポリゴンモデリングは、ポリゴンメッシュを用いてオブジェクトの表面を表現または近似することで、オブジェクトをモデリングする手法です。オープンソースのPythonライブラリEzdxfを使用すると、ソフトウェア開発者はわずか数行のPythonコードで、各スタックポイントのポリゴンを作成できます。これは、ファームウェアが小さな穴のサイズを補正しない3Dプリンターで非常に役立ちます。
Python による AutoCAD DXF ファイルの作成
オープンソースの Python Ezdxf は、Python アプリケーション内で AutoCAD DXF ドキュメントの読み書きを完全にサポートしています。このライブラリは、非常に少ないコンテンツ量で新しい DXF ドキュメントを作成します。つまり、線種や文字スタイルなど、本当に必要なリソースのみが含まれます。既存の DXF ファイルを開いて、そのコンテンツを簡単に変更することも可能です。
Python ライブラリを使用して新しい DXF 図面を作成する方法
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")
Python で AutoCAD DXF 図面を開いて読み込む
オープンソースの Python Ezdxf ライブラリを使用すると、ソフトウェア開発者はわずか数行の Python コードで既存の DXF ドキュメントを開き、読み込み、データを取得できます。AutoCAD や BricsCAD などの信頼できるソースから取得した DXF 図面にも問題なく対応しており、軽微な欠陥や重大な欠陥のある DXF ファイルも読み込むことができます。すべての DXF エンティティに簡単にアクセスして反復処理でき、既存のエンティティの属性にも簡単にアクセスできます。
Python ライブラリ経由で DXF ファイルをロードする方法
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)
Python で DXF 図面内のテキストを処理する方法
Ezdxf Python ライブラリは、DXF ドキュメント内のテキスト処理を完全にサポートしています。このライブラリには、単純な 1 行テキストエンティティの追加、基本的なテキスト配置(上、中央、下、ベースライン、中央揃え、右揃え)、テキストの調整、標準のテキストスタイルと線種の適用、新しいテキストスタイルの追加、3D テキストの使用、標準フォントの使用など、テキスト処理のためのさまざまな機能が含まれています。
Python API 経由で単純な 1 行テキストを追加する方法
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")