1. Produk
  2.   3D
  3.   Python
  4.   PythonOCC-Core
 
  

Perpustakaan Python Sumber Terbuka untuk Pemodelan 3D & Pertukaran Data

Perpustakaan Python percuma untuk pemodelan 3D dan pengendalian pertukaran data. Ia membolehkan kerja dengan Format Fail 3D CAD, BIM, PLM dan CAM melalui API Python dalam talian.

Apakah Perpustakaan PythonOCC-Core ?

PythonOCC-Core ialah perpustakaan percuma untuk pemodelan 3D dan automasi CAD. Ia menggunakan Python, bahasa pengaturcaraan yang banyak digunakan, di atas teras OpenCASCADE Technology (OCCT). Gabungan ini menawarkan asas yang kukuh untuk membuat, mengubah, dan mengkaji bentuk 3D yang rumit. Dengan menggabungkan kemudahan Python dengan alat pemodelan berkuasa OCCT, anda memperoleh alat yang serba boleh dan berkesan di tangan anda. Dengan antara muka Python yang intuitif dan set fungsi yang meluas, perpustakaan ini menyediakan pengalaman yang lancar untuk pemula serta pembangun berpengalaman dalam bidang ini. Ia memberi kuasa kepada arkitek dan jurutera seperti anda untuk menghasilkan model parametrik, menghasilkan susun atur bangunan, dan melakukan analisis struktur. Alat ini memperbaiki aliran kerja reka bentuk, membolehkan visualisasi yang tepat dan kerja berpasukan yang berkesan. Ia popular di pelbagai sektor seperti automotif, aeroangkasa, dan reka bentuk produk untuk membangunkan serta memperhalusi model 3D yang rumit. Dengan perpustakaan ini, anda dapat mempercepat prototaip, simulasi, dan analisis reka bentuk, sekaligus mempermudah proses pembangunan produk.

Fitur visualisasi PythonOCC-Core sempurna untuk mencipta permainan dan pengalaman realiti maya. Dengan alat ini, anda boleh membina persekitaran yang menarik, simulasi yang menyerupai kehidupan, dan pengembaraan interaktif. Selain itu, perpustakaan ini menawarkan fungsi penting seperti bekerja dengan Pengimejan Perubatan, memanipulasi geometri 3D, mengimport dan mengeksport Data CAD, menjalankan simulasi lanjutan pada model 3D, memvisualisasikan kandungan 3D pada pelayar web, dan mempamerkan visual 3D melalui GUI Python yang popular. Perpustakaan ini juga memainkan peranan penting dalam bidang penyelidikan saintifik seperti fizik pengkomputeran, sains bahan, dan kejuruteraan bioperubatan. Banyak profesional perisian dan pemaju dalam pelbagai industri mendapati PythonOCC-Core menarik kerana ia menggabungkan kemudahan Python dan kekuatan OCCT. Dengan PythonOCC-Core, anda dapat meningkatkan kreativiti anda dan mempermudah proses CAD yang rumit. Ini membuka peluang baru untuk inovasi dan produktiviti dalam pemodelan dan reka bentuk 3D.

Previous Next

Mula Menggunakan PythonOCC-Core

Cara paling mudah untuk memasang pelepasan stabil PythonOCC-Core ialah menggunakan pip. Sila gunakan perintah berikut untuk pemasangan yang lancar.

Pasang PythonOCC-Core melalui pip

pip install pythonocc-core

Pasang PythonOCC-Core melalui Conda

conda install -c conda-forge pythonocc-core

Anda juga boleh memasang PythonOCC-Core melalui Conda menggunakan perintah berikut.

conda install -c 1adrianb face_alignment

Anda boleh memuat turun perpustakaan perkongsian yang telah dikompilasi daripada repositori Github.

Cipta & Urus Geometri 3D melalui Python

Perpustakaan sumber terbuka PythonOCC-Core telah menyertakan sokongan lengkap untuk mencipta dan mengurus model 3D dalam aplikasi Python. Selain itu, perpustakaan ini menawarkan set alat yang luas untuk mencipta dan memanipulasi bentuk geometri 3D, termasuk titik, lengkung, permukaan, dan pepejal. Ia menyediakan pelbagai algoritma untuk membina dan mengubah objek kompleks, seperti operasi Boolean, pembulatan tepi, dan pemotongan sudut. Contoh berikut menunjukkan bagaimana pembangun perisian boleh mencipta kotak sempadan geometri teras menggunakan perintah python.

Bagaimana untuk Mengira dan Memaparkan Kotak Pembatas dalam Aplikasi 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)

 

Automasi CAD menggunakan API Python

Pustaka sumber terbuka PythonOCC-Core telah menyediakan ciri-ciri yang sangat berguna untuk mengendalikan pelbagai tugas yang berkaitan dengan diagram CAD. Pustaka ini menyokong pelbagai format fail yang biasa digunakan dalam CAD, termasuk STEP, IGES, STL, dan BREP. Pustaka ini membolehkan pembangun mengautomasikan tugas CAD berulang, seperti menjana reka bentuk parametrik, melakukan transformasi geometri, dan menjalankan analisis geometri. Ia menyediakan API peringkat tinggi yang mempermudah pelaksanaan aliran kerja CAD, menjadikannya pilihan ideal untuk membina alat automasi CAD.

Bagaimana untuk Membuat Bentuk & Mengeksportnya ke Format Fail CAD STEP melalui API Python?

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")
 
 Melayu