Bird
Raised Fist0
CNC Programmingscripting~5 mins

G-code program structure in CNC Programming - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the O number at the start of a G-code program?
The O number is the program number or ID. It helps the CNC machine identify and select the program to run, like a name tag for the program.
Click to reveal answer
beginner
What does the G00 command do in a G-code program?
G00 tells the machine to move the tool quickly to a new position without cutting. Think of it as moving your hand fast to a new spot before starting to draw.
Click to reveal answer
beginner
Why is it important to have a M30 command at the end of a G-code program?
M30 signals the end of the program and resets the machine to the start. It’s like saying "I’m done" so the machine knows to stop and get ready for the next job.
Click to reveal answer
intermediate
What role do G-codes and M-codes play in a G-code program?
G-codes control the tool’s movements and actions (like moving, cutting), while M-codes control machine functions (like turning the spindle on/off). Together, they tell the machine what to do step-by-step.
Click to reveal answer
intermediate
Explain the typical structure order of a simple G-code program.
A simple G-code program usually starts with the program number (O), then setup commands (like tool selection and spindle on), followed by motion commands (G00, G01), and ends with the program stop command (M30).
Click to reveal answer
What does the O1000 line represent in a G-code program?
ATool number
BProgram number or ID
CSpindle speed
DFeed rate
Which command moves the tool quickly without cutting?
AG01
BM30
CG00
DM03
What does the M30 command do?
AStarts the spindle
BChanges tool
CMoves tool to home
DEnds the program and resets
Which codes control machine functions like spindle on/off?
AM-codes
BG-codes
CT-codes
DF-codes
What is the correct order in a simple G-code program?
AProgram number, setup commands, motion commands, end command
BEnd command, motion commands, setup commands
CMotion commands, program number, end command
DSetup commands, end command, program number
Describe the main parts of a G-code program and their purpose.
Think about how the program starts, what it does, and how it finishes.
You got /4 concepts.
    Explain the difference between G-codes and M-codes in a G-code program.
    One controls motion, the other controls machine actions.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the correct way to start a G-code program?
      easy
      A. Write G90 as the first line
      B. Start with the command M30
      C. Use G01 to start the program
      D. Begin with a program number like O1000

      Solution

      1. Step 1: Identify the program start syntax

        G-code programs start with a program number, usually written as O1000 or similar.
      2. Step 2: Understand the role of other commands

        M30 ends the program, G01 and G90 are motion and positioning commands, not start markers.
      3. Final Answer:

        Begin with a program number like O1000 -> Option D
      4. Quick Check:

        Program start = O1000 [OK]
      Hint: Program always starts with O-number like O1000 [OK]
      Common Mistakes:
      • Confusing M30 as start instead of end
      • Using motion commands as start
      • Skipping program number line
      2. Which of the following lines correctly ends a G-code program?
      easy
      A. G00 X0 Y0
      B. O1000
      C. M30
      D. G90

      Solution

      1. Step 1: Identify the program end command

        The command M30 is used to stop and end a G-code program.
      2. Step 2: Differentiate from other commands

        G00 moves the tool, G90 sets positioning mode, and O1000 is a program number, not an end command.
      3. Final Answer:

        M30 -> Option C
      4. Quick Check:

        Program end = M30 [OK]
      Hint: Program ends with M30 command [OK]
      Common Mistakes:
      • Using motion commands as program end
      • Confusing program number with end command
      • Omitting M30 at program end
      3. Given the following G-code snippet, what is the tool's final position?
      O1000
      G90
      G00 X10 Y5
      G01 X20 Y15 F100
      M30
      medium
      A. X20 Y15
      B. X10 Y5
      C. X0 Y0
      D. X100 Y100

      Solution

      1. Step 1: Trace the tool movements

        G00 X10 Y5 moves the tool rapidly to X=10, Y=5. Then G01 X20 Y15 F100 moves it linearly to X=20, Y=15.
      2. Step 2: Identify final position before program end

        The last position command is G01 X20 Y15, so the tool ends at X=20, Y=15.
      3. Final Answer:

        X20 Y15 -> Option A
      4. Quick Check:

        Last move = X20 Y15 [OK]
      Hint: Final position is last coordinate command before M30 [OK]
      Common Mistakes:
      • Confusing rapid move (G00) as final position
      • Ignoring linear move (G01)
      • Assuming start position is final
      4. Identify the error in this G-code program snippet:
      O2000
      G01 X10 Y10
      G90
      M30
      medium
      A. G90 should come before G01 for positioning mode
      B. M30 is used incorrectly
      C. Missing program start number
      D. No error, program is correct

      Solution

      1. Step 1: Check command order for positioning

        G90 sets absolute positioning and should be set before any move commands like G01.
      2. Step 2: Analyze the given order

        The program moves with G01 before setting G90, which can cause unexpected positioning behavior.
      3. Final Answer:

        G90 should come before G01 for positioning mode -> Option A
      4. Quick Check:

        Set positioning mode before moves [OK]
      Hint: Set G90 before moves to avoid positioning errors [OK]
      Common Mistakes:
      • Placing G90 after move commands
      • Ignoring command order importance
      • Assuming M30 ends program incorrectly
      5. You want to write a G-code program that sets absolute positioning, moves the tool to X=50 Y=50 at feed rate 200, then ends the program. Which is the correct structure?
      hard
      A.
      O3000
      G01 X50 Y50 F200
      G90
      M30
      B.
      O3000
      G90
      G01 X50 Y50 F200
      M30
      C.
      G90
      O3000
      G01 X50 Y50 F200
      M30
      D.
      O3000
      M30
      G90
      G01 X50 Y50 F200

      Solution

      1. Step 1: Confirm program start and positioning

        The program must start with a program number O3000 and set absolute positioning G90 before moves.
      2. Step 2: Check move command and program end

        G01 X50 Y50 F200 moves the tool at feed rate 200, and M30 ends the program properly.
      3. Final Answer:

        O3000 G90 G01 X50 Y50 F200 M30 -> Option B
      4. Quick Check:

        Start with O-number, set G90, move, then M30 [OK]
      Hint: Start with O-number, set G90, move, then M30 to end [OK]
      Common Mistakes:
      • Placing M30 before moves
      • Setting G90 after moves
      • Starting without program number
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard