[PYTHON] 3D oder D mit Py

Es gibt viele Möglichkeiten, numerische Berechnungen (hauptsächlich mit Python) durchzuführen, selbst wenn 3D-CAD verwendet wird, und es besteht die Anforderung, Daten für 3D (STEP, IGES, STL) basierend auf den numerischen Berechnungen zu generieren (müssen). Es ist eine Lösung, während die Anzahl steigt.

Fazit

Verwenden Sie abschließend Open CASCADE.

OpenCASCADE, berühmt für C ++ und die Hallows of Death OpenCascade-Technologie, aber das Original ist eine Bibliothek, die aus 1 Million Zeilen in C ++ besteht. Wenn Sie also versuchen, es zu verwenden Es ist sehr schwierig. Also verwende ich den großartigen Code pythonocc-core, der fast alle OpenCASCADE in Python einwickelt.

Installationsmethode

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

Es ist eine gute Codegruppe, die zusätzlich eingefügt werden kann.

Wie benutzt man

Dies ist ein sehr einfaches Anwendungsbeispiel.

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

Wenn Sie es ausführen, sehen Sie ein Bild des 3D-Viewers und seines Viewers sowie eine STEP-Datei namens pythonocc-core.stp.

pythonocc-core.png

Wie man es benutzt, steht noch aus. Danach können Sie den 3D-Viewer bewegen, andere Dateien als STEP (IGES, STL, BRep) ausspucken oder Ihre Lieblingsform erstellen.

Es gibt viele Beispiele in Demo.

Vorteil

Es mag als 3D-Viewer einigermaßen gut sein (STEP, IGES, STL können angezeigt werden), aber der nützlichste Punkt für die Arbeit ist, dass es STEP ausspucken kann. Dadurch wird die Kompatibilität mit kommerziellem CAD erheblich verbessert.

Darüber hinaus können Vektorberechnung, Koordinatensystemkonvertierung, Spilne und Boolean verwendet werden, und die minimal erforderlichen Berechnungsfunktionen als sogenanntes CAD werden implementiert, sodass es einen Aspekt gibt, der sich hervorragend als grundlegende geometrische Berechnungsbibliothek anstelle von CAD eignet. ..

Wenn es um Konvertierungsoperationen geht, ist es natürlich nicht schwierig zu implementieren, wenn Sie Code auf verschiedene Arten schreiben, aber ich bin sehr dankbar, dass fast alle geometrischen Operationen bereits implementiert wurden.

Beiseite

Es ist ein paar Jahre her, seit ich damit angefangen habe, aber ehrlich gesagt weiß ich nicht, wie es für 3D Viewer funktioniert. Ich frage mich, ob die Zeichenfunktion von OpenCASCADE in Qt (PyQt) eingebettet ist.

Normalerweise verwende ich hauptsächlich Windows, aber es war ziemlich schockierend, wenn 3D mit Qt zusammenarbeitete, indem nur die Conda-Installation in der nativen Windows-Umgebung ausgeführt wurde. (Und mir wurde klar, dass es mir unmöglich ist, dies in C ++ einschließlich Zeichnen zu tun.)

Recommended Posts

3D oder D mit Py
3D-Plot mit Matplotlib
3D oder D in Py Thon de ~ Spines r Fase ~
Erstellen Sie ein 3D-GIF mit Python3
3D-Streudiagramm mit PyQtGraph
Dreidimensionale Skelettstrukturanalyse mit Python
Löse ABC166 A ~ D mit Python
Führen Sie mruby mit Python oder Blender aus
3D-Zeichnung mit SceneKit in Pythonista
Optimieren Sie RF oder lightGBM mit Optuna
Selen: Warten Sie mit UND / ODER auf das Element
Express Max Pooling 2D nur mit Conv2D
2D FEM Stressanalyseprogramm von Python
Löse AtCoder ABC168 mit Python (A ~ D)
Behandeln Sie 3D-Datenstrukturen mit Pandas
Durch Verknüpfen von Maya mit Excel oder Tabellenkalkulationen ~
Versuchen Sie, Python: Lambda zuzuweisen oder zu wechseln
2D-Physiksimulation mit Box2d und wxPython