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.

Previous Next

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")
 
 Português