conical slicing พิมพ์ส่วนยื่นไม่ใช้ support บนเครื่อง 3 แกน ด้วยชั้นรูปกรวย
แปลงโมเดลให้ชั้นพิมพ์เป็นรูปกรวย ส่วนยื่นที่บานออกด้านนอกพิมพ์ได้โดยไม่ใช้ support บนเครื่องธรรมดา ใช้สคริปต์ Python 2 ตัว ข้อจำกัดคือระยะหัวพิมพ์และส่วนยื่นเข้าด้านใน
- conical slicing ดัดโมเดลก่อน slice แล้วดัด G-code กลับ ทำให้ชั้นจริงเป็นรูปกรวยแทนแผ่นแบน
- ได้ผลกับส่วนยื่นที่บานออกด้านนอกรอบแกนกลาง ส่วนยื่นเข้าด้านในยากกว่าเดิม และถ้ามีทั้งสองแบบที่ความสูงเดียวกันยังไม่มีทางแก้
- ตัวจำกัดหลักคือระยะว่างใต้หัวพิมพ์ มุมกรวยบนเครื่องธรรมดาจึงเล็ก ราว 15–20° ไม่ใช่ 45° แบบเครื่องวิจัย
- ณ ตุลาคม 2026 ยังเป็นสคริปต์ทดลอง GPL-3.0 ไม่มีใน slicer ตัวหลัก ต้องทำมือหลายขั้น
Conical slicing คือการพิมพ์ชั้นเป็นรูปกรวยแทนแผ่นแบน ส่วนยื่นที่บานออกรอบแกนกลาง เช่น ปากกรวย หรือปีกท่อ จึงพิมพ์ได้โดยไม่ใช้ support เพราะเส้นนอกสุดที่ลอยอยู่มีเส้นข้าง ๆ ในชั้นเดียวกันคอยรับ ทำได้บนเครื่อง 3 แกนธรรมดาด้วยสคริปต์ Python สองตัว แต่มีข้อจำกัดเรื่องระยะว่างใต้หัวพิมพ์และรูปทรงที่ใช้ได้
ณ ตุลาคม 2026 เครื่องมือหลักยังเป็นสคริปต์ทดลองจาก CNC Kitchen (ConicalSlicer, GPL-3.0) ยังไม่มีปุ่มใน slicer ตัวหลัก
ที่มา: จากเครื่อง 4 แกน มาสู่เครื่องธรรมดา
แนวคิดมาจากโครงการ RotBot ของ ZHAW ในสวิตเซอร์แลนด์ เครื่องวิจัยใช้หัวพิมพ์เอียง 45° กับแกนหมุนรอบแกน Z เพิ่ม งานตีพิมพ์ปี 2021 ใน Applied Sciences รายงานว่าพิมพ์ส่วนยื่นได้ถึงราว 100° โดยไม่ใช้ support
CNC Kitchen นำสคริปต์ของโครงการมาแก้ให้ใช้มุมกรวยเล็กลงได้ README ยกตัวอย่างมุม 15° เพื่อให้ใช้กับเครื่องทั่วไปได้ ไม่ต้องมีแกนหมุน
ทำงานยังไง
slicer ปกติเป็นแบบ “2.5D” คือซ้อนชั้นแบน แทบไม่ขยับสามแกนพร้อมกัน conical slicing หลอก slicer ด้วยการดัดโมเดลก่อน แล้วดัด G-code กลับทีหลัง
- ดัด STL สคริปต์
Transformation_STL.pyยกจุดของ mesh ขึ้นตามระยะห่างจากแกนกลาง ระยะยก = r × tan(มุมกรวย) ได้โมเดลรูปร่างแปลก ๆ เป็นไฟล์ STL ใหม่ - slice ตามปกติ ด้วย slicer ที่ใช้อยู่ ได้ชั้นแบนในพื้นที่ที่ถูกดัด
- ดัด G-code กลับ สคริปต์
Backtransformation_GCode.pyลด Z ของทุกจุดกลับตามระยะ r เดิม ชั้นที่แบนในไฟล์จึงกลายเป็นกรวยบนเครื่อง เส้นยาวถูกหั่นเป็นช่วงสั้นตามค่าmax_lengthเพื่อให้ Z เปลี่ยนตามได้
ค่าที่ต้องตั้งในสคริปต์มีทั้ง transformation_type ('inward' หรือ 'outward'), จำนวนรอบเพิ่มความละเอียด mesh, x_shift / y_shift, z_desired และค่าแก้ extrusion สองทิศ
ตัวอย่างตัวเลข: มุมกรวยกับระยะว่างหัวพิมพ์
มุมที่ CNC Kitchen ใช้ในตัวอย่างคือ 16° tan 16° ≈ 0.287
ระยะยกตอนดัดโมเดล
- จุดที่ห่างแกน 10 mm ยก 10 × 0.287 ≈ 2.9 mm
- จุดที่ห่างแกน 30 mm ยก 30 × 0.287 ≈ 8.6 mm
ตัวเลขเดียวกันนี้คือปัญหาตอนพิมพ์จริง ตอนหัวพิมพ์อยู่ขอบนอก เนื้องานที่ใกล้แกนกลางในชั้นเดียวกันสูงกว่าปลายหัวฉีด ชิ้นส่วนบนหัวพิมพ์ (ท่อลม ฮีตเตอร์ เซนเซอร์วัดเตียง) ที่อยู่ห่างปลายหัว d mm ไปทางแกนกลาง ต้องสูงกว่าปลายหัวมากกว่า d × tan(มุม) ไม่งั้นชน
ตัวอย่างประมาณการ (วัดหัวพิมพ์ของตัวเองแทนค่า)
- ท่อลมอยู่ห่างปลายหัว 15 mm สูงกว่าปลายหัว 4 mm
- ที่ 16°: ต้องการ 15 × 0.287 ≈ 4.3 mm มากกว่า 4 mm ที่มี → ชน
- มุมสูงสุดที่ไม่ชน = atan(4 ÷ 15) ≈ 14.9° ตั้งมุมกรวยต่ำกว่านี้ เช่น 14°
นี่คือเหตุผลที่ CNC Kitchen ได้ราว 20° กับชิ้นเล็กบนเครื่องรุ่นหนึ่ง แต่ชิ้นใหญ่เซนเซอร์วัดเตียงไปชน และต่ำกว่าราว 10–15° ประโยชน์ก็ลดลงเพราะพลาสติกเริ่มย้อย
มุมกรวยถูกกำหนดด้วยหัวพิมพ์ของคุณ ไม่ใช่ด้วยโมเดล วัดระยะว่างก่อน แล้วค่อยเลือกมุม
รูปทรงไหนได้ ไม่ได้
| รูปทรง | ผล |
|---|---|
| ส่วนยื่นบานออกรอบแกนกลาง (ปากกรวย ปีกท่อ ร่ม) | ได้ผลดีที่สุด |
| ส่วนยื่นหุบเข้าด้านใน | ยากกว่าการพิมพ์แบบปกติ ต้องผ่าเป็นช่วงแล้ว slice แยก |
| ยื่นออกและหุบเข้าที่ความสูงเดียวกัน | ยังไม่มีทางแก้ |
| ชิ้นแบนกว้าง ไม่มีแกนกลางชัด | ระยะยกที่ขอบสูงมาก หัวพิมพ์ชนง่าย |
เทียบกับเทคนิคส่วนยื่นแบบอื่น
| วิธี | ชั้น | เครื่อง | สถานะ ณ ต.ค. 2026 |
|---|---|---|---|
| support ปกติ | แบน | ทุกเครื่อง | มีในทุก slicer |
| wave overhang | แบน เปลี่ยนแค่เส้นทาง | ทุกเครื่อง | fork ทดลอง |
| conical slicing มุมเล็ก | กรวย 15–20° | 3 แกน ต้องมีระยะว่างหัว | สคริปต์ Python ทำมือ |
| RotBot 4 แกน | กรวย 45° | หัวเอียง + แกนหมุน | เครื่องวิจัย |
ขั้นตอนลองครั้งแรก
- ตั้งโปรไฟล์เครื่องใน slicer ให้จุด origin อยู่กลางเตียง
- วางชิ้นงานให้แกนกรวยตรงกับแกน Z ของไฟล์ แล้วบันทึก
- รันสคริปต์ดัด STL ด้วยมุมที่เลือก
- โหลดไฟล์ที่ดัดแล้ว วางให้แกนกรวยอยู่ที่ origin แล้ว slice ถ้า slicer มีตัวเลือกส่งออกชั้นว่าง ให้เปิด
- รันสคริปต์ดัด G-code กลับ ด้วยมุมเดียวกันและ
transformation_typeเดียวกัน - เปิด G-code ใน viewer ดูว่าชั้นเป็นกรวยจริง และ Z ไม่ติดลบ
CNC Kitchen เตือนว่า PrusaSlicer และ Cura ไม่วางชิ้นงานตามพิกัดเดิมของ STL ทำให้ขั้นที่ 2 และ 4 ยากกว่า
ข้อผิดพลาดที่เจอบ่อย
- ใช้มุมต่างกันระหว่างสองสคริปต์ ชั้นจะเพี้ยนหรือหัวจมลงในงาน
- ไม่วัดระยะว่างหัวพิมพ์ ท่อลมหรือเซนเซอร์ไปกวาดชิ้นงานกลางทาง
- ลดพัดลม พลาสติกต้องแข็งตัวทั้งที่ไม่มีอะไรรองข้างใต้ การระบายความร้อนสำคัญมาก
- เลือกชิ้นที่มีส่วนยื่นเข้าด้านใน แล้วคิดว่าสคริปต์จะช่วย มันช่วยเฉพาะทิศที่เลือก
- ลืมว่า Z ขยับทุกการเคลื่อนที่ แกน Z ทำงานหนักกว่าปกติ CNC Kitchen บอกว่าทำให้เกลียวแกน Z สึกเร็วขึ้น ลองกับงานสั้นก่อน
ความปลอดภัย
G-code ที่ดัดแล้วไม่ผ่านการตรวจของ slicer การชนแรงอาจทำให้หัวฉีดหลวม พลาสติกร้อน 200 °C ขึ้นไปรั่วรอบหัว ตอนพิมพ์ครั้งแรกให้อยู่ข้างเครื่อง ลดความเร็วจากหน้าจอเครื่อง และพร้อมกดหยุด
บทก่อน: overhang 90° ด้วยเส้นทางแบบคลื่น · บทถัดไป: ผสมสีใหม่ด้วยชั้นบางสลับกัน
แหล่งข้อมูล
คำถามที่พบบ่อย
ต้องดัดแปลงเครื่องไหม
ไม่จำเป็นสำหรับมุมเล็ก แต่ต้องวัดระยะว่างรอบหัวพิมพ์ก่อน CNC Kitchen ใช้ได้ราว 20° กับชิ้นเล็กบนเครื่องรุ่นหนึ่ง ชิ้นใหญ่กว่านั้นเซนเซอร์วัดเตียงไปชนชิ้นงาน เครื่องบางแบบต้องเปลี่ยนเป็นหัวฉีดที่ยาวขึ้น ซึ่งแลกกับการระบายความร้อนที่แย่ลง
ใช้ slicer ตัวไหน
สคริปต์ทำงานกับ STL และ G-code จึงใช้ slicer ไหนก็ได้ README ยกตัวอย่าง Cura และ Simplify3D ส่วนวิดีโอสาธิตใช้ SuperSlicer เพราะวางชิ้นงานตามพิกัดเดิมของไฟล์ได้ง่ายกว่า
ต่างจาก wave overhang ยังไง
wave overhang ยังพิมพ์ชั้นแบน แค่เปลี่ยนเส้นทางของชั้นที่ยื่น conical slicing เปลี่ยนรูปร่างของทุกชั้นเป็นกรวย แกน Z จึงขยับตลอดการพิมพ์
วงจรและโค้ดในบทความทดสอบกับบอร์ดตัวอย่าง บอร์ดต่างรุ่นอาจใช้ขาต่างกัน ตรวจ pinout ของบอร์ดที่ใช้ก่อนต่อไฟเสมอ