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

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

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

กลาง อ่าน 6 นาที 23 ตุลาคม 2569 ของใหม่ที่ช่างควรลอง 2026 · บทที่ 20/20

อ่านจบแล้วจะรู้
  • Manifold เป็นเอนจินค่าตั้งต้นใน development snapshot ของ OpenSCAD ตั้งแต่สิงหาคม 2025 ส่วนรุ่น stable บนหน้าดาวน์โหลดยังเป็น 2021.01
  • ฝั่งทางการบอกแค่ว่าเร็วขึ้นมาก ไม่ให้ตัวเลข ตัวเลขกี่เท่าที่เห็นกันมาจากผู้พัฒนา Manifold และผู้ใช้แต่ละคน ต่างกันตามโมเดล
  • วัดเองได้ง่าย คอนโซลพิมพ์ Total rendering time ให้ทุกครั้งที่กด F6 เทียบสองเอนจินด้วยไฟล์เดียวกัน
  • ความละเอียดวงกลมมีผลกับความพอดี ค่าตั้งต้นทำให้รูเล็กแคบลงได้หลายทศนิยมมิลลิเมตร ตั้ง $fn หรือ $fs เอง

OpenSCAD คือ CAD แบบเขียนโค้ด เหมาะกับของเล่นที่อยากปรับขนาดได้ เช่น ล้อรถ กล่อง หรือชิ้นต่อ แต่จุดอ่อนเดิมคือการเรนเดอร์ (F6) ช้ามากเมื่อมีรูปทรงซ้อนกันเยอะ เอนจินเรขาคณิตตัวใหม่ชื่อ Manifold แก้ตรงนี้ได้มาก บทนี้บอกว่าตอนนี้อยู่ในรุ่นไหน เปิดยังไง และตัวเลข “เร็วกว่ากี่เท่า” ที่เห็นกันนั้น อันไหนยืนยันได้ อันไหนเป็นประสบการณ์ของคนคนเดียว

ถ้ายังเลือกไม่ได้ว่าจะใช้ CAD ตัวไหน อ่านเลือก CAD ให้งานพิมพ์ 3 มิติ ก่อน บทนี้ต่อจากส่วน OpenSCAD ในบทนั้น

Manifold อยู่ในรุ่นไหน

  • 17 สิงหาคม 2025: ผู้ดูแลหลักของ OpenSCAD ประกาศในเมลลิงลิสต์ว่า Manifold เป็นเอนจินค่าตั้งต้นของ development snapshot ตั้งแต่ nightly ถัดไป
  • หน้าดาวน์โหลดทางการ: รุ่น stable ยังเป็น 2021.01 ซึ่งไม่มี Manifold ส่วน nightly มีข้อความชวนเปิด Manifold ใน Preferences
  • ตุลาคม 2026: มี release candidate ชื่อ 2026.10-TEST4 ให้ทดลอง

อยากกลับไปใช้เอนจินเดิม (CGAL) เลือกใน Preferences หรือสั่ง openscad --backend=cgal

เร็วขึ้นกี่เท่า: แยกให้ชัดว่าใครวัด

ที่มาตัวเลขน้ำหนักของหลักฐาน
ประกาศของ OpenSCAD (2025)“เร็วขึ้นอย่างมีนัยสำคัญ” ไม่มีตัวเลขทางการ แต่ไม่มีข้อมูลวัด
หน้าดาวน์โหลด OpenSCAD“huge performance boost” ไม่มีตัวเลขทางการ แต่ไม่มีข้อมูลวัด
ผู้พัฒนา Manifold (GitHub)100–1,000 เท่า เทียบ OpenSCAD เดิมวัดโดยผู้สร้างเอง ไม่ระบุโมเดล
ผู้ใช้ใน GitHub discussion5–30 เท่า เทียบโหมด fast-csgวัดโดยผู้ใช้ ไม่ระบุโมเดลในหน้านั้น
ผู้ใช้ในเมลลิงลิสต์ (2025)12 นาที 25 วินาที → 51 วินาทีโมเดลเดียว เครื่องเดียว

สรุปที่ตรงที่สุดคือ เร็วขึ้นมากจริง และยืนยันตรงกันหลายแหล่ง แต่ตัวเลขกี่เท่าเป็นเรื่องเฉพาะโมเดล ไม่มีชุดทดสอบมาตรฐานจากโปรเจกต์ ตัวเลขสูงสุดมาจากคนสร้าง Manifold เอง ควรอ่านแบบนั้น

อย่าเชื่อตัวเลขกี่เท่าจากที่ไหนจนกว่าจะวัดกับโมเดลของเราเอง ใช้เวลาไม่ถึงสิบนาที

ตัวอย่างคำนวณ: เวลาที่ได้คืนตอนทำหลายขนาด

ใช้ตัวเลขจากเมลลิงลิสต์ (ผนังสถานีรถไฟจำลอง มีหิน ประตู หน้าต่าง เครื่อง 12 คอร์ RAM 16 GB, OpenSCAD 2025.07.17) เป็นตัวอย่าง ไม่ใช่ค่าที่โมเดลเราจะได้

  1. CGAL: 12 นาที 25 วินาที = 745 วินาที
  2. Manifold: 51 วินาที
  3. อัตราส่วน = 745 ÷ 51 ≈ 14.6 เท่า
  4. ถ้าต้อง export 10 ขนาด: CGAL = 10 × 745 ÷ 60 ≈ 124 นาที Manifold = 10 × 51 ÷ 60 = 8.5 นาที

ต่างกันระหว่าง “ตั้งไว้ข้ามคืน” กับ “ไปชงกาแฟ” นี่คือเหตุผลที่ Manifold สำคัญกับงานพาราเมตริก เพราะงานพาราเมตริกคือการเรนเดอร์ซ้ำหลายรอบ

CGAL745 วินาทีManifold51 วินาทีโมเดลเดียวจากเมลลิงลิสต์ ไม่ใช่ค่ามาตรฐาน
เร็วขึ้นราว 14 เท่าในโมเดลนี้ วัดกับโมเดลของเราเองก่อนเชื่อ

วัดเองกับโมเดลของเรา

คอนโซลของ OpenSCAD พิมพ์บรรทัด Total rendering time หลังกด F6 ทุกครั้ง วิธีเทียบที่ยุติธรรม

  1. ใช้ไฟล์ .scad เดียวกัน ค่า $fn เดียวกัน
  2. เรนเดอร์ด้วยเอนจินหนึ่ง จดเวลา แล้วล้างแคช (Design → Flush Caches) หรือเปิดโปรแกรมใหม่ก่อนลองอีกเอนจิน เพราะ OpenSCAD เก็บแคชผลเรนเดอร์
  3. ทำซ้ำ 3 รอบ ใช้ค่ากลาง

หรือสั่งจากบรรทัดคำสั่ง ซึ่งสะดวกกับการทำหลายขนาด

# เรนเดอร์ล้อขนาด 30 mm ด้วยเอนจิน CGAL เพื่อเทียบ
openscad --backend=cgal -o wheel_30_cgal.stl -D d=30 wheel.scad
# snapshot ปัจจุบันใช้ Manifold เป็นค่าตั้งต้น
openscad -o wheel_30.stl -D d=30 wheel.scad

ความละเอียดวงกลม: เรื่องที่กระทบความพอดีมากกว่าความเร็ว

เร็วขึ้นแล้ว หลายคนเพิ่ม $fn สูง ๆ ได้สบายใจขึ้น ซึ่งเกี่ยวกับความพอดีจริง เพราะ OpenSCAD วาดวงกลมเป็นรูปหลายเหลี่ยมที่อยู่ “ด้านใน” วงกลม รูจึงแคบกว่าที่ตั้งไว้

ค่าตั้งต้น $fa = 12 และ $fs = 2 จำนวนด้าน = ปัดขึ้นของ max(min(360 ÷ $fa, 2πr ÷ $fs), 5)

ตัวอย่าง: รูเพลาล้อ เพลา 5.0 mm เผื่อ 0.3 mm → รู 5.3 mm (r = 2.65)

  1. ค่าตั้งต้น: min(30, 2π × 2.65 ÷ 2 ≈ 8.33) = 8.33 → ปัดขึ้น 9 ด้าน
  2. ระยะที่ขอบแบนเว้าเข้าจากวงกลม = r × (1 − cos(180° ÷ 9)) = 2.65 × 0.060 ≈ 0.16 mm
  3. ตรงขอบแบน รูแคบลงสูงสุด 2 × 0.16 = 0.32 mm ระยะเผื่อ 0.3 mm แทบหายหมด
  4. ตั้ง $fn = 64: 2.65 × (1 − cos(2.81°)) ≈ 0.003 mm แทบไม่มีผล

ระยะเผื่อที่เหมาะกับเครื่องเรา ดูขนาดแม่นและการสวมพอดี

โค้ดตัวอย่าง: ล้อของเล่นพาราเมตริก

// ล้อของเล่น ปรับ 4 บรรทัดแรก
d = 30;        // เส้นผ่านศูนย์กลางล้อ mm
w = 10;        // ความกว้างล้อ
axle = 5.0;    // เพลา
clear = 0.3;   // ระยะเผื่อ
$fn = 64;
difference() {
  cylinder(h = w, d = d);
  translate([0, 0, -1]) cylinder(h = w + 2, d = axle + clear);
}

เปิดแผง Customizer จะเห็นตัวแปรด้านบนเป็นช่องปรับค่า ส่งให้คนอื่นปรับเองได้โดยไม่ต้องอ่านโค้ด

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

  • ใช้รุ่น stable 2021.01 แล้วสงสัยว่าทำไมไม่เร็ว ต้องเป็น snapshot หรือ release candidate
  • อ้างตัวเลข 100 เท่าเป็นข้อเท็จจริงทั่วไป ตัวเลขนี้ขึ้นกับโมเดล และวัดโดยผู้สร้างเอนจิน
  • เทียบเวลาโดยไม่ล้างแคช รอบสองเร็วเพราะแคช ไม่ใช่เพราะเอนจิน
  • ปล่อย $fn เป็นค่าตั้งต้นกับรูเล็ก รูแคบกว่าที่ตั้ง ชิ้นงานสวมไม่ลง
  • ไม่เทียบผลกับ CGAL เมื่อรูปทรงดูผิด เอนจินใหม่ยังมีบั๊กได้ ผู้ดูแลเองก็บอกไว้

แหล่งข้อมูล

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

ต้องเปลี่ยนโค้ด .scad เดิมไหม

ส่วนใหญ่ไม่ต้อง โค้ดเดิมเรนเดอร์ด้วย Manifold ได้ ผู้ดูแลโปรเจกต์บอกเองว่าคาดว่าจะมีคนเจอบั๊กใหม่ ถ้าผลผิดแปลก ลองเรนเดอร์ด้วย --backend=cgal เทียบ แล้วรายงานปัญหา

ใช้รุ่น stable 2021.01 จะได้ Manifold ไหม

ไม่ได้ ต้องใช้ development snapshot (nightly) หรือ release candidate ที่ใหม่กว่า snapshot รุ่นเก่ากว่าสิงหาคม 2025 ต้องเปิด Manifold ใน Preferences เอง

Preview (F5) เร็วขึ้นด้วยไหม

สิ่งที่เปลี่ยนชัดคือ Render (F6) ที่สร้างรูปทรงจริงสำหรับ export ในเมลลิงลิสต์มีนักพัฒนาให้ความเห็นว่า preview ยังเร็วกว่า Manifold เล็กน้อยกับโมเดลส่วนใหญ่ และการแสดงสีกับความโปร่งใสใน Manifold ยังไม่ครบ

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

อ่านต่อ

#เครื่องมือเริ่มต้น

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

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

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

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

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

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

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

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

อ่าน 7 นาที