Lire DXF avec python

Il semble que vous puissiez lire DXF avec python en utilisant dxfgrabber pip install dxfgrabber

Créez un fichier DXF approprié avec jw_cad CAD 2D gratuit et lisez-le.

dxf.py


import dxfgrabber

dxf = dxfgrabber.readfile("test.dxf")
#entête
print(dxf.header)
#{'$ACADVER': 'AC1009', '$DWGCODEPAGE': 'ANSI_1252', '$INSBASE': (0.0, 0.0, 0.0), '$EXTMIN': (0.0, 0.0), '$EXTMAX': (841.0, 594.0), '$LIMMIN': (0.0, 0.0), '$LIMMAX': (841.0, 594.0), '$LTSCALE': 1.0}

#Élément graphique
# print(vars(dxf.entities))
cirs = [e for e in dxf.entities if e.dxftype == 'CIRCLE']
lines = [e for e in dxf.entities if e.dxftype == 'LINE']

#Cercle
print(vars(cirs[0]))
# {'dxftype': 'CIRCLE', 'handle': None, 'owner': None, 'paperspace': None, 'layer': '_0-0_', 'linetype': 'CONTINUOUS', 'thickness': 0.0, 'extrusion': (0.0, 0.0, 1.0), 'ltscale': 1.0, 'line_weight': 0, 'invisible': 0, 'color': 7, 'true_color': None, 'transparency': None, 'shadow_mode': None, 'layout_tab_name': None, 'center': (94.41901840490794, 356.85030674846627), 'radius': 16.151818630112004}
#center est le centre du cercle x, y
#rayon est le rayon circulaire
#le type de ligne est le type de ligne

#Ligne droite
print(vars(lines[0]))
#{'dxftype': 'LINE', 'handle': None, 'owner': None, 'paperspace': None, 'layer': '_0-0_', 'linetype': 'CONTINUOUS', 'thickness': 0.0, 'extrusion': None, 'ltscale': 1.0, 'line_weight': 0, 'invisible': 0, 'color': 7, 'true_color': None, 'transparency': None, 'shadow_mode': None, 'layout_tab_name': None, 'start': (386.4472392638037, 316.28711656441715), 'end': (386.4472392638037, 522.9865030674847)}
#start est le point de départ x,y, la fin est le point final x,y
#le type de ligne est le type de ligne

#Liste des types de ligne(jw_goujat)
print(vars(dxf.linetypes))
#{'_table_entries': {'CONTINUOUS': <dxfgrabber.linetypes.Linetype object at 0x000002B43A5796A0>, 'DASHED1': <dxfgrabber.linetypes.Linetype object at 0x000002B43A5796D8>, 'DASHED2': <dxfgrabber.linetypes.Linetype object at 0x000002B43A579710>, 'DASHED3': <dxfgrabber.linetypes.Linetype object at 0x000002B43A579748>, 'CENTER1': <dxfgrabber.linetypes.Linetype object at ...

référence https://qiita.com/ackermanrf128/items/d9275a7d077c1dff3ec7

Recommended Posts

Lire DXF avec python
Lire la formule d'Euler en Python
Lire du XML avec un espace de noms spécifié en Python
Lire les e-mails Outlook avec Python
Lire la sortie Fortran avec python
Lire les données des tampons de protocole avec Python3
Lire des morceaux PNG en Python (édition de classe)
Lire des fichiers en parallèle avec Python
Créer et lire des paquets de messages en Python
Quadtree en Python --2
Python en optimisation
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
[python] Lecture de données
Aplatir en python
Lisez le fichier ligne par ligne avec Python
Lisez le fichier ligne par ligne avec Python
Lire et écrire des fichiers JSON avec Python
[Python] Lire la ligne spécifiée dans le fichier
Lire des caractères dans des images avec Python OCR
Liste triée en Python
AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python