1. محصولات
  2.   سه بعدی
  3.   Python
  4.   PythonOCC-Core
 
  

کتابخانه پایتون منبع باز برای مدل‌سازی 3D و تبادل داده

کتابخانه رایگان پایتون برای مدل‌سازی 3D و مدیریت تبادل داده. این امکان را می‌دهد تا با فرمت‌های فایل 3D CAD، BIM، PLM و CAM از طریق API پایتون به صورت آنلاین کار کنید.

کتابخانه PythonOCC-Core چیست؟

PythonOCC-Core یک کتابخانه رایگان مدل‌سازی سه‌بعدی و خودکارسازی CAD است. این کتابخانه از پایتون، یک زبان برنامه‌نویسی پرکاربرد، بر روی هسته OpenCASCADE Technology (OCCT) استفاده می‌کند. این ترکیب پایه‌ای قوی برای ساخت، تغییر و بررسی اشکال سه‌بعدی پیچیده فراهم می‌آورد. با ترکیب سادگی پایتون و ابزارهای قدرتمند مدل‌سازی OCCT، شما یک ابزار چندمنظوره و مؤثر در اختیار دارید. با رابط کاربری پایتونی شهودی و مجموعه گسترده‌ای از قابلیت‌ها، این کتابخانه تجربه‌ای یکپارچه برای مبتدیان و توسعه‌دهندگان باتجربه در این حوزه فراهم می‌کند. این ابزار به معماران و مهندسانی مانند شما امکان می‌دهد مدل‌های پارامتریک بسازند، طرح‌های ساختمانی تولید کنند و تحلیل‌های ساختاری انجام دهند. این ابزار جریان کار طراحی را بهبود می‌بخشد، امکان تجسم دقیق و کار تیمی مؤثر را فراهم می‌کند. این کتابخانه در بخش‌های مختلفی مانند خودروسازی، هوافضا و طراحی محصول برای توسعه و بهبود مدل‌های سه‌بعدی پیچیده محبوب است. با استفاده از این کتابخانه می‌توانید فرآیند نمونه‌سازی، شبیه‌سازی و تحلیل طراحی را تسریع کنید و بدین‌سان فرآیند توسعه محصول را ساده‌سازی نمایید.

ویژگی‌های تصویری PythonOCC-Core برای ایجاد بازی‌ها و تجربه‌های واقعیت مجازی ایده‌آل هستند. با این ابزار می‌توانید محیط‌های جذاب، شبیه‌سازی‌های واقعی و ماجراجویی‌های تعاملی بسازید. علاوه بر این، کتابخانه توابع اساسی مانند کار با تصویر پزشکی، دستکاری هندسه سه‌بعدی، واردات و صادرات داده‌های CAD، اجرای شبیه‌سازی‌های پیشرفته بر روی مدل‌های سه‌بعدی، نمایش محتوای سه‌بعدی در مرورگرهای وب و نمایش گرافیک‌های سه‌بعدی از طریق رابط‌های کاربری محبوب پایتون را فراهم می‌کند. کتابخانه همچنین نقش مهمی در حوزه‌های تحقیق علمی مانند فیزیک محاسباتی، علم مواد و مهندسی زیست‌پزشکی ایفا می‌کند. بسیاری از متخصصان نرم‌افزار و توسعه‌دهندگان در صنایع مختلف PythonOCC-Core را جذاب می‌دانند زیرا ترکیبی از سادگی پایتون و قدرت OCCT است. با PythonOCC-Core می‌توانید خلاقیت خود را ارتقا دهید و فرآیندهای پیچیده CAD را ساده‌سازی کنید. این امر امکانات جدیدی برای نوآوری و بهره‌وری در مدل‌سازی و طراحی سه‌بعدی فراهم می‌آورد.

Previous Next

شروع کار با 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 دانلود کنید.

ایجاد و مدیریت هندسه‌های سه‌بعدی با پایتون

کتابخانهٔ منبع باز PythonOCC-Core پشتیبانی کامل برای ایجاد و مدیریت مدل‌های سه‌بعدی در برنامه‌های پایتون را فراهم کرده است. علاوه بر این، این کتابخانه مجموعهٔ وسیعی از ابزارها را برای ساخت و دستکاری اشکال هندسی سه‌بعدی، از جمله نقاط، منحنی‌ها، سطوح و جامدها ارائه می‌دهد. این کتابخانه طیف گسترده‌ای از الگوریتم‌ها را برای ساخت و تغییر اشیای پیچیده، مانند عملیات بولی، گرد کردن لبه‌ها و فیلتینگ فراهم می‌کند. مثال زیر نشان می‌دهد که توسعه‌دهندگان نرم‌افزار چگونه می‌توانند جعبه‌های محصور کنندهٔ هندسهٔ اصلی را با استفاده از دستورات پایتون ایجاد کنند.

چگونه جعبه‌های محدودکننده را در برنامه‌های پایتون محاسبه و نمایش دهیم؟

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 پایتون

کتابخانه منبع باز PythonOCC-Core ویژگی‌های بسیار مفیدی برای مدیریت وظایف مختلف مرتبط با نمودارهای CAD فراهم کرده است. این کتابخانه از فرمت‌های فایل متنوعی که به طور معمول در CAD استفاده می‌شوند، از جمله STEP، IGES، STL و BREP پشتیبانی می‌کند. این کتابخانه به توسعه‌دهندگان امکان می‌دهد وظایف تکراری CAD را خودکار کنند، مانند تولید طراحی‌های پارامتریک، انجام تبدیلات هندسی و انجام تحلیل‌های هندسی. این کتابخانه یک API سطح بالا ارائه می‌دهد که پیاده‌سازی جریان‌های کاری CAD را ساده می‌کند و آن را به گزینه‌ای ایده‌آل برای ساخت ابزارهای خودکارسازی CAD تبدیل می‌کند.

چگونه شکل ایجاد کرده و آن را از طریق API پایتون به فرمت فایل CAD STEP صادر کنیم؟

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")
 
 فارسی