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.
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.
# 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.
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.
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.
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.
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