ספריית פייתון בקוד פתוח ליצירת DXF ב-AutoCAD
ספריית CAD חינמית של Python ליצירה, קריאה ותפעול של קבצי DXF ב-AutoCAD. מפתחים יכולים לקרוא וכתיבה תמיכה עבור מודלים DXF בינאריים ו-ASCII.
מהי ספריית Ezdxf?
מפתחי תוכנה יכולים לעבוד עם קבצי DXF של AutoCAD בתוך תוכניות Python שלהם הודות לספריית הקוד הפתוח החזקה של Python AutoCAD DXF, Ezdxf. AutoCAD משתמשת בסוג קובץ DXF (קובץ החלפת ציורים) הנפוץ כדי להחליף נתונים עם תוכניות CAD אחרות. הספרייה תומכת ברוב התכונות של פורמט DXF, ובמקביל מקלה על עבודתם של המפתחים על ידי הסתרת המורכבויות המורכבות של DXF מפני מתכנתים.
ניתן להטמיע נתונים ספציפיים ליישום על ידי תוכניות צד שלישי באמצעות ספריית Ezdxf. היכולת לייצר קבצי DXF, לערוך DXF, לכתוב מסמכי DXF קיימים, לבצע בדיקות עם CPython ו-Pypy3, לשמר תוכן DXF של צד שלישי, להשתמש בהרחבות C אופציונליות עבור CPython, ופונקציות רבות נוספות הן קריטיות לניהול מסמכי DXF. תוספים נוספים זמינים גם כן, אך יש לטעון אותם בנפרד מכיוון שהם אינם מותקנים אוטומטית במהלך ההתקנה הבסיסית.
מספר גרסאות DXF, כולל R12, R2000, R2004, R2007, R2010, R2013 ו-R2018, נתמכות על ידי ספריית Ezdxf בקוד פתוח. בנוסף, היא תומכת בגרסאות DXF ישנות יותר מ-R12 ובגרסאות DXF R13 ו-R14 במצב קריאה בלבד. רישיון MIT מסדיר את השימוש בספריית Ezdxf.
תחילת העבודה עם Ezdxf
הדרך הקלה ביותר להתקין את חבילת Ezdxf היא באמצעות pip. היא כוללת את הרחבות ה-C האופציונליות מ-PyPI כגלגלים בינאריים. אנא השתמשו בפקודה הבאה להתקנה חלקה.
עבודה עם פוליגון דרך ספריית התלת-ממד של פייתון
פוליגון הוא צורה דו-ממדית עם צלעות ישרות. מידול פוליגונליים הוא גישה למידול עצמים על ידי ייצוג או קירוב פני השטח שלהם באמצעות רשתות פוליגונליים. ספריית פייתון בקוד פתוח Ezdxf מאפשרת למפתחי תוכנה ליצור פוליגונים עבור כל נקודת מחסנית עם כמה שורות קוד פייתון בלבד. זה מועיל מאוד במדפסות תלת-ממד שהקושחה שלהן אינה מתקנת עבור גדלי חורים קטנים.
יצירת קובץ DXF של AutoCAD באמצעות Python
ספריית Python Ezdxf בקוד פתוח כוללת תמיכה מלאה בקריאה וכתיבה של מסמכי DXF של AutoCAD בתוך יישומי Python. הספרייה יוצרת את מסמכי ה-DXF החדשים עם כמות תוכן קטנה מאוד, מה שאומר שרק המשאבים הנחוצים לחלוטין כלולים, כגון סוגי שורות, סגנונות טקסט ועוד. ניתן גם לפתוח קובץ DXF קיים ולשנות את תוכנו בקלות.
כיצד ליצור ציור 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")
פתיחה וקריאה של שרטוטי DXF של AutoCAD באמצעות Python
ספריית Python Ezdxf בקוד פתוח מאפשרת למפתחי תוכנה לפתוח, לטעון ולקבל נתונים ממסמך DXF קיים עם כמה שורות קוד Python בלבד. אנא זכרו שהיא עובדת היטב עבור שרטוטי DXF ממקורות מהימנים כמו AutoCAD או BricsCAD ותטען קבצי 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 באמצעות Python
ספריית Ezdxf Python סיפקה תמיכה מלאה לטיפול בטקסט בתוך מסמכי DXF. הספרייה כללה תכונות שונות לעיבוד טקסט, כגון הוספת ישות טקסט פשוטה בשורה אחת, יישור טקסט בסיסי כמו (למעלה, באמצע, למטה וקו בסיס, למרכז, ימין), התאמת טקסט, סגנונות טקסט וסוגי שורות סטנדרטיים, הוספת סגנון טקסט חדש, שימוש בטקסט תלת-ממדי, שימוש בגופנים עומדים וכן הלאה.
כיצד להוסיף טקסט פשוט בשורה אחת באמצעות ממשק ה-API של 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")