[PYTHON] 3D ou D avec Py

Il existe de nombreuses possibilités d'effectuer des calculs numériques (principalement en utilisant Python) même en utilisant la CAO 3D, et il y a une demande de génération de données (incontournables) pour 3D (STEP, IGES, STL) sur la base des calculs numériques. C'est une solution alors que le nombre augmente.

Conclusion

En conclusion, utilisez Open CASCADE.

OpenCASCADE, célèbre pour C ++ and the Hallows of Death OpenCascade Technology, mais l'original est une bibliothèque composée de 1 million de lignes en C ++, donc si vous essayez de l'utiliser C'est très difficile. J'utilise donc le bon code pythonocc-core qui enveloppe presque tout OpenCASCADE dans Python.

Méthode d'installation

# Python 3.8
conda install -c conda-forge pythonocc-core
# Python 3.7 or 3.6
conda install -c dlr-sc pythonocc-core

C'est un bon groupe de code à ajouter en plus.

Comment utiliser

Ceci est un exemple d'utilisation très simple.

from OCC.Display.SimpleGui import init_display
from OCC.Core.gp import gp_Pnt, gp_Vec, gp_Dir
from OCC.Core.gp import gp_Ax1, gp_Ax2, gp_Ax3
from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_MakeEdge
from OCC.Extend.DataExchange import write_step_file, read_step_file

display, start_display, add_menu, add_function = init_display()


display.DisplayShape(gp_Pnt())

p1 = gp_Pnt(0, 0, 0)
p2 = gp_Pnt(0, 0, 10)
edge = BRepBuilderAPI_MakeEdge(p1, p2)
result = edge.Edge()
write_step_file(result, "pythonocc-core.stp")
display.DisplayShape(result)

display.FitAll()
display.View.Dump("pythonocc-core.png ")
start_display()

Lorsque vous l'exécutez, vous verrez une image de la visionneuse 3D et de sa visionneuse et un fichier STEP appelé pythonocc-core.stp.

pythonocc-core.png

Comment l'utiliser reste à venir. Après cela, vous pouvez déplacer la visionneuse 3D, cracher des fichiers autres que STEP (IGES, STL, BRep) ou créer votre forme préférée.

Il existe de nombreux exemples dans demo.

avantage

Il peut être raisonnablement bon comme visionneuse 3D (STEP, IGES, STL peuvent être affichés), mais le point le plus utile pour le travail est qu'il peut cracher STEP. Avec cela, la compatibilité avec la CAO commerciale est considérablement améliorée.

De plus, le calcul vectoriel, la conversion du système de coordonnées, Spilne et Boolean peuvent être utilisés, et les fonctions de calcul minimales requises telles que la CAO sont implémentées, il y a donc un aspect qu'il est excellent en tant que bibliothèque de calcul géométrique de base plutôt que CAO. ..

Bien sûr, s'il s'agit d'opérations de conversion, ce n'est pas difficile à implémenter si vous écrivez du code de différentes manières, mais je suis très reconnaissant que presque toutes les opérations géométriques aient déjà été implémentées.

De côté

Cela fait quelques années que j'ai commencé à l'utiliser, mais honnêtement, je ne sais pas comment cela fonctionne pour 3D Viewer. Je me demande si la fonction de dessin d'OpenCASCADE est intégrée dans Qt (PyQt).

J'utilise généralement Windows principalement, mais c'était assez choquant quand 3D travaillait avec Qt simplement en exécutant conda install dans l'environnement natif de Windows. (Et j'ai réalisé qu'il m'est impossible de le faire en C ++ y compris le dessin)

Recommended Posts

3D ou D avec Py
Graphique 3D avec matplotlib
3D ou D dans Py Thon de ~ Spines r Fase ~
Créer un gif 3D avec python3
Nuage de points 3D avec PyQtGraph
Analyse de la structure du squelette en trois dimensions avec Python
Résoudre ABC166 A ~ D avec Python
Exécutez mruby avec Python ou Blender
Dessin 3D avec SceneKit dans Pythonista
Optimisez RF ou LightGBM avec Optuna
sélénium: attendre l'élément avec ET / OU
Express Max Pooling 2D avec Conv2D uniquement
Programme d'analyse des contraintes FEM 2D par Python
Résoudre AtCoder ABC168 avec python (A ~ D)
Gérez les structures de données 3D avec les pandas
En liant Maya avec Excel ou des feuilles de calcul ~
Essayez d'attribuer ou de changer avec Python: lambda
Simulation physique 2D avec Box2d et wxPython