บทความ › เครื่องมือและความปลอดภัย

ไฟล์ STL 3MF STEP OBJ ต่างกันยังไง เลือกแบบไหนส่งเข้า slicer

STL เก็บแค่สามเหลี่ยมไม่มีหน่วย 3MF เก็บหน่วย สี และค่าพิมพ์ STEP เก็บผิวโค้งจริงแก้ต่อได้ OBJ มาจากงานกราฟิก พร้อมวิธีตั้งความละเอียดตอน export ไม่ให้รูกลายเป็นเหลี่ยม

เริ่มต้น อ่าน 6 นาที 22 ตุลาคม 2569 ออกแบบชิ้นงานให้พิมพ์ 3 มิติได้จริง · บทที่ 2/10

อ่านจบแล้วจะรู้
  • STL มีแต่สามเหลี่ยม ไม่มีหน่วย slicer เดาว่าเป็นมิลลิเมตร ไฟล์ที่ออกแบบเป็นนิ้วจึงเล็กลง 25.4 เท่า
  • 3MF ระบุหน่วยในไฟล์ (ค่าเริ่มต้นมิลลิเมตร) เก็บหลายชิ้น สี วัสดุ และ slicer ใช้เก็บโปรเจกต์พร้อมค่าพิมพ์
  • STEP เก็บผิวแบบคณิตศาสตร์ เปิดแก้ใน CAD ตัวอื่นได้ ใช้ส่งต่อแบบให้คนออกแบบ ไม่ใช่แค่ส่งให้เครื่องพิมพ์
  • ตอน export เป็น mesh ตั้งค่าความเบี่ยงเบนให้เล็กพอ รูขนาดเล็กจะได้ไม่เป็นเหลี่ยมจนน็อตใส่ไม่ลง

ไฟล์สำหรับงานพิมพ์ 3 มิติมีสี่แบบที่เจอบ่อย: STL สามเหลี่ยมล้วน ไม่มีหน่วย 3MF สามเหลี่ยมพร้อมหน่วย สี และค่าพิมพ์ในไฟล์เดียว STEP ผิวโค้งแบบคณิตศาสตร์ที่ CAD เปิดแก้ต่อได้ และ OBJ จากงานกราฟิก ใช้ STL หรือ 3MF ส่งเข้า slicer ใช้ STEP ส่งต่อแบบ และเก็บไฟล์ต้นฉบับของ CAD ไว้เสมอ บทนี้อธิบายว่าแต่ละแบบเก็บอะไร และตั้งความละเอียดตอน export ยังไง

Mesh กับ solid: รากของความต่าง

  • Mesh แทนผิวด้วยสามเหลี่ยมแบน ๆ ทรงกระบอกจึงเป็นปริซึมหลายเหลี่ยม ยิ่งสามเหลี่ยมมากยิ่งกลม STL, 3MF, OBJ เป็นแบบนี้
  • Solid (B-rep) เก็บผิวเป็นสมการ ทรงกระบอกคือทรงกระบอกจริง รัศมี 5 mm ทุกจุด STEP เป็นแบบนี้ และไฟล์ต้นฉบับของ CAD parametric ก็เช่นกัน

slicer ทุกตัวทำงานบน mesh แม้เปิด STEP ได้ ก็แปลงเป็นสามเหลี่ยมตอนนำเข้า (PrusaSlicer เขียนไว้ในคู่มือว่า STEP ถูก triangulate ตอน import) ความต่างคือใครเป็นคนแปลง และแปลงละเอียดแค่ไหน

ตารางเทียบสี่แบบ

STL3MFSTEPOBJ
เก็บผิวแบบmeshmeshsolid (ผิวจริง)mesh
หน่วยไม่มีมี ค่าเริ่มต้น mmมีไม่มีมาตรฐาน
สี / วัสดุไม่มีมาตรฐานมี (ส่วนขยาย Materials)ไม่ใช้ในงานพิมพ์มี แต่ slicer มักไม่อ่าน
หลายชิ้นในไฟล์ชิ้นเดียวต่อไฟล์ (ตามนิยามรูปแบบ)ได้ พร้อมตำแหน่งได้ได้
ค่าพิมพ์ของ slicerไม่มีslicer เก็บโปรเจกต์ได้ไม่มีไม่มี
แก้แบบต่อใน CADยากยากได้ยาก
ใช้เมื่อส่งเข้าเครื่องพิมพ์ เข้ากันได้กว้างสุดส่งงานพร้อมค่าพิมพ์ส่งแบบให้คนออกแบบต่อโมเดลจากงานกราฟิก/สแกน

STL: เรียบง่ายที่สุด จึงอยู่มานานที่สุด

STL เก็บแค่รายการสามเหลี่ยม แต่ละอันมีจุดยอด 3 จุดกับเวกเตอร์ตั้งฉาก ไม่มีสี ไม่มีหน่วย Library of Congress บันทึกโครงสร้างแบบ binary ไว้: ส่วนหัว 80 ไบต์ ตัวเลขจำนวนสามเหลี่ยม 4 ไบต์ แล้วสามเหลี่ยมละ 50 ไบต์

ตัวอย่างคำนวณขนาดไฟล์ ฟิกเกอร์ 200,000 สามเหลี่ยม

  1. 80 + 4 = 84 ไบต์ส่วนหัว
  2. 200,000 × 50 = 10,000,000 ไบต์
  3. รวม 10,000,084 ไบต์ ≈ 10 MB แบบ ASCII ใหญ่กว่านี้หลายเท่าเพราะเก็บตัวเลขเป็นข้อความ

ปัญหาเรื่องหน่วย: ตัวเลข 10 ใน STL ไม่รู้ว่าเป็น 10 mm หรือ 10 นิ้ว slicer ส่วนใหญ่ถือว่าเป็นมิลลิเมตร ไฟล์ที่ออกแบบเป็นนิ้วจึงเล็กลง 25.4 เท่า แก้ด้วยการขยาย 2540% หรือคำสั่ง “convert from imperial units” ใน PrusaSlicer

STL ไม่บอกหน่วย ทุกครั้งที่โหลดไฟล์จากที่อื่น วัดขนาดใน slicer ก่อนกดพิมพ์

3MF: ไฟล์เดียวครบทั้งงาน

3MF เป็นมาตรฐานเปิดจาก 3MF Consortium (เป็นมาตรฐาน ISO/IEC 25422:2025 แล้ว) ข้างในคือแพ็กเกจ ZIP ที่มี XML ตามหลัก Open Packaging Conventions สิ่งที่ได้เพิ่มจาก STL:

  • หน่วยระบุในไฟล์ เลือกได้ตั้งแต่ micron ถึง meter ค่าเริ่มต้นมิลลิเมตร ปัญหาเล็ก 25.4 เท่าจึงหมดไป
  • หลายชิ้นพร้อมตำแหน่ง เปิดแล้วจัดวางบนฐานพิมพ์เหมือนตอนบันทึก
  • สีและวัสดุ ผ่านส่วนขยาย Materials and Properties ใช้กับงานหลายสี
  • ค่าพิมพ์ PrusaSlicer ใช้ 3MF เป็นรูปแบบหลักและเก็บไฟล์โปรเจกต์ (ชิ้นงาน + การจัดวาง + ค่าพิมพ์) เป็น 3MF slicer รุ่นใหม่อื่น ๆ ก็ทำแบบเดียวกัน

ข้อควรรู้: ค่าพิมพ์ในโปรเจกต์ 3MF ของ slicer แต่ละค่ายเก็บในส่วนเฉพาะของโปรแกรมนั้น เปิดข้ามค่ายได้รูปทรง แต่ค่าพิมพ์อาจไม่ตามมาครบ

STEP: ส่งแบบ ไม่ใช่ส่งงานพิมพ์

STEP เป็นมาตรฐานแลกเปลี่ยนแบบระหว่างโปรแกรม CAD เก็บผิวโค้งจริง เปิดใน Fusion, Onshape, FreeCAD แล้วเจาะรูเพิ่ม ตัดมุม หรือวัดขนาดได้ถูกต้อง แต่ไม่มีประวัติขั้นตอน (history) ของคนออกแบบเดิมติดมาด้วย

PrusaSlicer เปิด STEP ได้ตั้งแต่เวอร์ชัน 2.5 และแปลงเป็น mesh ตอนนำเข้า สะดวกเมื่อมีแค่ไฟล์ STEP แต่ความละเอียดตอนแปลงขึ้นกับ slicer ไม่ใช่เรา

ผู้ผลิตชิ้นส่วนมักให้ STEP ของบอร์ด สวิตช์ หรือขั้วต่อ ดาวน์โหลดมาวางใน CAD เพื่อออกแบบกล่องรอบมันได้พอดี

OBJ: มาจากโลกกราฟิก

OBJ เป็น mesh ที่ใช้กันมากในงานกราฟิก 3 มิติและงานสแกน เก็บพิกัดพื้นผิวและอ้างไฟล์วัสดุแยก (.mtl) ได้ PrusaSlicer ระบุว่าข้อมูลวัสดุและพื้นผิวถูกข้ามตอน import ได้แค่รูปทรง ใช้เมื่อโมเดลมาจาก Blender หรือเครื่องสแกนเท่านั้น

วงกลม 12 เหลี่ยม0.34 mmวงกลม 36 เหลี่ยม0.04 mmวงกลม 90 เหลี่ยม0.006 mmระยะเบี่ยงจากวงกลมรัศมี 10 mm
ยิ่งเหลี่ยมมาก ผิวยิ่งใกล้วงกลมจริง แต่เกิน 36 แทบไม่ต่าง

ตั้งความละเอียดตอน export ให้รูไม่เป็นเหลี่ยม

ตอนแปลง solid เป็น mesh โปรแกรมต้องเลือกว่าใช้สามเหลี่ยมกี่อัน Fusion ให้ตั้ง surface deviation (ระยะที่ mesh ห่างจากผิวจริงได้), normal deviation (มุมเบี่ยง), maximum edge length และ aspect ratio หรือเลือกชุดสำเร็จ Low/Medium/High FreeCAD และ OpenSCAD ก็มีค่าคล้ายกัน (OpenSCAD ใช้ $fn กำหนดจำนวนเหลี่ยมของวงกลม)

ตัวอย่างคำนวณ: ทรงกระบอกรัศมี 10 mm ระยะที่ด้านแบนของรูปหลายเหลี่ยมเข้าไปจากวงกลมจริง = r × (1 − cos(180° ÷ N)) เมื่อ N คือจำนวนเหลี่ยม

  1. N = 12: 10 × (1 − cos 15°) = 10 × (1 − 0.9659) ≈ 0.34 mm เห็นเหลี่ยมชัด รูน็อตจะแคบลงตรงกลางด้าน
  2. N = 36: 10 × (1 − cos 5°) = 10 × (1 − 0.9962) ≈ 0.04 mm เล็กกว่าความกว้างเส้น 0.4 mm มาก มองไม่เห็น
  3. N = 90: 10 × (1 − cos 2°) ≈ 0.006 mm ละเอียดเกินกว่าเครื่อง FDM พิมพ์ได้ ไฟล์ใหญ่ขึ้นเปล่า ๆ

สรุปจากตัวเลขข้างบน: ตั้ง surface deviation ราว 0.01–0.05 mm พอสำหรับเครื่อง FDM หัว 0.4 mm ละเอียดกว่านั้นได้แค่ไฟล์ใหญ่

ข้อผิดพลาดที่เจอบ่อย

  • เก็บแค่ STL ทิ้งไฟล์ต้นฉบับ แก้แบบทีหลังไม่ได้ ต้องวาดใหม่
  • export ด้วยความละเอียดต่ำ รู 3 mm กลายเป็นหกเหลี่ยม น็อตใส่ไม่ลง แล้วไปโทษเครื่องพิมพ์
  • ไม่เช็กขนาดหลังโหลด STL จากเว็บ พิมพ์ออกมาเล็กเท่าเม็ดถั่ว หรือใหญ่เกินฐาน
  • ส่ง STL ให้คนที่ต้องแก้แบบต่อ ส่ง STEP แทน
  • คาดว่าค่าพิมพ์ใน 3MF จะตามไปทุกโปรแกรม ข้ามค่าย slicer แล้วตรวจค่าใหม่ทุกครั้ง

บทก่อน: เลือกโปรแกรม CAD สำหรับงานพิมพ์ 3 มิติ

แหล่งข้อมูล

คำถามที่พบบ่อย

โหลดไฟล์จากเว็บแล้วชิ้นงานเล็กนิดเดียวใน slicer

มักเป็นไฟล์ที่ออกแบบเป็นนิ้วแล้ว export เป็น STL ซึ่งไม่มีหน่วย slicer อ่านเป็นมิลลิเมตร ขยาย 2540% (×25.4) หรือใช้คำสั่งแปลงหน่วยนิ้วที่ slicer มีให้ เช่นใน PrusaSlicer

ควรส่งไฟล์อะไรให้เพื่อนเอาไปพิมพ์

ส่ง 3MF ถ้าอยากให้ได้การจัดวางและค่าพิมพ์แบบเดียวกับเรา ส่ง STEP ถ้าเพื่อนต้องแก้แบบต่อ และแนบ STL ไว้ด้วยสำหรับโปรแกรมที่อ่านอย่างอื่นไม่ได้

STL แบบ ASCII กับ binary ต่างกันไหม

ข้อมูลรูปทรงเหมือนกัน แต่ binary เล็กกว่ามากและเป็นแบบที่ใช้กันทั่วไป slicer อ่านได้ทั้งสองแบบ ไม่มีเหตุผลต้องใช้ ASCII เว้นแต่อยากเปิดอ่านด้วยตา

วงจรและโค้ดในบทความทดสอบกับบอร์ดตัวอย่าง บอร์ดต่างรุ่นอาจใช้ขาต่างกัน ตรวจ pinout ของบอร์ดที่ใช้ก่อนต่อไฟเสมอ

อ่านต่อ

#เครื่องมือกลาง

OpenSCAD กับ Manifold เรนเดอร์ของเล่นแบบ พาราเมตริก ได้เร็วขึ้นแค่ไหนจริง

Manifold คือเอนจินเรขาคณิตใหม่ของ OpenSCAD ทำให้เรนเดอร์เร็วขึ้นมาก แต่ตัวเลขกี่เท่าส่วนใหญ่มาจากผู้ใช้ บทนี้แยกว่าอะไรยืนยันได้ อะไรเป็นเรื่องเล่า และวัดเองยังไง

อ่าน 6 นาที
#เครื่องมือเริ่มต้น

เลือก CAD ให้งานพิมพ์ 3 มิติ: Tinkercad Fusion Onshape FreeCAD OpenSCAD Blender

หกโปรแกรมที่เมกเกอร์ใช้กันจริง แต่ละตัวถนัดงานแบบไหน ต่างกันระหว่าง CAD แบบ parametric กับโปรแกรมปั้น mesh และเงื่อนไขรุ่นฟรีที่ต้องอ่านก่อนเอางานไปขาย

อ่าน 7 นาที
#เครื่องมือกลาง

ออกแบบ PCB แผ่นแรก ให้ของเล่น ESP32 ด้วย KiCad 10

จากเบรดบอร์ดสู่แผ่น PCB ด้วย KiCad 10 วางโมดูล ESP32-S3 ให้เสาอากาศทำงาน คำนวณความกว้างลายทองแดง ตั้งกฎด้วย rule editor แบบกราฟิก และใช้ variants ทำบอร์ดสองรุ่น

อ่าน 7 นาที