ไลบรารี่ Python โอเพนซอร์สสำหรับการสร้าง DXF ของ AutoCAD

ไลบรารี Python CAD ฟรีสำหรับการสร้าง อ่าน และจัดการไฟล์ DXF ของ AutoCAD นักพัฒนาสามารถอ่านและเขียนโมเดล ASCII DXF และ Binary DXF ได้

ไลบรารี Ezdxf คืออะไร

นักพัฒนาซอฟต์แวร์สามารถทำงานกับไฟล์ AutoCAD DXF ภายในโปรแกรม Python ของตนเองได้ด้วยไลบรารี Ezdxf ซึ่งเป็นไลบรารีโอเพนซอร์ส Python AutoCAD DXF ที่มีประสิทธิภาพ AutoCAD ใช้ไฟล์ DXF (ไฟล์แลกเปลี่ยนรูปวาด) ที่ใช้กันอย่างแพร่หลายเพื่อแลกเปลี่ยนข้อมูลกับโปรแกรม CAD อื่นๆ ไลบรารีนี้รองรับฟีเจอร์ส่วนใหญ่ของรูปแบบ 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

Previous Next

การเริ่มต้นใช้งาน Ezdxf

วิธีที่ง่ายที่สุดในการติดตั้งแพ็กเกจ Ezdxf คือการใช้ pip ซึ่งมีส่วนขยาย C เสริมจาก PyPI เป็นไบนารีวีล โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น

ติดตั้ง Ezdxf ผ่าน pip
pip install ezdxf 

คุณสามารถดาวน์โหลดไลบรารีที่แชร์ที่คอมไพล์แล้วจากที่เก็บ Github

การทำงานกับรูปหลายเหลี่ยมผ่านไลบรารี Python 3D

รูปหลายเหลี่ยมคือรูปทรงสองมิติที่มีด้านตรง การสร้างแบบจำลองรูปหลายเหลี่ยมเป็นวิธีการสร้างแบบจำลองวัตถุโดยการแสดงหรือประมาณค่าพื้นผิวโดยใช้ตาข่ายรูปหลายเหลี่ยม ไลบรารี Python แบบโอเพนซอร์ส Ezdxf ช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้างรูปหลายเหลี่ยมสำหรับแต่ละจุดซ้อนด้วยโค้ด Python เพียงไม่กี่บรรทัด ซึ่งมีประโยชน์อย่างมากสำหรับเครื่องพิมพ์ 3 มิติที่เฟิร์มแวร์ไม่สามารถแก้ไขขนาดรูเล็กๆ ได้

การสร้างไฟล์ AutoCAD DXF ผ่าน Python

Ezdxf ซึ่งเป็นโอเพนซอร์ส Python ได้รวมการสนับสนุนการอ่านและการเขียนเอกสาร AutoCAD DXF ไว้ในแอปพลิเคชัน 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

ไลบรารี Ezdxf แบบโอเพนซอร์สของ Python ช่วยให้นักพัฒนาซอฟต์แวร์สามารถเปิด โหลด และรับข้อมูลจากเอกสาร 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 Drawings ด้วย Python

ไลบรารี Ezdxf Python รองรับการจัดการข้อความภายในเอกสาร DXF ได้อย่างเต็มรูปแบบ ไลบรารีนี้ประกอบด้วยฟีเจอร์ต่างๆ สำหรับการประมวลผลข้อความ เช่น การเพิ่มเอนทิตีข้อความแบบบรรทัดเดียวอย่างง่าย การจัดแนวข้อความพื้นฐาน เช่น (บน, กลาง, ล่าง, และเส้นฐาน, เว้นกึ่งกลาง, ขวา), การจัดข้อความให้พอดี, รูปแบบข้อความมาตรฐานและประเภทเส้น, การเพิ่มรูปแบบข้อความใหม่, การใช้ข้อความ 3 มิติ, การใช้ฟอนต์แบบ Stand และอื่นๆ

จะเพิ่มข้อความบรรทัดเดียวแบบง่ายๆ ผ่าน 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")
 
 ไทย