مقایسه STL، OBJ و 3MF: کدام فرمت سهبعدی را انتخاب کنید؟
برای چاپ تکرنگی که فقط باید اسلایس شود، STL را به کار ببرید؛ وقتی مدل برای رندر یا موتور بازی بافت دارد، OBJ را؛ و اگر اسلایسر شما از 3MF پشتیبانی میکند و میخواهید واحدها، رنگها و چند قطعه در مسیر از دست نروند، 3MF را. فرمت تعیین میکند چه فرادادهای همراه مش منتقل شود؛ اما هرگز تعیین نمیکند که خود مش سالم است یا نه.
STL: فهرستی از مثلثها و دیگر هیچ
STL در سال ۱۹۸۷ برای نخستین دستگاههای استریولیتوگرافی شرکت 3D Systems ساخته شد و طراحیاش این خاستگاه را نشان میدهد. فایل یک فهرست ساده از مثلثهاست و هر مثلث با یک نرمال وجه و سه نقطهٔ گوشه توصیف میشود. جدول مشترک رأسها وجود ندارد، پس گوشهای که به شش مثلث میرسد شش بار نوشته میشود. فیلد واحد هم وجود ندارد: مختصات 25 میتواند میلیمتر، اینچ یا متر باشد و تقریباً همهٔ اسلایسرها میلیمتر را حدس میزنند. رنگ، بافت و نام قطعات در هستهٔ فرمت جایی ندارند، و دقیقاً به همین دلیل هر اسلایسر، نرمافزار CAD و سرویس چاپی هنوز آن را میخواند.
STL دو کدگذاری دارد. STL اسکی همهچیز را بهصورت متن مینویسد، با خطهایی مانند facet normal، outer loop و vertex 12.5 0 3.2، پس میتوانید آن را در ویرایشگر متن باز کنید و اعداد را بخوانید. STL باینری با یک سرآیند ۸۰ بایتی و یک شمارندهٔ ۴ بایتی مثلثها شروع میشود، سپس هر مثلث را بهصورت دوازده عدد اعشاری ۴ بایتی بهعلاوهٔ یک فیلد ویژگی ۲ بایتی ذخیره میکند: دقیقاً ۵۰ بایت برای هر مثلث. این قاعده پیشبینی حجم را آسان میکند. مدلی با یک میلیون مثلث در حالت باینری حدود 50 MB است و نسخهٔ اسکی همان مش معمولاً چهار تا شش برابر بزرگتر است، چون هر رقم یک نویسه میشود.
سادگی هم نقطهٔ قوت است و هم دام. STL نمیگوید قرار بوده یک قطعه باشد یا سه قطعه، با اینچ خروجی گرفته شده یا نه، و مثلثهایش واقعاً یک جسم توپر را میپوشانند یا نه. اسلایسر این را از مختصات خام درمیآورد و اگر اشتباه حدس بزند قطعهای 25.4 برابر کوچکتر یا دیواری گمشده میگیرید. برای قطعهٔ تکرنگی که خودتان طراحی کردهاید و با میلیمتر خروجی گرفتهاید، هیچکدام اهمیتی ندارد و STL همچنان فرمتی است که کمتر از همه رد میشود.
OBJ: چندضلعیها، UV و فایل جانبی متریال
OBJ از شرکت Wavefront Technologies آمده است که نرمافزار Advanced Visualizer آن را در اواخر دههٔ ۱۹۸۰ به کار میبرد، و در دههٔ ۱۹۹۰ بهعنوان فرمت متنی سادهای که تقریباً هر برنامهٔ سهبعدی میتوانست مبادله کند گسترش یافت. برخلاف STL فهرست رأسها را نگه میدارد و وجهها را با اندیس میسازد، پس گوشهٔ مشترک یک بار ذخیره میشود و وجهها میتوانند مثلث، چهارضلعی یا چندضلعی بزرگتر باشند. خطهایی که با v شروع میشوند موقعیتها، vt مختصات بافت (UV)، vn نرمالها و f وجهها را نگه میدارند. گروهها (g) و اشیا (o) بخشها را نام میدهند، پس OBJ با ساختار سالم از Blender، Maya یا ZBrush عبور میکند.
ظاهر مدل بیرون از فایل .obj است. یک خط mtllib فایل .mtl همراه را نام میبرد و خطهای usemtl مواد را به وجهها اختصاص میدهند. فایل .mtl رنگهایی مانند Kd (پخشی) را ذخیره میکند و با ورودیهایی مانند map_Kd wood.png به تصویرهای بافت اشاره میکند. بنابراین OBJ بافتدار دستکم سه فایل است: هندسه، کتابخانهٔ مواد و یک یا چند تصویر، که همه با مسیر نسبی ارجاع میشوند. اگر فقط .obj را بفرستید، گیرنده مدلی خاکستری میبیند. این جدایی در خط تولید بازی و جلوههای ویژه مفید است، چون هنرمندان بدون دستزدن به هندسه بافتها را عوض میکنند، و رایجترین دلیل ظاهر اشتباه یک مدل دانلودشده هم همین است.
OBJ در مقیاس همان نقطهٔ کور STL را دارد: فقط عدد خالی ذخیره میکند، بیواحد. بیشتر ابزارهای مدلسازی متر یا سانتیمتر مینویسند، اما اسلایسرها میلیمتر میخوانند، پس OBJ از یک فروشگاه دارایی بازی میتواند 10 یا 1,000 برابر اشتباه برسد. برای چاپ، OBJ چیزی به اسلایسر نمیدهد جز رنگ هر رأس در چند ابزار، پس اگر باید یک دارایی هنری را چاپ کنید، معمولاً سادهتر است بافتها را برای رندر نگه دارید و مش تمیز را به اسلایسر بدهید. در جهت عکس، تبدیل STL به OBJ کوتاهترین راه از مدل چاپی به جریان کار رندر یا بازی است.
3MF: بستهای ZIP مخصوص چاپ سهبعدی
3MF در سال ۲۰۱۵ توسط کنسرسیوم 3MF منتشر شد؛ گروهی که مایکروسافت با شرکتهایی از صنعت چاپ و CAD راه انداخت. فایل .3mf یک آرشیو ZIP است، همان قالبی که در ZIP در برابر RAR و 7z بررسی شد. اگر پسوند را به .zip تغییر دهید، یک فایل XML به نام 3D/3dmodel.model با مش، یک فایل انواع محتوا، فایلهای رابطه و اغلب تصویر بندانگشتی و پیکربندی اسلایسر میبینید. هر مدل واحد خود را اعلام میکند (میکرون، میلیمتر، سانتیمتر، اینچ، فوت یا متر)، پس مشکل مقیاس که STL و OBJ را آزار میدهد اصلاً پیش نمیآید. رنگها، مواد پایه، چند شیء و جایگاهشان روی صفحهٔ چاپ همه جزو مشخصاتاند.
مشخصات همچنین میخواهد مشها مانیفولد و با جهتگیری یکنواخت باشند: هر لبه دقیقاً بین دو مثلث مشترک باشد و همه رو به بیرون باشند. خروجیگیرهایی که از قواعد پیروی میکنند نمیتوانند هندسهٔ باز و خودمتقاطعی را بنویسند که STL بهراحتی نگه میدارد. پشتیبانی در ابزارهای کنونی گسترده است. PrusaSlicer، Bambu Studio، OrcaSlicer و UltiMaker Cura فرمت 3MF را میخوانند، PrusaSlicer و Bambu Studio کل پروژه را با تنظیمات چاپ و رنگهای نقاشیشده در .3mf ذخیره میکنند، و برنامهٔ 3D Builder مایکروسافت در ویندوز آن را مستقیم باز میکند. نقطهٔ ضعف، میانافزارهای قدیمی، پورتالهای مزرعهٔ چاپ و واردکنندههای CAD است که هنوز STL میخواهند؛ برای آنها 3MF را به STL تبدیل کنید و بپذیرید که اطلاعات اضافی جا میماند.
| from ↓ · to → | Units | Color | Textures | چند قطعه | تنظیمات چاپ | قاعدهٔ مانیفولد |
|---|---|---|---|---|---|---|
| STL | – STL to Units: no | – STL to Color: no | – STL to Textures: no | – STL to چند قطعه: no | – STL to تنظیمات چاپ: no | – STL to قاعدهٔ مانیفولد: no |
| OBJ | – OBJ to Units: no | OBJ to Color: yes | OBJ to Textures: yes | OBJ to چند قطعه: yes | – OBJ to تنظیمات چاپ: no | – OBJ to قاعدهٔ مانیفولد: no |
| 3MF | 3MF to Units: yes | 3MF to Color: yes | 3MF to Textures: yes | 3MF to چند قطعه: yes | 3MF to تنظیمات چاپ: yes | 3MF to قاعدهٔ مانیفولد: yes |
انتخاب فرمت سهبعدی متناسب با کار
فرمت درست به مقصد بعدی فایل بستگی دارد، نه به اینکه کدام تازهتر است. اگر مقصد بعدی اسلایسر است و قطعه تکرنگ، STL کافی است و هنوز فرمتی است که هر انجمن، کتابخانهٔ مدل و سرویس چاپ میشناسد. اگر مقصد رندرر، موتور بازی یا ابزار مدلسازی هنرمند دیگری است، OBJ همان UV، نرمال و گروههای نامدار را نگه میدارد که STL دور میریزد، و شکل متنیاش بررسی مشکلات را آسان میکند.
3MF وقتی ارزش خود را نشان میدهد که فایل بیش از هندسه حمل کند. چاپ چندرنگی که در Bambu Studio رنگآمیزی شده، صفحهای با دوازده قطعه که برای یک کار چیده شده، قطعهای که با اینچ طراحی شده، یا پروژهای که میخواهید با همان ارتفاع لایه و پرشدگی دوباره باز کنید، همه به 3MF نیاز دارند، چون هیچ فرمت دیگری در اینجا این اطلاعات را نگه نمیدارد. برای چند مقصد، غنیترین نسخه را بهعنوان نسخهٔ اصلی نگه دارید و نسخههای سادهتر را با مبدل مدل سهبعدی از آن بگیرید، نه با تبدیلهای زنجیرهای.
STL برای چاپ ساده
یک قطعه، یک رنگ، با میلیمتر خروجی گرفتهشده. در هر اسلایسر، پنجرهٔ واردکردن CAD و فرم آپلود سرویس چاپ باز میشود.
OBJ برای مدلهای بافتدار
UV، نرمال و گروههای نامدار برای Blender، Maya، Unity یا Unreal. فایل .mtl و تصویرهای بافت را همراهش بفرستید.
3MF برای اسلایسرهای امروزی
واحد واقعی، رنگ، چند شیء و تنظیمات چاپ در یک ZIP. فرمت پروژهٔ بومی PrusaSlicer و Bambu Studio.
پنج اشکال رایج در فایلهای سهبعدی
بیشتر چاپهای ناموفق و واردکردنهای خراب که گردن فرمت انداخته میشوند، در واقع مشکل مشاند یا فرضی که برنامهٔ گیرنده دربارهٔ آن داشته است. STL بیش از همه در معرض است چون فرادادهای برای گرفتن اشتباه ندارد؛ OBJ مشکل مقیاس و فایل گمشده را با آن شریک است؛ 3MF بیشتر آنها را از پایه دفع میکند، هرچند خروجیگیر بیدقت هنوز میتواند مش بد بنویسد. ردیفهای زیر را باز کنید تا ببینید هر مشکل چه شکلی دارد و معمولاً از کجا میآید.
مش نامانیفولد
لبههایی که فقط به یک مثلث یا به سه مثلث و بیشتر تعلق دارند، شکاف میان سطحها، یا دیوارهایی با ضخامت صفر. اسلایسر لایههای گمشده، سوراخهای تصادفی یا هشدار دربارهٔ لبههای باز نشان میدهد. علت در مدلسازی یا خروجیگیری است، اغلب از ادغام قطعاتی که فقط به هم میرسند.
نرمالهای وارونه
بعضی مثلثها رو به داخلاند. رندرر لکههای سیاه یا شفاف نشان میدهد و اسلایسر ممکن است آن ناحیه را فضای خالی بداند. دستور بازمحاسبهٔ نرمالها در Blender، Meshmixer یا ابزار تعمیر اسلایسر آن را درست میکند.
اشتباه میلیمتر و اینچ
قطعهای که با اینچ کشیده شده در اسلایسری که میلیمتر فرض میکند 25.4 برابر کوچکتر میرسد؛ سانتیمتر که میلیمتر خوانده شود خطای 10 برابری میدهد. STL و OBJ نمیتوانند واحد را ثبت کنند، پس هنگام خروجیگیری یا تبدیل آن را تعیین میکنید.
فایل .mtl یا بافتهای گمشده
OBJ که خاکستری یا ارغوانی باز میشود، کتابخانهٔ مواد یا تصویرهایش را گم کرده، یا مسیرهای داخل .mtl به پوشهای روی رایانهٔ هنرمند اصلی اشاره میکنند. همهٔ فایلها را در یک پوشه نگه دارید و با هم زیپ کنید.
فایلهای STL اسکی بسیار بزرگ
یک اسکن پرجزئیات که بهصورت STL اسکی ذخیره شود میتواند از چند صد مگابایت بگذرد، اسلایسر را کند میکند و به سقف آپلود میخورد. خروجیگیری دوبارهٔ همان مش بهصورت STL باینری حجم را بدون تغییر حتی یک مثلث به حدود یکپنجم میرساند.
حجم معمول هر فرمت چقدر است
حجم از ساختار میآید. STL باینری ثابت و ۵۰ بایت برای هر مثلث است، پس پیش از خروجیگیری میتوانید حسابش کنید. STL اسکی هر گوشه را بهصورت متن تکرار میکند و معمولاً چهار تا شش برابر باینری میشود. OBJ هر رأس مشترک را یک بار ذخیره و با اندیس ارجاع میدهد، پس برای یک مش بستهٔ معمولی کوچکتر از STL اسکی و تقریباً در حد STL باینری است، و اگر UV و نرمال هم داشته باشد بزرگتر. 3MF یک XML اندیسدار را ذخیره و درون ZIP فشرده میکند، که معمولاً آن را برای همان هندسه کوچکترین از میان این سه میکند.
اعداد زیر برای یک مش بستهٔ حدود 500,000 مثلثی، مثل یک مجسمهٔ ریز پرجزئیات، معمولاند. فایلهای واقعی با دقت مختصات و خروجیگیر فرق میکنند، پس آنها را مرتبهٔ بزرگی بدانید؛ وقتی سرویس چاپ سقف آپلود دارد یا STL خروجیگرفته از 3MF چند برابر بزرگتر درمیآید به کار میآیند.
- STL باینری (500,000 مثلث × 50 بایت)
- ≈ 25 MB
- STL اسکی، همان مش، معمول
- ≈ 100–150 MB
- OBJ بدون UV، معمول
- ≈ 15–30 MB
- 3MF پس از فشردهسازی ZIP، معمول
- ≈ 5–12 MB
تبدیل فرمت چه چیزی را درست میکند و چه چیزی را هرگز
تبدیل فرمت، مثلثها را از یک قالب میخواند و در قالبی دیگر مینویسد. هر چیزی که فرمت مقصد بتواند ذخیره کند منتقل میشود و هر چه را نتواند، حذف میشود. برای همین تبدیل STL به OBJ برای هندسه بدون افت است، تبدیل 3MF به STL رنگها، واحدها و چیدمان صفحهٔ چاپ را از دست میدهد و تبدیل OBJ به STL بافتها و نام قطعهها را حذف میکند. در ابزارهای سهبعدی UltKit تصمیمهای اضافی بهصورت صریح در اختیار شماست: واحد مدل به مبدل میگوید فایل مبدأ با چه مقیاسی ساخته شده، محور بالا تفاوت Y-up و Z-up میان موتورهای بازی و اسلایسرها را مدیریت میکند و ادغام در یک مش تعیین میکند قطعههای جداگانه جدا بمانند یا نه.
کاری که هیچ تبدیلی انجام نمیدهد، تعمیر مش است. اگر یک فایل STL سوراخ داشته باشد، فایل OBJ ساختهشده از آن هم همان سوراخ را دارد و خروجیگیر 3MF یا آن را نمیپذیرد یا همانطور مینویسد. تعمیر مرحلهای جداست که در یک ابزار مش یا ترمیمگر داخلی اسلایسر انجام میشود و بهتر است یک بار روی فایل اصلی انجام شود، پیش از هر خروجی دیگر. مقیاس هم همینطور است: تبدیل نمیتواند بفهمد قطعه قرار بوده بر حسب اینچ باشد، مگر خودتان بگویید. جزئیات نیز چنیناند: STL با تعداد چندضلعی کم، به OBJ یا 3MF کمچندضلعی تبدیل میشود، پس وقتی کیفیت مهم است، دوباره از مدل اصلی خروجی بگیرید.
تغییر فرمت چه کاری انجام میدهد
- همان مثلثها را به قالبی منتقل میکند که برنامهٔ دیگر میپذیرد
- واحدی را که در واحد مدل انتخاب میکنید اعمال میکند و خطای مقیاس 25.4 برابر یا 10 برابر را رفع میکند
- مدل را با محور بالا میان Y-up و Z-up میچرخاند
- با نوشتن نسخهٔ باینری، حجم STL متنی را کم میکند
- بسته به ادغام در یک مش، قطعههای جدا را نگه میدارد یا ادغام میکند
چه چیزی را دقیقاً مثل قبل میگذارد
- سوراخها، لبههای باز و هندسهٔ non-manifold
- نرمالهای وارونه یا ناسازگار
- قطعههای خودمتقاطع و دیوارههای بدون ضخامت
- جزئیاتی که هنگام اولین خروجیگیری مش از دست رفته است
- رنگها و بافتها، وقتی فرمت مقصد جایی برای آنها ندارد
جدول تصمیمگیری: STL، OBJ یا 3MF
هر وقت این پرسش مطرح میشود، دو فرمت دیگر هم به میان میآید. STEP (ISO 10303) بهجای مثلث، جسمها و سطحهای دقیق را ذخیره میکند؛ پس وقتی قطعه باید برای ویرایش به Fusion 360، SolidWorks یا FreeCAD برگردد، فرمت مناسب همین است. GLB، شکل باینری glTF 2.0 از Khronos Group، مش را همراه مواد و بافتهایش در یک فایل و با واحد متر ذخیره میکند و فرمت نمایش مدل در وب یا واقعیت افزودهٔ اندروید است.
برای سه فرمتی که این مقاله بررسی میکند، جدول زیر انتخاب را بر اساس مقصد خلاصه میکند. اگر دو ردیف با شما جور بود، فرمتی را بردارید که اطلاعات بیشتری دارد و بعداً نسخهٔ سادهتر را خروجی بگیرید؛ رفتن از 3MF به STL آسان است، اما بازسازی رنگها یا واحدهای ازدسترفته کار دستی است.
| وضعیت | بهترین فرمت | دلیل |
|---|---|---|
| قطعهٔ تکرنگ برای هر اسلایسری | STL (باینری) | پشتیبانی همگانی؛ اسلایسر به چیز دیگری نیاز ندارد |
| بارگذاری در کتابخانهٔ مدل یا سرویس چاپ | STL، و در صورت امکان 3MF هم | STL همیشه پذیرفته میشود؛ 3MF واحدها و رنگها را نگه میدارد |
| چاپ چندرنگ یا چندمادهای | 3MF | تنها فرمت اینجا که رنگها و مواد هر قطعه را برای اسلایسرها ذخیره میکند |
| صفحهٔ چاپ با چند قطعه و تنظیمات چاپ | 3MF | جای قرارگیری اشیا و تنظیمات اسلایسر را در یک فایل ذخیره میکند |
| قطعهای که بر حسب اینچ طراحی شده | 3MF | واحد را اعلام میکند، پس چیزی در 25.4 ضرب نمیشود |
| مدل بافتدار برای Blender، Unity یا Unreal | OBJ (بههمراه .mtl و تصاویر) | UV، نرمالها و انتساب مواد را حفظ میکند |
| بررسی سریع در ویرایشگر متن | OBJ یا STL متنی | متن ساده که خطبهخط خوانده میشود |
| سفتافزار یا نرمافزار قدیمی که فقط STL را فهرست میکند | STL | اضافات را حذف کنید و فقط مش را بفرستید |
نکتههای کلیدی
- STL فقط مثلثها را ذخیره میکند: بدون واحد، بدون رنگ، و در شکل باینری 50 بایت برای هر مثلث.
- OBJ مختصات UV، نرمال و گروههای نامدار را اضافه میکند، اما رنگها و بافتهایش به یک فایل .mtl جدا و فایلهای تصویر وابسته است.
- 3MF یک ZIP از XML است که واحدها، رنگها، چند شیء و تنظیمات چاپ را ثبت میکند و مش بسته میخواهد.
- STL را برای چاپ ساده و تکرنگ، OBJ را برای مدلهای بافتدار در هنر و بازی و 3MF را هر جا که اسلایسر شما پشتیبانی میکند به کار ببرید.
- تبدیل، قالب را عوض میکند نه مش را: سوراخها و نرمالها را در ابزار مش تعمیر کنید و واحد را خودتان تعیین کنید.
پرسشهای متداول
آیا 3MF جایگزین STL میشود؟
برای چاپ، بهکندی. PrusaSlicer و Bambu Studio پروژهها را از قبل با 3MF ذخیره میکنند، اما STL همچنان فرمتی است که همهٔ ابزارها و کتابخانههای مدل میپذیرند، پس این دو سالها کنار هم میمانند.
آیا STL باینری میتواند رنگ را ذخیره کند؟
به شکل استاندارد نه. چند برنامه رنگ را در فیلد ویژگی 2 بایتی هر مثلث مینویسند، اما بیشتر اسلایسرها آن را نادیده میگیرند؛ پس وقتی رنگ مهم است از 3MF یا OBJ استفاده کنید.
چرا فایل OBJ من پس از دانلود خاکستری نمایش داده میشود؟
فایل .mtl یا تصاویر بافت جا ماندهاند، یا مسیرهای داخل .mtl به پوشههایی اشاره میکنند که روی رایانهٔ شما وجود ندارند. فایلهای .obj و .mtl و تصاویر را در یک پوشه بگذارید و مدل را دوباره بارگذاری کنید.
STL اسکی (ASCII) یا باینری، کدام چاپ دقیقتری میدهد؟
در عمل هیچکدام دقیقتر چاپ نمیکنند. هر دو همان مثلثها را توصیف میکنند؛ باینری مختصات را بهصورت عدد اعشاری 32 بیتی و متنی بهصورت نوشتار ذخیره میکند و فایلهای باینری معمولاً چند برابر کوچکترند.
آیا میتوانم OBJ را برای چاپ دوباره به STL تبدیل کنم؟
بله. مثلثها بدون تغییر منتقل میشوند، اما UV، مواد و بافتها حذف میشوند چون STL جایی برای آنها ندارد. بعد از تبدیل مقیاس را بررسی کنید، چون فایلهای OBJ ابزارهای مدلسازی اغلب بر حسب متر یا سانتیمتر هستند.
برای اشتراکگذاری مدل تا دیگران آن را چاپ کنند، از کدام فرمت استفاده کنم؟
برای بیشترین سازگاری یک STL ارائه دهید و اگر مدل چند قطعه یا رنگ دارد یا بر حسب اینچ طراحی شده، یک 3MF هم کنارش بگذارید تا کسانی که اسلایسر جدید دارند، تنظیمات کامل را بگیرند.
ادامه مطالعه
مقایسه ZIP و RAR و 7z: کدام فرمت فشرده بهتر است؟
ZIP روی هر رایانه و گوشی باز میشود، 7z کمحجمتر است و نام فایلها را پنهان میکند، RAR رکورد بازیابی دارد. مقایسهٔ فشردهسازی، رمزگذاری و پشتیبانی.
Lucas Ferreira · ۵ مهر ۱۴۰۵ · 11 دقیقه مطالعه
TTF یا OTF یا WOFF: کدام فرمت فونت برای نصب یا وب؟
TTF یا OTF را روی ویندوز، macOS و لینوکس نصب کنید؛ در وبسایت WOFF2 و WOFF پشتیبان. محتوای هر فرمت فونت، حجم فایلها و اثر تبدیل.
Jonas Weber · ۱۹ شهریور ۱۴۰۵ · 11 دقیقه مطالعه
تبدیل PNG به SVG: وکتور کردن لوگو، آیکون و طرح خطی
PNG فقط با ردیابی به SVG واقعی تبدیل میشود. کدام عکسها مناسباند، PNG را چطور آماده کنید، چه تنظیماتی بزنید و مسیرها را چگونه بررسی کنید.
Jonas Weber · ۱۲ مهر ۱۴۰۵ · 12 دقیقه مطالعه