บทที่ 12
G-code สำหรับ 3D Printer มีอะไรบ้าง

หัวข้อที่จะได้เรียนรู้
- คำสั่ง G-code พื้นฐานที่ต้องรู้
- คำสั่งควบคุมการเคลื่อนที่และความเร็ว
- คำสั่งควบคุมอุณหภูมิและพัดลม
- คำสั่งขั้นสูงสำหรับแก้ปัญหา
- ตัวอย่าง Start G-code และ End G-code
- เทคนิคการปรับแต่ง G-code เพื่อพิมพ์ได้ดีขึ้น
G-code คืออะไร?
G-code คือภาษาโปรแกรมที่ใช้สั่งงานเครื่องพิมพ์ 3D ให้ทำงานตามที่ต้องการ เช่น การเคลื่อนที่ การควบคุมอุณหภูมิ การอัดพลาสติก การหยุดชั่วคราว เป็นต้น การเข้าใจ G-code จะช่วยให้คุณสามารถแก้ไขปัญหา ปรับแต่งการพิมพ์ และควบคุมเครื่องได้อย่างมืออาชีพ
1. คำสั่ง G-code พื้นฐานที่ต้องรู้
| คำสั่ง | ความหมาย | ตัวอย่าง | คำอธิบาย |
|---|---|---|---|
G0 | เคลื่อนที่เร็ว (Rapid Move) | G0 X100 Y50 Z10 | เคลื่อนที่ไปยังตำแหน่ง X100 Y50 Z10 อย่างรวดเร็ว ไม่อัดพลาสติก |
G1 | เคลื่อนที่แบบพิมพ์ (Linear Move) | G1 X50 Y30 E5.2 F1800 | เคลื่อนที่ไปที่ X50 Y30 พร้อมอัดพลาสติก 5.2mm ด้วยความเร็ว 1800mm/min |
G28 | กลับจุดเริ่มต้น (Auto Home) | G28 หรือ G28 X Y | ย้ายหัวพิมพ์กลับไปจุดเริ่มต้น (0,0,0) หรือเฉพาะแกน X Y |
G29 | วัดระดับเตียง (Auto Bed Leveling) | G29 | วัดความเอียงของเตียงพิมพ์และสร้าง mesh สำหรับปรับระดับอัตโนมัติ |
G90 | โหมดตำแหน่งสัมบูรณ์ (Absolute Positioning) | G90 | ใช้พิกัดแบบสัมบูรณ์จากจุดเริ่มต้น (0,0,0) |
G91 | โหมดตำแหน่งสัมพันธ์ (Relative Positioning) | G91 | ใช้พิกัดแบบสัมพันธ์จากตำแหน่งปัจจุบัน |
G92 | ตั้งค่าตำแหน่งปัจจุบัน (Set Position) | G92 E0 | รีเซ็ตค่า Extruder เป็น 0 (ใช้หลังดึงเส้นกลับ) |
2. คำสั่งควบคุมการเคลื่อนที่และความเร็ว
| คำสั่ง | ความหมาย | ตัวอย่าง | คำอธิบาย |
|---|---|---|---|
G0 | เคลื่อนที่เร็ว (Rapid Move) | G0 X100 Y50 Z10 | เคลื่อนที่ไปยังตำแหน่ง X100 Y50 Z10 อย่างรวดเร็ว ไม่อัดพลาสติก |
G1 | เคลื่อนที่แบบพิมพ์ (Linear Move) | G1 X50 Y30 E5.2 F1800 | เคลื่อนที่ไปที่ X50 Y30 พร้อมอัดพลาสติก 5.2mm ด้วยความเร็ว 1800mm/min |
G28 | กลับจุดเริ่มต้น (Auto Home) | G28 หรือ G28 X Y | ย้ายหัวพิมพ์กลับไปจุดเริ่มต้น (0,0,0) หรือเฉพาะแกน X Y |
G29 | วัดระดับเตียง (Auto Bed Leveling) | G29 | วัดความเอียงของเตียงพิมพ์และสร้าง mesh สำหรับปรับระดับอัตโนมัติ |
G90 | โหมดตำแหน่งสัมบูรณ์ (Absolute Positioning) | G90 | ใช้พิกัดแบบสัมบูรณ์จากจุดเริ่มต้น (0,0,0) |
G91 | โหมดตำแหน่งสัมพันธ์ (Relative Positioning) | G91 | ใช้พิกัดแบบสัมพันธ์จากตำแหน่งปัจจุบัน |
G92 | ตั้งค่าตำแหน่งปัจจุบัน (Set Position) | G92 E0 | รีเซ็ตค่า Extruder เป็น 0 (ใช้หลังดึงเส้นกลับ) |
3. คำสั่งควบคุมอุณหภูมิและพัดลม
| คำสั่ง | ความหมาย | ตัวอย่าง | คำอธิบาย |
|---|---|---|---|
M104 | ตั้งอุณหภูมิหัวพิมพ์ (Set Hotend Temp) | M104 S210 | ตั้งอุณหภูมิหัวพิมพ์ที่ 210°C (ไม่รอให้ถึงอุณหภูมิ) |
M109 | ตั้งและรออุณหภูมิหัวพิมพ์ (Wait for Hotend) | M109 S250 | ตั้งอุณหภูมิหัวพิมพ์ 250°C และรอจนกว่าจะถึงอุณหภูมิ |
M140 | ตั้งอุณหภูมิเตียง (Set Bed Temp) | M140 S60 | ตั้งอุณหภูมิเตียงพิมพ์ที่ 60°C (ไม่รอให้ถึงอุณหภูมิ) |
M190 | ตั้งและรออุณหภูมิเตียง (Wait for Bed) | M190 S80 | ตั้งอุณหภูมิเตียง 80°C และรอจนกว่าจะถึงอุณหภูมิ |
M105 | อ่านอุณหภูมิ (Report Temperature) | M105 | แสดงอุณหภูมิปัจจุบันของหัวพิมพ์และเตียง |
M106 | เปิดพัดลม (Turn Fan On) | M106 S255 | เปิดพัดลมเต็มสูบ (S0-255, 255=100%) |
M107 | ปิดพัดลม (Turn Fan Off) | M107 | ปิดพัดลมระบายความร้อนชิ้นงาน |
4. คำสั่งขั้นสูงสำหรับแก้ปัญหา
| คำสั่ง | ความหมาย | ตัวอย่าง | คำอธิบาย |
|---|---|---|---|
G10 | ดึงเส้นกลับ (Retract) | G10 | ดึงเส้นพลาสติกกลับตามค่าที่ตั้งไว้ในเครื่อง (ป้องกันหยด) |
G11 | ปล่อยเส้นกลับ (Unretract) | G11 | ผลักเส้นพลาสติกกลับออกมาหลังจากดึงกลับ |
M203 | ตั้งความเร็วสูงสุด (Max Feedrate) | M203 X300 Y300 Z12 | กำหนดความเร็วสูงสุดของแต่ละแกน (mm/s) |
M204 | ตั้งความเร่ง (Acceleration) | M204 P2000 T1000 | ตั้งความเร่งเวลาพิมพ์ (P) และเวลาเดินทาง (T) mm/s² |
M205 | ตั้ง Jerk (ความกระชาก) | M205 X10 Y10 Z0.4 | กำหนดความกระชากของแต่ละแกน (mm/s) |
M220 | ปรับความเร็วการพิมพ์ (Print Speed) | M220 S80 | ชะลอหรือเร่งความเร็วพิมพ์เป็น 80% |
M420 | เปิด/ปิด Bed Leveling | M420 S1 | เปิดใช้งาน Auto Bed Leveling (S1=เปิด, S0=ปิด) |
M500 | บันทึกการตั้งค่า (Save Settings) | M500 | บันทึกค่าที่ปรับแต่งลงใน EEPROM ของเครื่อง |
M501 | โหลดการตั้งค่า (Load Settings) | M501 | โหลดค่าที่บันทึกไว้จาก EEPROM |
M502 | รีเซ็ตเป็นค่าเริ่มต้น (Factory Reset) | M502 | คืนค่าเป็น default ของเครื่อง (ต้องทำ M500 ถ้าต้องการบันทึก) |
M503 | แสดงการตั้งค่าปัจจุบัน (Report Settings) | M503 | แสดงค่าต่าง ๆ ที่ตั้งไว้ในเครื่อง |
เคล็ดลับการใช้ G-code ที่ควรรู้
🎯 Start G-code ที่แนะนำ:
G28 ; Home all axesG29 ; Auto bed levelingM140 S60 ; Set bed tempM104 S210 ; Set hotend tempM190 S60 ; Wait for bedM109 S210 ; Wait for hotendG92 E0 ; Reset extruderG1 Z2.0 F3000 ; Move Z upG1 X10 Y20 Z0.3 F5000 ; Move to startG1 X110 E15 F1500 ; Draw purge lineG92 E0 ; Reset extruder again🏁 End G-code ที่แนะนำ:
G91 ; Relative positioningG1 E-2 F2700 ; Retract filamentG1 Z10 ; Lift nozzleG90 ; Absolute positioningG1 X0 Y200 ; Present printM106 S0 ; Turn off fanM104 S0 ; Turn off hotendM140 S0 ; Turn off bedM84 ; Disable motors⚡ ข้อควรระวัง:
- คำสั่งที่เป็น สีชมพูตัวหนา เป็นคำสั่งสำคัญที่ต้องเข้าใจและใช้บ่อย
- ใช้ M500 หลังปรับค่าต่างๆ เพื่อบันทึกการตั้งค่า
- ระวังการใช้ M502 เพราะจะรีเซ็ตทุกอย่างเป็นค่าเริ่มต้น
- ใช้ G28 ก่อนเริ่มพิมพ์เสมอเพื่อให้เครื่องรู้จุดเริ่มต้น
- G29 ควรทำหลัง G28 และก่อนเริ่มพิมพ์
- M109 และ M190 จะรอให้ถึงอุณหภูมิ ใช้เวลานานกว่า M104/M140
5. เทคนิคการปรับแต่ง G-code เพื่อพิมพ์ได้ดีขึ้น
| คำสั่ง | ความหมาย | ตัวอย่าง | คำอธิบาย |
|---|---|---|---|
M220 | ปรับความเร็วการพิมพ์ (Print Speed) | M220 S80 | ชะลอหรือเร่งความเร็วพิมพ์เป็น 80% |
M221 | ปรับอัตราการอัด (Flow Rate) | M221 S95 | ปรับการอัดพลาสติกเป็น 95% (ลดการอัด 5%) |
M420 | เปิด/ปิด Bed Leveling | M420 S1 | เปิดใช้งาน Auto Bed Leveling (S1=เปิด, S0=ปิด) |