Ανοιχτής Πηγής Βιβλιοθήκη Python για 3D Μοντελοποίηση & Ανταλλαγή Δεδομένων
Δωρεάν βιβλιοθήκη Python για 3D μοντελοποίηση και διαχείριση ανταλλαγής δεδομένων. Επιτρέπει την εργασία με μορφές αρχείων 3D CAD, BIM, PLM και CAM μέσω Python API online.
Τι είναι η βιβλιοθήκη PythonOCC-Core;
Το PythonOCC-Core είναι μια δωρεάν βιβλιοθήκη 3D μοντελοποίησης και αυτοματοποίησης CAD. Χρησιμοποιεί τη Python, μια ευρέως χρησιμοποιούμενη γλώσσα προγραμματισμού, πάνω από τον πυρήνα OpenCASCADE Technology (OCCT). Αυτός ο συνδυασμός προσφέρει μια ισχυρή βάση για τη δημιουργία, τροποποίηση και μελέτη πολύπλοκων 3D σχημάτων. Συνδυάζοντας την ευκολία της Python με τα ισχυρά εργαλεία μοντελοποίησης του OCCT, έχετε ένα ευέλικτο και αποτελεσματικό εργαλείο στη διάθεσή σας. Με τη διαισθητική διεπαφή Python και το εκτενές σύνολο λειτουργιών, η βιβλιοθήκη παρέχει μια απρόσκοπτη εμπειρία τόσο για αρχάριους όσο και για έμπειρους προγραμματιστές στον τομέα. Ενδυναμώνει αρχιτέκτονες και μηχανικούς όπως εσείς να δημιουργούν παραμετρικά μοντέλα, να παράγουν σχεδιαγράμματα κτιρίων και να διεξάγουν δομική ανάλυση. Αυτό το εργαλείο βελτιώνει τη ροή εργασίας του σχεδιασμού, επιτρέποντας ακριβή οπτικοποίηση και αποτελεσματική συνεργασία. Είναι δημοφιλές σε διάφορους τομείς όπως η αυτοκινητοβιομηχανία, η αεροδιαστημική και ο σχεδιασμός προϊόντων για την ανάπτυξη και βελτίωση πολύπλοκων 3D μοντέλων. Με αυτή τη βιβλιοθήκη, μπορείτε να επιταχύνετε την πρωτοτυποποίηση, τις προσομοιώσεις και την ανάλυση σχεδίου, απλοποιώντας έτσι τη διαδικασία ανάπτυξης προϊόντος.
Οι δυνατότητες οπτικοποίησης του PythonOCC-Core είναι ιδανικές για τη δημιουργία παιχνιδιών και εμπειριών εικονικής πραγματικότητας. Με αυτό το εργαλείο, μπορείτε να δημιουργήσετε ελκυστικά περιβάλλοντα, ρεαλιστικές προσομοιώσεις και διαδραστικές περιπέτειες. Πέρα από αυτό, η βιβλιοθήκη προσφέρει βασικές λειτουργίες όπως εργασία με Ιατρική Απεικόνιση, χειρισμό 3D γεωμετρίας, εισαγωγή και εξαγωγή δεδομένων CAD, εκτέλεση προχωρημένων προσομοιώσεων σε 3D μοντέλα, οπτικοποίηση 3D περιεχομένου σε web browsers, και παρουσίαση 3D οπτικών στοιχείων μέσω δημοφιλών Python GUI. Η βιβλιοθήκη επίσης διαδραματίζει ζωτικό ρόλο σε επιστημονικές ερευνητικές περιοχές όπως η υπολογιστική φυσική, η επιστήμη υλικών και η βιοϊατρική μηχανική. Πολλοί επαγγελματίες λογισμικού και προγραμματιστές σε διάφορους κλάδους βρίσκουν το PythonOCC-Core ελκυστικό επειδή συνδυάζει την ευκολία της Python με τη δύναμη του OCCT. Με το PythonOCC-Core, μπορείτε να ενισχύσετε τη δημιουργικότητά σας και να απλοποιήσετε πολύπλοκες διαδικασίες CAD. Αυτό ανοίγει νέες δυνατότητες για καινοτομία και παραγωγικότητα στην 3D μοντελοποίηση και σχεδίαση.
Ξεκινώντας με το PythonOCC-Core
Ο πιο εύκολος τρόπος για να εγκαταστήσετε τη σταθερή έκδοση του PythonOCC-Core είναι χρησιμοποιώντας pip. Παρακαλώ χρησιμοποιήστε την παρακάτω εντολή για μια ομαλή εγκατάσταση.
Εγκατάσταση PythonOCC-Core μέσω pip
pip install pythonocc-coreΕγκατάσταση PythonOCC-Core μέσω Conda
conda install -c conda-forge pythonocc-coreΜπορείτε επίσης να εγκαταστήσετε το PythonOCC-Core μέσω Conda χρησιμοποιώντας την ακόλουθη εντολή.
conda install -c 1adrianb face_alignmentΜπορείτε να κατεβάσετε τη μεταγλωττισμένη κοινόχρηστη βιβλιοθήκη από το αποθετήριο Github.
Δημιουργία & Διαχείριση 3Δ Γεωμετριών μέσω Python
Η ανοιχτού κώδικα βιβλιοθήκη PythonOCC-Core περιλαμβάνει πλήρη υποστήριξη για τη δημιουργία και διαχείριση 3D μοντέλων μέσα σε εφαρμογές Python. Επιπλέον, η βιβλιοθήκη προσφέρει ένα εκτενές σύνολο εργαλείων για τη δημιουργία και επεξεργασία 3D γεωμετρικών σχημάτων, συμπεριλαμβανομένων σημείων, καμπυλών, επιφανειών και στερεών. Παρέχει μια ευρεία γκάμα αλγορίθμων για την κατασκευή και τροποποίηση σύνθετων αντικειμένων, όπως λογικές (Boolean) λειτουργίες, στρογγυλοποίηση (filleting) και γωνιακή αποκοπή (chamfering). Το παρακάτω παράδειγμα δείχνει πώς οι προγραμματιστές λογισμικού μπορούν να δημιουργήσουν κουτιά περιγράμματος βασικής γεωμετρίας χρησιμοποιώντας εντολές Python.
Πώς να υπολογίσετε και να εμφανίσετε τα πλαίσια περιβάλλοντος (Bounding Boxes) μέσα σε εφαρμογές Python;
def get_boundingbox(shape, tol=1e-6, use_mesh=True):
bbox = Bnd_Box()
bbox.SetGap(tol)
if use_mesh:
mesh = BRepMesh_IncrementalMesh()
mesh.SetParallelDefault(True)
mesh.SetShape(shape)
mesh.Perform()
if not mesh.IsDone():
raise AssertionError("Mesh not done.")
brepbndlib_Add(shape, bbox, use_mesh)
xmin, ymin, zmin, xmax, ymax, zmax = bbox.Get()
return xmin, ymin, zmin, xmax, ymax, zmax, xmax - xmin, ymax - ymin, zmax - zmin
print("Box bounding box computation")
box_shape = BRepPrimAPI_MakeBox(10.0, 20.0, 30.0).Shape()
bb1 = get_boundingbox(box_shape)
print(bb1)
print("Cylinder bounding box computation")
cyl_shape = BRepPrimAPI_MakeCylinder(10.0, 20.0).Shape()
bb2 = get_boundingbox(cyl_shape)
print(bb2)
print("Torus bounding box computation")
torus_shape = BRepPrimAPI_MakeCylinder(15.0, 5.0).Shape()
bb3 = get_boundingbox(torus_shape)
print(bb3)
Αυτοματοποίηση CAD με το API Python
Η ανοιχτού κώδικα βιβλιοθήκη PythonOCC-Core έχει προσφέρει πολύ χρήσιμα χαρακτηριστικά για τη διαχείριση διαφόρων εργασιών που σχετίζονται με διαγράμματα CAD. Η βιβλιοθήκη υποστηρίζει διάφορες μορφές αρχείων που χρησιμοποιούνται συνήθως στο CAD, συμπεριλαμβανομένων των STEP, IGES, STL και BREP. Η βιβλιοθήκη επιτρέπει στους προγραμματιστές να αυτοματοποιούν επαναλαμβανόμενες εργασίες CAD, όπως η δημιουργία παραμετρικών σχεδίων, η εκτέλεση γεωμετρικών μετασχηματισμών και η διεξαγωγή γεωμετρικής ανάλυσης. Παρέχει ένα API υψηλού επιπέδου που απλοποιεί την υλοποίηση των ροών εργασίας CAD, καθιστώντας το ιδανική επιλογή για την κατασκευή εργαλείων αυτοματοποίησης CAD.
Πώς να δημιουργήσετε σχήμα και να το εξάγετε σε μορφή αρχείου CAD STEP μέσω του Python API;
from __future__ import print_function
from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox
from OCC.Core.STEPControl import STEPControl_Writer, STEPControl_AsIs
from OCC.Core.Interface import Interface_Static_SetCVal
from OCC.Core.IFSelect import IFSelect_RetDone
# creates a basic shape
box_s = BRepPrimAPI_MakeBox(10, 20, 30).Shape()
# initialize the STEP exporter
step_writer = STEPControl_Writer()
dd = step_writer.WS().TransferWriter().FinderProcess()
print(dd)
Interface_Static_SetCVal("write.step.schema", "AP203")
# transfer shapes and write file
step_writer.Transfer(box_s, STEPControl_AsIs)
status = step_writer.Write("box.stp")
if status != IFSelect_RetDone:
raise AssertionError("load failed")