Модуль Python для параметрического САПР



Я ищу CAD-модуль для python. Вот что я нашел, поправьте меня, если я ошибаюсь:





  • PythonCAD :

    • типы файлов: DWG, DXF, SVG

    • ориентированный: щелчок в окне

    • последнее сохранение: 2012-06-15

    • документально: бедный и грязный




  • PythonOCC :

    • типы файлов: STEP, IGES, STL (импорт / экспорт)

    • ориентированные: скрипты

    • последнее сохранение: 2013-01-12

    • документально: хорошо и ясно

    • Установка-это такая боль




  • Free-CAD (Python wrapping)

    • типы файлов:?

    • ориентированный: щелкните в окне и Python scripting импортируется из python

    • последнее обслуживание: январь 2013

    • документировано: очень хорошо




Ну, похоже, что привязки python для FreeCad являются лучшими, но есть ли другие вещи?

762   4  

4 ответов:

Я обнаружил, что Freecad-это лучшее решение. Привязки python позволяют создавать детали всеобъемлющим образом.

myShape = Part.makeBox(2,2,2)
myShape.translate(Base.Vector(2,0,0))

Из простых геометрий можно использовать булевы операции:

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)

Единственным недостатком является установка с mac os, я не смог скомпилировать ее на snow leaopard (потому что слишком много зависимостей от неустойчивых библиотек).

Но у pythonocc та же проблема, и мне не нравится минимальная документация и synthax, который слишком много opencascade вроде и не сильно питонистичен.

Occmodel - это небольшая автономная библиотека, предоставляющая высокоуровневый доступ к ядру моделирования OpenCASCADE.

PythonOCC, вероятно, является наиболее полной функцией. Вот еще несколько:

CADDD - использует PythonOCC, имеет графический интерфейс в Qt.

NURBS - модуль Python для работы с NURBS.

Lolcad - выглядит очень хорошо, но он не обновлялся в течение довольно долгого времени.

И конечно, вы можете попробовать использовать Blender, который имеет встроенный интерпретатор Python и есть плагины для архитектуры и точного моделирования (например, this)

Есть вид на Саломею. Код выглядит следующим образом:

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' )

Comments

    Ничего не найдено.