مقدمه
ما در حال انتشار Aspose.3D FOSS برای Python, یک کتابخانهٔ pure-Python برای خواندن، نوشتن و تبدیل فرمتهای رایج 3D. کتابخانه در PyPI به عنوان aspose-3d-foss,، دارای مجوز MIT است و هیچ وابستگی خارجی ندارد.
اگر تا به حال نیاز داشتهاید که فایلهای 3D را بهصورت برنامهنویسی بررسی یا تبدیل کنید (تعداد رئوس مش را استخراج کنید، هندسه OBJ را به یک اسکریپت پردازش منتقل کنید، یا بهصورت دستهای فایلهای STL را به glTF برای یک نمایشگر وب تبدیل کنید)، این کتابخانه برای چنین مورد استفادهای ساخته شده است. این کتابخانه نیازی به درایور گرافیکی، ماژول بسط بومی یا هرگونه اتصال ابری ندارد.
چه چیزهایی گنجانده شده است
نمودار صحنه اصلی
هر فایل به یک Scene شیء که ساختار گرهای فایل اصلی را بازتاب میدهد. گرهها حامل Transform (translation, rotation, scale) و یک یا چند موجودیت پیوستشده مانند Mesh, Camera, یا Light. گراف صحنه صرفنظر از فرمت منبع یکسان است، بنابراین کدی که برای پیمایش و پردازش هندسه نوشته شده است، بدون تغییر در تمام فرمتهای پشتیبانیشده کار میکند.
دسترسی به هندسه
Mesh objects موارد زیر را در دسترس میگذارند:
control_points: فهرست موقعیتهای راس به صورتVector4(x, y, z, w)polygons:فهرست لیستهای face index lists (آریتی دلخواه چندضلعی، نه فقط مثلثها)get_element(VertexElementType):لایههای دادهٔ رأس نامگذاریشده را برای normals, UVs, vertex colours, and smoothing groups بازیابی میکند
مواد
LambertMaterial و PhongMaterial ویژگیهای متریال خواندهشده از OBJ را حمل میکند .mtl فایلها (ambient, diffuse, specular, emissive, transparency, shininess). مواد در دور سفر بارگذاری‑ذخیره برای قالبهایی که از آنها پشتیبانی میکنند، باقی میمانند.
ابزارهای ریاضی
Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, و BoundingBox به عنوان انواع مقدار سبک برای محاسبات هندسی گنجانده شدهاند.
انیمیشن
این AnimationClip, AnimationNode, KeyframeSequence,، و KeyFrame کلاسها دسترسی به دادههای انیمیشن کلیدفریم را از فرمتهایی که این دادهها را حمل میکنند، مانند glTF و COLLADA، فراهم میکنند.
شروع سریع
pip install aspose-3d-foss
یک فایل 3D را بارگذاری کنید و تعداد رئوس هر مش را چاپ کنید:
from aspose.threed import Scene
from aspose.threed.entities import Mesh
scene = Scene.from_file("model.obj")
def visit(node):
for entity in node.entities:
if isinstance(entity, Mesh):
print(f"{node.name}: {len(entity.control_points)} vertices, "
f"{len(entity.polygons)} polygons")
for child in node.child_nodes:
visit(child)
visit(scene.root_node)
فایل یکسان را به glTF تبدیل کنید:
from aspose.threed import Scene
from aspose.threed.formats import GltfSaveOptions
scene = Scene.from_file("model.obj")
scene.save("model.gltf", GltfSaveOptions())
این برنامه کامل است. هیچ فایل پیکربندی، هیچ کلید API، هیچ تماس شبکهای وجود ندارد.
فرمتهای پشتیبانیشده
| قالب | Extension(s) | بارگذاری | ذخیره | یادداشتها |
|---|---|---|---|---|
| Wavefront OBJ | .obj | بله | بله | .mtl پشتیبانی از بارگذاری مواد |
| STL | .stl | بله | بله | باینری و ASCII؛ گزینهٔ وارونگی سیستم مختصات |
| glTF 2.0 | .gltf, .glb | بله | بله | پشتیبانی از GLB (باینری خودمحافظت) |
| COLLADA | .dae | بله | بله | ColladaSaveOptions در دسترس با flip_coordinate_system, enable_materials, indented |
| 3MF | .3mf | بله | بله | مناسب برای فرآیندهای چاپ سهبعدی |
| FBX | .fbx | جزئی | N/A | فقط توکنساز؛ تجزیهگر کامل در حال پیشرفت |
تشخیص قالب بهصورت خودکار از پسوند فایل انجام میشود. گزینههای بارگذاری و ذخیرهسازی مخصوص قالب (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) برای کنترل دقیق در دسترس هستند.
منبع باز و رایگان
این کتابخانه تحت مجوز MIT است. میتوانید آن را در برنامههای تجاری استفاده کنید، تغییر دهید و بدون محدودیت توزیع کنید. کد منبع در گیتهاب تحت سازمان Aspose موجود است.
هیچ سطوح استفادهای، هیچ محدودیت توکنی و هیچ تلهمتری وجود ندارد. کتابخانه تمام پردازشها را بهصورت محلی انجام میدهد.
وابستگیها: هیچ. بسته بهصورت یک pure-Python wheel بدون افزونههای C و بدون نیازهای زمان اجرا از طرف سوم نصب میشود.
شروع کار
- نصب:
pip install aspose-3d-foss - نحوه: بارگذاری فایلها: چگونه مدلهای سهبعدی را در Python بارگذاری کنیم
- نحوه: تبدیل فایلها: چگونه مدلهای سهبعدی را در Python تبدیل کنیم
- مرجع API: مرجع API Aspose.3D FOSS برای Python
- PyPI: aspose-3d-foss در PyPI
نتیجهگیری
نسخه 26.1.0 Aspose.3D FOSS برای Python شامل رایجترین فرمتهای فایل سهبعدی مورد استفاده در ابزارها، خطوط لوله و برنامههای وب (OBJ، STL، glTF، COLLADA و 3MF) با یک API یکپارچه Python و بدون مشکل نصب است. اگر با باگی مواجه شدید، یک مورد لبهای پشتیبانینشده یا فرمت مورد نیاز برای افزودن داشتید، لطفاً یک issue در گیتهاب باز کنید. ما بهطور فعال کتابخانه را نگهداری میکنیم و از مشارکتها استقبال میکنیم.