Biblioteca Python de código aberto para criação de DXF no AutoCAD
Biblioteca Python CAD gratuita para criação, leitura e manipulação de ficheiros DXF do AutoCAD. Os programadores podem ler e escrever modelos ASCII DXF e DXF binários.
O que é a Biblioteca Ezdxf?
Os programadores de software podem trabalhar com ficheiros DXF do AutoCAD nos seus próprios programas Python graças à robusta biblioteca Python de código aberto Ezdxf para o AutoCAD DXF. O AutoCAD utiliza o tipo de ficheiro DXF (desenho de intercâmbio de desenhos) muito utilizado para trocar dados com outros programas CAD. A biblioteca suporta a maioria das características do formato DXF, ao mesmo tempo que facilita o trabalho dos programadores, ocultando as complexidades do DXF dos programadores.
Os dados específicos da aplicação podem ser incorporados por programas de terceiros utilizando a biblioteca Ezdxf. A capacidade de produzir ficheiros DXF, editar DXF, escrever documentos DXF existentes, testar com CPython e Pypy3, preservar conteúdo DXF de terceiros, utilizar extensões C opcionais para CPython e muitas outras funções são cruciais para a gestão de documentos DXF. Outros add-ons também estão disponíveis, no entanto devem ser carregados separadamente, uma vez que não são instalados automaticamente durante a configuração básica.
Diversas versões do DXF, incluindo R12, R2000, R2004, R2007, R2010, R2013 e R2018, são suportadas pela biblioteca de código aberto Ezdxf. Além disso, suporta versões do DXF mais antigas que a R12 e as versões do DXF R13 e R14 em modo de leitura apenas. A licença MIT rege a utilização da biblioteca Ezdxf.
Introdução ao Ezdxf
A forma mais fácil de instalar o pacote Ezdxf é utilizando o pip. Inclui as extensões C opcionais do PyPI como rodas binárias. Utilize o seguinte comando para uma instalação sem problemas.
Instalar o Ezdxf via pip
pip install ezdxf
Pode descarregar a biblioteca partilhada compilada do repositório Github.
Trabalhar com Polígonos através da Biblioteca Python 3D
Um polígono é uma forma bidimensional com lados rectos. A modelação poligonal é uma abordagem para modelar objetos que representam ou aproximam as suas superfícies utilizando malhas poligonais. A biblioteca Python de código aberto Ezdxf permite aos programadores de software criar polígonos para cada ponto da pilha com apenas algumas linhas de código Python. É muito útil em impressoras 3D cujo firmware não corrige pequenos furos.
Criação de Ficheiros DXF a partir do AutoCAD via Python
O Python Ezdxf de código aberto inclui suporte completo para a leitura e escrita de documentos DXF do AutoCAD em aplicações Python. A biblioteca cria novos documentos DXF com muito pouca quantidade de conteúdo, o que significa que apenas são incluídos os recursos absolutamente necessários, como tipos de linha, estilos de texto e outros. Também é possível abrir um ficheiro DXF existente e modificar o seu conteúdo com facilidade.
Como criar um novo desenho DXF através da 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 e ler desenhos DXF do AutoCAD via Python
A biblioteca Python Ezdxf de código aberto permite aos programadores de software abrir, carregar e obter dados de um documento DXF existente com apenas algumas linhas de código Python. Lembre-se de que funciona bem com desenhos DXF de fontes fidedignas, como o AutoCAD ou o BricsCAD, e carregará ficheiros DXF com defeitos pequenos ou grandes. Pode aceder e iterar facilmente sobre todas as entidades DXF e aceder facilmente aos atributos de uma entidade existente.
Como carregar um ficheiro DXF via biblioteca 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)
Como manipular texto em desenhos DXF via Python
A biblioteca Python Ezdxf suporta totalmente a manipulação de texto em documentos DXF. A biblioteca inclui várias características para o processamento de texto, tais como adicionar uma entidade de texto simples de uma linha, alinhamento básico de texto como (superior, central, inferior e linha de base, centrar, direita), ajustar texto, estilos de texto e tipos de linha padrão, adicionar novo estilo de texto, utilizar texto 3D, utilizar tipos de letra stand-alone e assim por diante.
Como adicionar texto simples de uma linha através da 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")