.dxf??
Différents formats de fichiers sont utilisés en CAO (logiciel pour dessiner des dessins de conception de machines, etc.). ".Dxf" en fait partie.
Il existe d'autres formats de fichiers, mais le ".dwg" couramment utilisé ne peut être lu que par un logiciel spécifique tel que Auto CAD.
D'autre part, comme les spécifications de ".dxf" sont ouvertes au public, il peut être lu et écrit non seulement par un logiciel spécifique mais également par divers logiciels. (Vous pouvez lire le contenu en l'ouvrant avec un éditeur de texte.)
Par conséquent, il s'agit d'un format de fichier comme le standard de l'industrie utilisé pour l'échange de dessins entre différentes entreprises (peut-être ...).
ezdxf?? Une bibliothèque qui crée et lit des fichiers dxf avec python. https://ezdxf.readthedocs.io/en/stable/
Par exemple, si vous utilisez AutoCAD (qui coûte assez cher), vous pouvez créer un programme d'images auto-mobiles à l'aide de VBA. https://www.youtube.com/watch?v=cL7vAIFjsmQ Si vous disposez d'AutoCAD, c'est souvent plus pratique.
pourtant Si vous souhaitez utiliser python pour créer un autographe CAO, ou si vous n'avez pas AutoCAD, vous souhaitez créer une image automatique CAO ... "Ezdxf" peut être utilisé dans de tels cas.
L'installation est également facile avec Anaconda! conda install -c conda-forge ezdxf
Utilisez ezdxf pour dessiner une ligne droite et enregistrez-la (comme dans le tutoriel). Vous pouvez créer un fichier .dxf avec une instruction de 5 lignes.
#python 3.85
import ezdxf #'0.13.1'
#spécification de la version dxf
doc = ezdxf.new("R2010")
#Créer une nouvelle entité dans l'espace objet
msp = doc.modelspace()
#Créer une ligne droite
msp.add_line(start=[0, 0], end=[100, 0])
#sauvegarder
doc.saveas('line.dxf')
Lorsque j'ouvre le fichier .dxf créé, je vois une ligne droite comme celle-ci (solitaire).
Au fait Au début, j'ai téléchargé jwcad, un CAD gratuit avec un taux de pénétration élevé. Je ne savais pas du tout comment m'en servir (je ne peux pas déplacer la figurine!), Donc Ce fichier CAO a été ouvert dans Libre Office Draw.
Si vous vous y habituez, jwcad semble être une merveilleuse CAO, mais il semble que la méthode de fonctionnement soit différente des autres CAO, Il semble qu'il y ait des points Hamar lorsque les personnes qui ont utilisé d'autres CAO l'utilisent tel quel. (Puisque étudier jwcad est gênant, je coupe les coins)
Il semble y avoir d'autres CAO gratuits, donc Pour ceux qui l'utilisent habituellement pour des travaux CAO rémunérés pour jouer à la maison Vous voudrez peut-être essayer un autre CAD.
Si c'est une ligne, ce sera gênant, alors je vais augmenter un peu plus le nombre de lignes et faire un carré.
import ezdxf #'0.13.1'
doc = ezdxf.new("R2010") #spécification de la version dxf
msp = doc.modelspace() #add new entities to the modelspace
msp.add_line([0, 0], [100, 0])
msp.add_line([100, 0], [100, 100])
msp.add_line([100, 100], [0, 100])
msp.add_line([0, 100], [0, 0])
doc.saveas('tetra.dxf') #sauvegarder
Essayez d'ouvrir le fichier créé.
J'ai pu dessiner correctement un carré.
Dans la CAO 2D comme .dxf, il est nécessaire de prendre en compte le paramètre de calque. Un calque est une collection du même type de ligne, et le type de ligne (points, etc.) et la couleur sont différents pour chaque calque.
Prédéfinissez les calques et spécifiez les calques lors du dessin d'une ligne droite ou d'un cercle (argument: dxfattribs).
import ezdxf #'0.13.1'
#Spécifiez la version avec dxf
doc = ezdxf.new("R2010", setup=True)
#Définition de la couche
doc.layers.new(name="MyLine1", dxfattribs={'linetype': 'DASHED', 'color': 7})
doc.layers.new(name="MyLine2", dxfattribs={'linetype': 'CONTINUOUS', 'color': 1})
doc.layers.new(name="MyLine3", dxfattribs={'linetype': 'CENTER', 'color': 2})
#add new entities to the modelspace
msp = doc.modelspace()
#Ajouter une ligne droite
msp.add_line([0, 0], [100, 0], dxfattribs={'layer': 'MyLine1'})
msp.add_line([100, 0], [100, 100], dxfattribs={'layer': 'MyLine1'})
msp.add_line([100, 100], [0, 100], dxfattribs={'layer': 'MyLine1'})
msp.add_line([0, 100], [0, 0], dxfattribs={'layer': 'MyLine1'})
#centre[50, 50],Ajout d'un cercle d'un rayon de 50
msp.add_circle(center=[50, 50], radius=50, dxfattribs={'layer': 'MyLine2'})
#Ajouter un arc
msp.add_arc(center=[50, 50], radius=40,
start_angle=0, end_angle=90, dxfattribs={'layer': 'MyLine2'})
msp.add_arc(center=[50, 50], radius=40,
start_angle=90, end_angle=360, dxfattribs={'layer': 'MyLine3'})
#[50, 50]Ajouter un point à la position de
msp.add_point([50, 50], dxfattribs={'layer': 'MyLine1'})
#Enregistrer l'image
doc.saveas('sample.dxf')
Lorsque j'ai ouvert le fichier créé, il est devenu comme suit.
Au début, le point à [50, 50] était trop petit et je l'ai mal compris comme de la poussière sur l'écran LCD.
Recommended Posts