مكتبة بايثون مفتوحة المصدر لإنشاء AutoCAD DXF

مكتبة بايثون كاد مجانية لإنشاء ملفات أوتوكاد DXF وقراءتها ومعالجتها. يدعم المطورون قراءة وكتابة نماذج ASCII DXF وDXF الثنائية.

ما هي مكتبة Ezdxf؟

بفضل مكتبة Ezdxf القوية مفتوحة المصدر، يُمكن لمطوري البرامج العمل مع ملفات AutoCAD DXF ضمن برامج Python الخاصة بهم. يستخدم AutoCAD نوع ملفات DXF (ملف تبادل الرسومات) الشائع لتبادل البيانات مع برامج CAD الأخرى. تدعم المكتبة معظم ميزات تنسيق DXF، كما تُسهّل عمل المطورين بإخفاء تفاصيل DXF المعقدة عن المبرمجين.

يمكن تضمين البيانات الخاصة بالتطبيقات بواسطة برامج خارجية باستخدام مكتبة Ezdxf. تُعد القدرة على إنشاء ملفات DXF، وتحريرها، وكتابة مستندات DXF موجودة، والاختبار باستخدام CPython وPypy3، وحفظ محتوى DXF من جهات خارجية، واستخدام ملحقات C الاختيارية لـ CPython، والعديد من الوظائف الأخرى، أمرًا بالغ الأهمية لإدارة مستندات DXF. تتوفر أيضًا إضافات أخرى، ولكن يجب تحميلها بشكل منفصل لأنها لا تُثبّت تلقائيًا أثناء الإعداد الأساسي.

تدعم مكتبة Ezdxf مفتوحة المصدر العديد من إصدارات DXF، بما في ذلك R12 وR2000 وR2004 وR2007 وR2010 وR2013 وR2018. بالإضافة إلى ذلك، تدعم المكتبة إصدارات DXF أقدم من R12 وإصداري DXF R13 وR14 في وضع القراءة فقط. يُنظّم ترخيص MIT استخدام مكتبة Ezdxf.

Previous Next

البدء باستخدام Ezdxf

أسهل طريقة لتثبيت حزمة Ezdxf هي استخدام pip. تتضمن الحزمة ملحقات C الاختيارية من PyPI كعجلات ثنائية. يُرجى استخدام الأمر التالي لتثبيت سلس.

تثبيت Ezdxf عبر pip

pip install ezdxf 

يمكنك تنزيل المكتبة المشتركة المجمعة من مستودع Github.

التعامل مع المضلعات عبر مكتبة بايثون ثلاثية الأبعاد

المضلع هو شكل ثنائي الأبعاد ذو أضلاع مستقيمة. النمذجة المضلعة هي نهج لنمذجة الأجسام من خلال تمثيل أسطحها أو تقريبها باستخدام شبكات المضلعات. تُمكّن مكتبة بايثون مفتوحة المصدر Ezdxf مطوري البرامج من إنشاء مضلعات لكل نقطة تكديس باستخدام بضعة أسطر فقط من شيفرة بايثون. هذه المكتبة مفيدة جدًا في الطابعات ثلاثية الأبعاد التي لا تصحح برامجها الثابتة أحجام الثقوب الصغيرة.

إنشاء ملفات AutoCAD DXF عبر بايثون

يتضمن برنامج Ezdxf مفتوح المصدر لبايثون دعمًا كاملاً لقراءة وكتابة مستندات AutoCAD DXF داخل تطبيقات بايثون. تُنشئ المكتبة مستندات 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 عبر بايثون

تُمكّن مكتبة Ezdxf مفتوحة المصدر في بايثون مطوري البرامج من فتح وتحميل بيانات من مستند DXF موجود، والحصول عليها، باستخدام بضعة أسطر فقط من شيفرة بايثون. يُرجى العلم أنها تعمل بكفاءة مع رسومات DXF من مصادر موثوقة مثل أوتوكاد أو بريكس كاد، وتُحمّل ملفات DXF مع أي عيوب طفيفة أو كبيرة. يمكنك الوصول بسهولة إلى جميع كيانات DXF وتكرارها، كما يمكنك الوصول بسهولة إلى سمات الكيانات الموجودة.

كيفية تحميل ملف 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)

كيفية التعامل مع النصوص في رسومات DXF باستخدام بايثون

توفر مكتبة Ezdxf بايثون دعمًا كاملاً للتعامل مع النصوص داخل مستندات DXF. وتضمنت المكتبة ميزات متنوعة لمعالجة النصوص، مثل إضافة كيان نصي بسيط من سطر واحد، ومحاذاة نص أساسية (أعلى، وسط، أسفل، خط الأساس، مركز، يمين)، وملاءمة النص، وأنماط النص القياسية وأنواع الخطوط، وإضافة نمط نص جديد، واستخدام نص ثلاثي الأبعاد، واستخدام خطوط ثابتة، وغيرها.

كيفية إضافة نص بسيط من سطر واحد عبر واجهة برمجة تطبيقات Python؟

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")
 
 عربي