PikoCNC G-Code Full Skill (Complete Implementation-Oriented)#
PURPOSE#
This document represents a complete, implementation-oriented skill for PikoCNC G-code.
It includes:
- Full command coverage (based on manual)
- Modal state model
- Execution rules
- Examples per command
- Interpreter-ready structure
1. MACHINE STATE MODEL#
Modal Groups#
- Motion: G0, G1, G2, G3
- Units: G20, G21
- Cycle: G80, G81
- Scaling: G51
State Variables#
- Position: X, Y, Z
- Feed rate: F
- Spindle: S
- Motion mode
- Unit mode
- Active cycle
- Scaling factor
- Tool number
2. PROGRAM STRUCTURE#
Start / End#
%
...
M30
( comment )
; comment
' comment
3. CORE COMMANDS#
G0 – Rapid#
G0 X10 Y10
G1 – Linear#
G1 X20 Y20 F100
G2 – CW Arc#
G2 X20 Y20 I5 J0
G3 – CCW Arc#
G3 X20 Y20 I-5 J0
Rules#
- I/J relative to start point
- R optional (alternative)
- Do not mix I/J with R
4. UNITS#
G20 – Inches#
G20
G21 – Millimeters#
G21
5. DWELL#
G4 P2
6. HOMING#
G28#
G28
G30#
G30
7. DRILLING#
G81#
G98
G81 X10 Y10 Z-5 R2 F100
Cancel#
G80
8. SCALING#
G51#
G51 I1.5
G51 I1.5 X10 Y10
9. PARAMETERS#
F100
S1000
10. M-CODES#
M0
M3 S1000
M4
M5
M6 T1
M8
M9
M10
M11
M30
M6 triggers:
- M6_beg
- M6_put
- M6_get
- M6_mess
- M6_end
12. MODAL RULES#
- Motion persists
- Feed persists
- Units persist
Example:
G1 X10 Y10
X20 Y20
13. NON-MODAL#
14. EXECUTION ENGINE (INTERPRETER LOGIC)#
Step Processing#
- Parse line
- Update modal state
- Execute motion
- Apply parameters
Motion Execution#
- G0: instant move
- G1: linear interpolation
- G2/G3: arc interpolation
15. ERROR HANDLING#
- Missing parameters → error
- Invalid arc definition → error
- Unknown command → ignore or error
16. SAFE PROGRAM TEMPLATE#
%
G21
G0 Z5
G0 X0 Y0
G1 Z-1 F100
G1 X50 Y0
G1 X50 Y50
G1 X0 Y50
G1 X0 Y0
G0 Z5
M30
17. BEST PRACTICES#
- Always set units
- Always retract Z before rapid XY
- Avoid mixing arc definitions
- Reset states when needed
18. IMPLEMENTATION NOTES#
To build interpreter in C#:
- Lexer → tokenize line
- Parser → command objects
- State machine → modal tracking
- Executor → motion simulation
SUMMARY#
This file provides:
- Full command coverage
- Execution semantics
- Interpreter-ready structure
It can be used for:
- CNC programming
- G-code validation
- Simulator development