ð āļŠุāļāļĒāļāļāđāļāļāļิāļ CNC Subprograms (O-Code) āđāļĨāļ° Macro: āļ§ิāļีāļĨāļāļāļ§āļēāļĄāļĒāļēāļ§ G-Code āđāļĨāļ°āđāļิ่āļĄāļāļĢāļ°āļŠิāļāļิāļ āļēāļāļ้āļ§āļĒāļāļēāļāļ้āļģāđ
āđāļĢีāļĒāļāļĢู้āļāļēāļĢāđāļ้ CNC Subprograms (M98 M99) āđāļĨāļ° Macro Programming (G65) āđāļื่āļāđāļีāļĒāļ āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒāļŠāļģāļŦāļĢัāļāļāļēāļāļ้āļģāđ āļ่āļ§āļĒ āļĨāļāļāļ§āļēāļĄāļĒāļēāļ§ G-Code āļĨāļāļāļĒ่āļēāļāļĄāļēāļ āđāļĨāļ°āļŠāļĢ้āļēāļāđāļāļĢāđāļāļĢāļĄāļี่āļĒืāļāļŦāļĒุ่āļ (Parametric) āđāļื่āļ āđāļิ่āļĄāļāļĢāļ°āļŠิāļāļิāļ āļēāļ āļāļēāļĢāļāļĨิāļāđāļĨāļ°āļĒāļāļĢāļ°āļัāļāļัāļāļĐāļ° CNC Programmer āļāļāļāļุāļ
āđāļāļĢāđāļāļĢāļĄ G-Code āļี่āđāļ้āđāļāļāļēāļĢāļāļ§āļāļุāļĄāđāļāļĢื่āļāļāļัāļāļĢ CNC āļั้āļ āļĄัāļāļāļ°āļĄีāļāļ§āļēāļĄāļĒāļēāļ§āļĄāļēāļāđāļĨāļ°āļĄีāļāļĢāļĢāļัāļāđāļ้āļāļี่āļ้āļģāļ้āļāļāļāļĒ่āļēāļāļŦāļĨีāļāđāļĨี่āļĒāļāđāļĄ่āđāļ้ āđāļāļĒāđāļāļāļēāļ°āļāļĒ่āļēāļāļĒิ่āļāđāļĄื่āļāļāļēāļāļั้āļāļ้āļāļāļāļēāļĢāļāļēāļĢāļāļģāļุāļāļĨัāļāļĐāļāļ°āļี่āđāļŦāļĄืāļāļāļัāļāļŦāļĨāļēāļĒāļāļĢั้āļ (āđāļ่āļ āļāļēāļĢāđāļāļēāļ°āļĢูāļŦāļĨāļēāļĒāļŠิāļāļĢู āļŦāļĢืāļāļāļēāļĢāļāļģāļ็āļāļāđāļ็āļāļี่āļāļĨ้āļēāļĒāļัāļ) āļāļēāļĢāļĄีāđāļ้āļāļี่āļ้āļģāđ āļัāļāļŦāļĨāļēāļĒāļุāļāļāļģāđāļŦ้āđāļāļĢāđāļāļĢāļĄāļิāļāļŦāļ่āļ§āļĒāļāļ§āļēāļĄāļāļģāđāļāļĢื่āļāļāļัāļāļĢāļĄāļēāļ āđāļĨāļ°āđāļ้āđāļāđāļ้āļĒāļēāļ
āđāļāļĨูāļั่āļāļŠāļģāļŦāļĢัāļāļัāļāļŦāļēāļี้āļืāļāļāļēāļĢāđāļ้āđāļāļāļิāļāļĢāļ°āļัāļāļŠูāļ: CNC Subprograms āđāļĨāļ° CNC Macro Programming āđāļāļĢื่āļāļāļĄืāļāđāļŦāļĨ่āļēāļี้āļ่āļ§āļĒāđāļŦ้āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāđāļีāļĒāļāđāļ้āļāļุāļāđāļีāļĒāļ§ (āļŦāļĢืāļāļี่āđāļĢีāļĒāļāļ§่āļē āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ) āđāļĨ้āļ§āđāļĢีāļĒāļāđāļ้āļāļēāļāļ้āļģāđ āđāļ้āļāļēāļĄāļ้āļāļāļāļēāļĢ
āļāļĢāļ°āđāļĒāļāļ์āļี่āļŠāļģāļัāļāļี่āļŠุāļāļืāļāļāļēāļĢ āļĨāļāļāļ§āļēāļĄāļĒāļēāļ§ G-Code āđāļ้āļāļĒ่āļēāļāļĄāļēāļ, āļāļĢāļ°āļŦāļĒัāļāļŦāļ่āļ§āļĒāļāļ§āļēāļĄāļāļģ, āļĨāļāđāļ§āļĨāļēāļāļēāļĢāđāļีāļĒāļāđāļ้āļ, āđāļĨāļ°āļี่āļŠāļģāļัāļāļี่āļŠุāļāļืāļ āđāļิ่āļĄāļāļĢāļ°āļŠิāļāļิāļ āļēāļ āđāļāļāļēāļĢāđāļ้āđāļāđāļāļĢāđāļāļĢāļĄ āđāļĄื่āļāļุāļāļ้āļāļāļāļēāļĢāđāļāļĨี่āļĒāļāļāļ§āļēāļĄāđāļĢ็āļ§āļŦāļĢืāļāļีāļāļāļāļāļāļēāļāļ้āļģāđ āļุāļāđāļ้āđāļāđāļีāļĒāļāļุāļāđāļีāļĒāļ§āđāļ āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ āđāļ่āļēāļั้āļ
āļŦัāļ§āļ้āļāļี่ 1: ð§Đ CNC Subprograms (O-Code) āļืāļāļāļ°āđāļĢ? (M98 & M99) (H2)
CNC Subprograms āļืāļāļุāļāļāļģāļŠั่āļ G-Code āļี่āļูāļāđāļĒāļāļāļāļāļĄāļēāđāļĨāļ°āđāļ็āļāđāļ§้āđāļ็āļāđāļāļĢāđāļāļĢāļĄāļิāļŠāļĢāļ° āđāļāļĒāđāļ้āļŦāļĄāļēāļĒāđāļĨāļāđāļāļĢāđāļāļĢāļĄāļึ้āļāļ้āļāļ้āļ§āļĒāļัāļ§āļัāļāļĐāļĢ O (āļŦāļĢืāļāļี่āđāļĢีāļĒāļāļ§่āļē O-Code)
āļŦāļĨัāļāļāļēāļĢāļāļģāļāļēāļ: āđāļāļĢāđāļāļĢāļĄāļŦāļĨัāļ (Main Program) āļāļ°āđāļ้āļāļģāļŠั่āļāļิāđāļĻāļĐāđāļื่āļ "āļāļĢāļ°āđāļāļ" āđāļāļĢัāļāđāļ้āļāđāļ Subprogram āđāļĄื่āļāļĢัāļāđāļŠāļĢ็āļāļ็āļāļ° "āļāļĢāļ°āđāļāļāļāļĨัāļ" āļĄāļēāļāļģāļāļēāļāļ่āļāđāļāđāļāļĢāđāļāļĢāļĄāļŦāļĨัāļ
M98: āļāļēāļĢāđāļĢีāļĒāļāđāļ้ Subprogram (Call Subprogram)
āđāļ้āđāļื่āļāđāļĢีāļĒāļ āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ āđāļāļĒāļĄีāļāļēāļĢāļēāļĄิāđāļāļāļĢ์āļŠāļģāļัāļāļืāļ:
P(P-word): āļŦāļĄāļēāļĒāđāļĨāļ O-Code āļāļāļ āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ āļี่āļ้āļāļāļāļēāļĢāđāļĢีāļĒāļL(L-word): āļāļģāļāļ§āļāļĢāļāļāļี่āļ้āļāļāļāļēāļĢāđāļŦ้ āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ āļี้āļāļģāļāļēāļāļ้āļģ (āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ CNC āļŠāļģāļŦāļĢัāļāļāļēāļāļ้āļģ)
M99: āļāļēāļĢāļŠิ้āļāļŠุāļ Subprogram (Return to Main Program)
āđāļ็āļāļāļģāļŠั่āļāļŠุāļāļ้āļēāļĒāđāļ Subprogram āļāļģāļŦāļ้āļēāļี่āļŠั่āļāđāļŦ้āļāļāļāđāļāļĢāļĨāđāļĨāļāļĢ์āļŠ่āļāļāļēāļĢāļāļ§āļāļุāļĄāļāļĨัāļāđāļāļĒัāļāļāļĢāļĢāļัāļāļัāļāđāļāđāļāđāļāļĢāđāļāļĢāļĄāļŦāļĨัāļāļี่āđāļĢีāļĒāļ M98 āļĄāļē
āļŦัāļ§āļ้āļāļี่ 2: ð§ āļ้āļēāļ§āļŠู่ Macro Programming (G65) āđāļĨāļ° Variables (H2)
āđāļāļāļāļ°āļี่ CNC Subprograms (M98) āđāļ้āļŠāļģāļŦāļĢัāļ āļāļēāļāļ้āļģāđ āļี่āļĄีāļĨัāļāļĐāļāļ°āđāļĨāļ°āļāļāļēāļāļāļāļี่ CNC Macro Programming (G65) āļāļ°āđāļิ่āļĄāļีāļāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāļี่āđāļŦāļืāļāļāļ§่āļē:
āļāļ§āļēāļĄāđāļāļāļ่āļēāļ: Macro āļืāļ āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ āļี่āļŠāļēāļĄāļēāļĢāļāļĢัāļāļ่āļēāļัāļ§āđāļāļĢ (Arguments) āļāļēāļāđāļāļĢāđāļāļĢāļĄāļŦāļĨัāļāđāļ้āļ่āļēāļāļัāļ§āđāļāļĢāļิāđāļĻāļĐ (āđāļ่āļ
#1,#2,#3āļŦāļĢืāļāļāļēāļĄāļัāļ§āļัāļāļĐāļĢ A, B, C)G65: G-Code āļŠāļģāļŦāļĢัāļāļāļēāļĢāđāļĢีāļĒāļāđāļ้ Macro
āđāļ้ G65 G-Code āđāļื่āļāđāļĢีāļĒāļ Macro āļāļĢ้āļāļĄāļŠ่āļāļ่āļēāļิāļัāļ, āļāļ§āļēāļĄāļĨึāļ, āļŦāļĢืāļāļāļāļēāļāļ่āļēāļ āđ āđāļ้āļēāđāļāđāļāļัāļ§āđāļāļĢāļāļāļ Macro
āļāļēāļĢāđāļีāļĒāļāđāļāļĢāđāļāļĢāļĄ Parametric: āļāļēāļĢāđāļ้ Variable Programming CNC āļ่āļ§āļĒāđāļŦ้āļุāļāļŠāļĢ้āļēāļāđāļāļĢāđāļāļĢāļĄāđāļีāļĒāļ§āļี่āļĒืāļāļŦāļĒุ่āļ āļŠāļēāļĄāļēāļĢāļāļŠāļĢ้āļēāļāļุāļāļĨัāļāļĐāļāļ°āļี่āļĄีāļāļāļēāļāđāļĨāļ°āļāļģāđāļŦāļ่āļāļี่āđāļāļāļ่āļēāļāļัāļāđāļ้āđāļāļĒāđāļĄ่āļ้āļāļāđāļ้āđāļāđāļ้āļāļ āļēāļĒāđāļ āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ āļั้āļāđāļĨāļĒ āđāļีāļĒāļāđāļ่āđāļāļĨี่āļĒāļāļ่āļēāļัāļ§āđāļāļĢāđāļĄื่āļāđāļĢีāļĒāļāđāļ้ G65 āđāļ่āļēāļั้āļ
āļŦัāļ§āļ้āļāļี่ 3: ✍️ āđāļāļāļิāļāļāļēāļĢāđāļีāļĒāļāđāļ้āļ Subprogram āđāļĨāļ° Macro āđāļื่āļāļĨāļāļāļ§āļēāļĄāļĒāļēāļ§ G-Code (H2)
āļāļēāļĢāđāļ้ CNC Subprograms āļāļĒ่āļēāļāļูāļāļ§ิāļีāļŠāļēāļĄāļēāļĢāļ āļĨāļāļāļ§āļēāļĄāļĒāļēāļ§ G-Code āļāļēāļāļŦāļĨāļēāļĒāļĢ้āļāļĒāļāļĢāļĢāļัāļāđāļŦāļĨืāļāđāļีāļĒāļāđāļĄ่āļี่āļāļĢāļĢāļัāļ āļึ่āļāđāļ็āļāļŦัāļ§āđāļāļāļāļ CNC Programming Efficiency
āļāļēāļĢāđāļ้ L-word āđāļื่āļāļāļģāļ้āļģ: āļŦāļēāļāļุāļāļ้āļāļāđāļāļēāļ°āļĢู 50 āļĢูāļี่āļĄีāļั้āļāļāļāļāļāļēāļĢāđāļāļēāļ°āđāļŦāļĄืāļāļāļัāļ āļุāļāđāļĄ่āļ้āļāļāļัāļāļĨāļāļāđāļ้āļ 50 āļāļĢั้āļ āđāļีāļĒāļāđāļ่āđāļ้
M98 Pxxxx L50āđāļ้āļāļุāļāđāļีāļĒāļ§āļ็āļŠāļēāļĄāļēāļĢāļāļāļģāļ้āļģāđāļ้ 50 āļĢāļāļāļāļēāļĢāļั้āļāļื่āļ O-Code āļี่āđāļ็āļāļĢāļ°āđāļีāļĒāļ: āļāļ§āļĢāļŠāļāļ§āļāļ่āļ§āļāļŦāļĄāļēāļĒāđāļĨāļ O-Code (āđāļ่āļ O9000-O9999) āđāļ§้āļŠāļģāļŦāļĢัāļ Subprograms āđāļĨāļ° Macro āļāļāļāļุāļāđāļāļĒāđāļāļāļēāļ° āđāļื่āļāļ้āļāļāļัāļāļāļēāļĢāļŠัāļāļŠāļāļัāļāđāļāļĢāđāļāļĢāļĄāļŦāļĨัāļ
āļāļēāļĢāļัāļāļāļēāļĢ Modal Codes āđāļ Subprogram: āđāļื่āļāļ้āļāļāļัāļāđāļĄ่āđāļŦ้āđāļŦāļĄāļāļāļēāļĢāđāļāļĨื่āļāļāļี่ (āđāļ่āļ G91 Incremental) āļāļēāļ āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ āđāļāļāļĢāļ°āļāļāļ่āļāđāļāļĢāđāļāļĢāļĄāļŦāļĨัāļ āļāļ§āļĢāļŠั่āļ
G90(Absolute) āļŦāļĢืāļG80(Cancel Cycle) āđāļ§้āļี่āļŠ่āļ§āļāļŦัāļ§āļŦāļĢืāļāļŠ่āļ§āļāļ้āļēāļĒāļāļāļ Subprogram āđāļŠāļĄāļ
ðĄ āļāļāļŠāļĢุāļ (Conclusion)
CNC Subprograms (M98/M99) āđāļĨāļ° Macro Programming (G65) āđāļ็āļāđāļāļĢื่āļāļāļĄืāļāļี่āļāļēāļāđāļĄ่āđāļ้āļŠāļģāļŦāļĢัāļ CNC Programmer āļĄืāļāļāļēāļีāļ āļāļēāļĢāļĨāļāļุāļāđāļāļāļēāļĢāđāļĢีāļĒāļāļĢู้ O-Code āđāļĨāļ°āļāļēāļĢāđāļ้āļāļēāļāļัāļ§āđāļāļĢāļāļ°āļ่āļ§āļĒ āļĨāļāļāļ§āļēāļĄāļĒāļēāļ§ G-Code āļāļĢāļ°āļŦāļĒัāļāđāļ§āļĨāļēāđāļāļāļēāļĢāđāļีāļĒāļāđāļ้āļ āđāļĨāļ°āļāļģāđāļŦ้āļāļēāļĢāļāļĨิāļāļิ้āļāļŠ่āļ§āļāļี่āļัāļāļ้āļāļāļĄีāļāļ§āļēāļĄāļĒืāļāļŦāļĒุ่āļāđāļĨāļ°āļĄีāļāļĢāļ°āļŠิāļāļิāļ āļēāļāļĄāļēāļāļึ้āļāļāļĒ่āļēāļāđāļŦ็āļāđāļ้āļัāļ āļāļēāļĢāļāļ§āļāļุāļĄāđāļāļāļิāļāđāļŦāļĨ่āļēāļี้āļืāļāļāļēāļĢāļĒāļāļĢāļ°āļัāļāļŠู่ CNC Programming Efficiency āļั้āļāļŠูāļāļāļĒ่āļēāļāđāļ้āļāļĢิāļ
| āđāļāļāļิāļāļŦāļĨัāļ | CNC Subprograms, CNC Macro Programming, O-Code, M98 M99, G65 G-Code |
| āļāļĢāļ°āļŠิāļāļิāļ āļēāļ | āļĨāļāļāļ§āļēāļĄāļĒāļēāļ§ G-Code, CNC Programming Efficiency, āđāļิ่āļĄāļāļĢāļ°āļŠิāļāļิāļ āļēāļ CNC, āļāļēāļāļ้āļģāđ |
| āļāļēāļĢāđāļีāļĒāļāđāļ้āļāļั้āļāļŠูāļ | Variable Programming CNC, āļāļēāļĢāđāļีāļĒāļāđāļāļĢāđāļāļĢāļĄ Parametric, āđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ CNC, āđāļāļāļิāļāļāļēāļĢāđāļีāļĒāļāđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ |
| āļāļēāļĢāļāļģāļāļēāļ | G-Code Optimization, CNC Coding, āļāļ§āļāļุāļĄāļāļēāļāļ้āļģ, G-Code |
| āļāļĨุ่āļĄāđāļ้āļēāļŦāļĄāļēāļĒ | CNC Programmer, Advanced CNC, āđāļĢีāļĒāļ CNC Macro |
āļ āļēāļāļี่ 1: Subprogram Concept (āđāļāļ§āļิāļāđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒ)
āļ āļēāļāļี้āļāļ°āđāļŠāļāļāļ āļēāļāļĢāļ§āļĄāļ§่āļē Subprogram āļ่āļ§āļĒāļĨāļāđāļ้āļāļี่āļ้āļģāļ้āļāļāđāļ้āļāļĒ่āļēāļāđāļĢ āđāļāļĒāđāļ้ M98 āđāļĨāļ° M99
āļ āļēāļāļิāļāđāļāļāļĢāļēāļิāļāđāļāļĢีāļĒāļāđāļีāļĒāļ: āļ้āļēāļāļ้āļēāļĒāđāļŠāļāļāđāļ้āļāļี่āļ้āļģāļัāļāļŦāļĨāļēāļĒāļāļĨ็āļāļ ("Repeated G-Code Blocks") āļ้āļēāļāļāļ§āļēāđāļŠāļāļāđāļāļĢāđāļāļĢāļĄāļŦāļĨัāļāļี่āļŠั้āļāļĨāļāļāļĢ้āļāļĄāļĨูāļāļĻāļĢāļี้āđāļāļี่ Subprogram (O-Code) āļāļĢ้āļāļĄāļ้āļāļāļ§āļēāļĄāļŦāļĨัāļ "SUBPROGRAMS (M98/M99): Reducing Redundancy" āđāļĨāļ°āļัāļ§āļāļĒ่āļēāļāđāļ้āļāļŠั้āļāđ
āļ āļēāļāļี่ 2: M98 and M99 Flow (āļāļēāļĢāđāļŦāļĨāļāļāļ M98 āđāļĨāļ° M99)
āļ āļēāļāļี้āđāļŠāļāļāļĨāļģāļัāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāļāļēāļĢāđāļĢีāļĒāļāđāļ้āđāļĨāļ°āļŠ่āļāļāļĨัāļāļāļēāļ Subprogram āļāļĒ่āļēāļāļัāļāđāļāļ
āđāļāļāļ āļēāļāđāļŠāļāļāļāļēāļĢāđāļŦāļĨāļāļāļāđāļāļĢāđāļāļĢāļĄ: 1. Main Program (M98 Call), 2. Jump to Subprogram (Oxxxx), 3. Execute Subprogram, 4. Return to Main Program (M99 Return). āļāļĢ้āļāļĄāļ้āļāļāļ§āļēāļĄ "M98/M99: The Subprogram Workflow" āđāļĨāļ°āđāļ้āļ 'L' (Loop) Parameter.
āļ āļēāļāļี่ 3: Macro and Parametric Programming (Macro āđāļĨāļ° Parametric)
āļ āļēāļāļี้āļāļ°āļŠื่āļāļึāļāļāļĨัāļāļāļāļ Macro āđāļāļāļēāļĢāđāļ้āļัāļ§āđāļāļĢ (Variables) āđāļื่āļāļŠāļĢ้āļēāļāļāļ§āļēāļĄāļĒืāļāļŦāļĒุ่āļ
āļ āļēāļāđāļŠāļāļāļāļ§āļēāļĄāđāļāļāļ่āļēāļāļĢāļ°āļŦāļ§่āļēāļ Subprogram (Fixed) āļัāļ Macro (Flexible). āđāļ้āļāļāļēāļĢāđāļ้ G65 āđāļĨāļ°āļัāļ§āđāļāļĢ (#1, #2) āđāļ็āļ Argument āđāļื่āļāļāļģāļŦāļāļāļāļāļēāļ/āļāļģāđāļŦāļ่āļāļี่āđāļāļāļ่āļēāļāļัāļāļŠāļģāļŦāļĢัāļāđāļāļĢāđāļāļĢāļĄāļĒ่āļāļĒāđāļีāļĒāļ§ āļāļĢ้āļāļĄāļ้āļāļāļ§āļēāļĄ "MACRO PROGRAMMING (G65): Parametric Flexibility"
āļ āļēāļāļี่ 4: G-Code Optimization (āļāļēāļĢāđāļิ่āļĄāļāļĢāļ°āļŠิāļāļิāļ āļēāļ G-Code)
āļ āļēāļāļี้āļāļ°āđāļ้āļāļึāļāļāļĨāļĨัāļāļ์āļāļāļāļāļēāļĢāđāļ้āđāļāļāļิāļāđāļŦāļĨ่āļēāļี้āđāļāļāļēāļĢāļĨāļāļāļ§āļēāļĄāļĒāļēāļ§āđāļ้āļāđāļĨāļ°āđāļิ่āļĄāļāļĢāļ°āļŠิāļāļิāļ āļēāļāđāļāļĒāļĢāļ§āļĄ
āļ āļēāļāļāļĢāļēāļิāļāđāļŠāļāļāđāļ่āļāđāļ้āļāļี่āļĒāļēāļ§ (Before Optimization) āđāļĨāļ°āđāļ่āļāđāļ้āļāļี่āļŠั้āļāļĨāļāļĄāļēāļ (After Optimization) āļāļĢ้āļāļĄāđāļāļāļāļāđāļŠāļāļāļāļ§āļēāļĄāđāļĢ็āļ§āđāļĨāļ°āļāļĢāļ°āļŠิāļāļิāļ āļēāļāļี่āđāļิ่āļĄāļึ้āļ āļāļĢ้āļāļĄāļ้āļāļāļ§āļēāļĄāļŦāļĨัāļ "G-CODE OPTIMIZATION: Reduce Code Length, Increase Efficiency" āđāļĨāļ°āļัāļ§āđāļĨāļāđāļāļĢีāļĒāļāđāļีāļĒāļ āđāļ่āļ "1000 Lines -> 50 Lines".
āļāļ§āļēāļĄāļิāļāđāļŦ็āļ
āđāļŠāļāļāļāļ§āļēāļĄāļิāļāđāļŦ็āļ