Biblioteca Python de código abierto para la creación de DXF en AutoCAD
Biblioteca CAD gratuita de Python para la creación, lectura y manipulación de archivos DXF de AutoCAD. Los desarrolladores pueden leer y escribir modelos DXF ASCII y binarios.
¿Qué es la biblioteca Ezdxf?
Los desarrolladores de software pueden trabajar con archivos DXF de AutoCAD en sus propios programas Python gracias a la robusta biblioteca Ezdxf de código abierto para Python. AutoCAD utiliza el ampliamente utilizado tipo de archivo DXF (archivo de intercambio de dibujos) para intercambiar datos con otros programas CAD. La biblioteca admite la mayoría de las funciones del formato DXF, a la vez que facilita el trabajo de los desarrolladores al ocultar las complejas complejidades del formato DXF a los programadores.
Los datos específicos de la aplicación pueden ser incrustados por programas de terceros que utilizan la biblioteca Ezdxf. La capacidad de producir archivos DXF, editarlos, escribir documentos DXF existentes, realizar pruebas con CPython y Pypy3, preservar contenido DXF de terceros, usar extensiones C opcionales para CPython y muchas otras funciones son cruciales para la gestión de documentos DXF. También hay otros complementos disponibles; sin embargo, deben cargarse por separado, ya que no se instalan automáticamente durante la configuración básica. La biblioteca de código abierto Ezdxf es compatible con varias versiones de DXF, incluidas R12, R2000, R2004, R2007, R2010, R2013 y R2018. Además, admite versiones de DXF anteriores a R12 y las versiones R13 y R14 en modo de solo lectura. La licencia MIT rige el uso de la biblioteca Ezdxf.
Introducción a Ezdxf
La forma más sencilla de instalar el paquete Ezdxf es usando pip. Incluye las extensiones C opcionales de PyPI como ruedas binarias. Utilice el siguiente comando para una instalación sin problemas.
Instalar Ezdxf mediante pip
pip install ezdxf
Puede descargar la biblioteca compartida compilada desde el repositorio Github.
Trabajar con polígonos mediante la biblioteca Python 3D
Un polígono es una forma bidimensional con lados rectos. El modelado poligonal es un método para modelar objetos mediante la representación o aproximación de sus superficies mediante mallas poligonales. La biblioteca de Python de código abierto Ezdxf permite a los desarrolladores de software crear polígonos para cada punto de la pila con tan solo un par de líneas de código Python. Resulta muy útil en impresoras 3D cuyo firmware no admite agujeros de tamaño pequeño.
Creación de archivos DXF de AutoCAD mediante Python
La biblioteca Python Ezdxf de código abierto incluye compatibilidad completa para leer y escribir documentos DXF de AutoCAD en aplicaciones Python. La biblioteca crea los nuevos documentos DXF con muy poco contenido, lo que significa que solo incluye los recursos estrictamente necesarios, como tipos de línea, estilos de texto y más. También es posible abrir un archivo DXF existente y modificar su contenido fácilmente.
¿Cómo crear un nuevo dibujo DXF a través de la biblioteca 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")
Abrir y leer dibujos DXF de AutoCAD con Python
La biblioteca de código abierto Ezdxf de Python permite a los desarrolladores de software abrir, cargar y obtener datos de un documento DXF existente con solo un par de líneas de código Python. Recuerde que funciona bien con dibujos DXF de fuentes confiables como AutoCAD o BricsCAD y carga archivos DXF con defectos menores o mayores. Puede acceder fácilmente a todas las entidades DXF, iterar sobre ellas y acceder fácilmente a los atributos de las entidades existentes.
¿Cómo cargar un archivo DXF a través de la biblioteca de 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)
Cómo gestionar texto en dibujos DXF con Python
La biblioteca Ezdxf de Python ofrece soporte completo para la gestión de texto en documentos DXF. Incluye diversas funciones para el procesamiento de texto, como la adición de una entidad de texto simple de una sola línea, la alineación básica del texto (superior, central, inferior, línea base, centrar, derecha), el ajuste de texto, la creación de estilos de texto y tipos de línea estándar, la adición de un nuevo estilo de texto, el uso de texto 3D, el uso de fuentes estándar, etc.
¿Cómo agregar texto simple de una línea a través de la API de 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")