Module Python pour CAO paramétrique
je cherche un module CAO pour python. C'est ce que j'ai trouvé, corrigez-moi si je me trompe:
- PythonCAD:
- types de fichiers: DWG, DXF, SVG
- oriented: cliquez dans une fenêtre
- dernière mise à jour: 2012-06-15
- documentée: les pauvres et sales
- PythonOCC:
- types de fichiers: STEP, IGES, STL (import/export)
- orienté: scripts
- dernière mise à jour: 2013-01-12
- documentée: bonne et claire
- Installation est une douleur
- Libre-CAD (python emballage)
- types de fichiers: ?
- : cliquez dans une fenêtre de script python importable depuis python
- dernière mise à jour: jan 2013
- documentée: très bien
Eh bien, il semble que les fixations python pour FreeCad est le meilleur, mais existe-il d'autres choses?
4 réponses
j'ai trouvé que Freecad est la meilleure solution. Les fixations python vous permettent de concevoir des pièces de manière complète.
myShape = Part.makeBox(2,2,2)
myShape.translate(Base.Vector(2,0,0))
à partir de géométries simples, vous pouvez utiliser des opérations booléennes:
cylinder1 = Part.makeCylinder(3,10,Base.Vector(0,0,0),Base.Vector(1,0,0))
cylinder2 = Part.makeCylinder(3,10,Base.Vector(5,0,-5),Base.Vector(0,0,1))
common = cylinder1.common(cylinder2)
mais pythonocc a le même problème et ce que je n'aime pas c'est la documentation minimale et la synthax ce qui est trop opencascade comme et pas trop pythonistique.
occmodel est une petite bibliothèque autonome qui donne un accès de haut niveau au noyau de modélisation OpenCASCADE.
PythonOCC est probablement le plus complet. En voici d'autres:
CADDD - utilise PythonOCC, a GUI dans Qt.
NURBS - module Python pour travailler avec les NURBS.
lolcad - l'air très bon, mais il n'a pas été mis à jour depuis un certain temps.
et de cource, vous pouvez essayer D'utiliser Blender, qui a l'interpréteur Python intégré et il y a des plugins pour l'architecture et la modélisation de précision (comme )
vue Salomé. Le code ressemble à ceci:
import sys
import salome
salome.salome_init()
theStudy = salome.myStudy
import salome_notebook
notebook = salome_notebook.NoteBook(theStudy)
sys.path.insert( 0, r'/tmp')
###
### GEOM component
###
import GEOM
from salome.geom import geomBuilder
import math
import SALOMEDS
geompy = geomBuilder.New(theStudy)
O = geompy.MakeVertex(0, 0, 0)
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
Vertex_1 = geompy.MakeVertex(0, 0, 0)
Vertex_2 = geompy.MakeVertex(0, 2, 0)
Vertex_3 = geompy.MakeVertex(2, 2, 0)
Line_1 = geompy.MakeLineTwoPnt(Vertex_2, Vertex_3)
Line_1_vertex_2 = geompy.GetSubShape(Line_1, [2])
Line_1_vertex_3 = geompy.GetSubShape(Line_1, [3])
Curve_1 = geompy.MakeInterpol([Line_1_vertex_2, Line_1_vertex_3, Vertex_1], True, False)
geompy.addToStudy( O, 'O' )
geompy.addToStudy( OX, 'OX' )
geompy.addToStudy( OY, 'OY' )
geompy.addToStudy( OZ, 'OZ' )
geompy.addToStudy( Vertex_1, 'Vertex_1' )
geompy.addToStudy( Vertex_2, 'Vertex_2' )
geompy.addToStudy( Vertex_3, 'Vertex_3' )
geompy.addToStudy( Line_1, 'Line_1' )
geompy.addToStudyInFather( Line_1, Line_1_vertex_2, 'Line_1:vertex_2' )
geompy.addToStudyInFather( Line_1, Line_1_vertex_3, 'Line_1:vertex_3' )
geompy.addToStudy( Curve_1, 'Curve_1' )