Bird
Raised Fist0
CNC Programmingscripting~20 mins

Pattern drilling with loops in CNC Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Pattern Drilling Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Output of a simple drilling loop
What is the output of this CNC drilling loop code snippet?
CNC Programming
FOR I = 1 TO 3
  G81 X=I*10 Y0 Z-5 R1 F100
ENDFOR
ASyntax error due to missing loop variable declaration
BDrills holes at X=1, X=2, X=3 on Y=0
CDrills holes at X=10, Y=10, Z=-5 three times
DDrills holes at X=10, X=20, X=30 on Y=0
Attempts:
2 left
💡 Hint
Look at how the X coordinate changes with the loop variable I.
📝 Syntax
intermediate
2:00remaining
Identify the syntax error in drilling loop
Which option contains the syntax error in this CNC drilling loop?
CNC Programming
FOR I = 1 TO 4
  G81 X=I*15 Y0 Z-6 R1 F120
ENDFOR
AMissing semicolon after G81 command
BFOR loop missing 'DO' keyword
CParentheses around I*15 cause syntax error
DNo syntax error, code is correct
Attempts:
2 left
💡 Hint
Check how expressions are written in CNC loop commands.
🚀 Application
advanced
3:00remaining
Create a rectangular drilling pattern
You want to drill a 3x2 grid of holes spaced 20mm apart starting at X=0, Y=0. Which code snippet correctly uses loops to do this?
A
FOR X = 0 TO 40 STEP 20
  FOR Y = 0 TO 20 STEP 20
    G81 X=X Y=Y Z-5 R1 F100
  ENDFOR
ENDFOR
B
FOR I = 0 TO 2
  FOR J = 0 TO 1
    G81 X=I*20 Y=J*20 Z-5 R1 F100
  ENDFOR
ENDFOR
C
FOR I = 1 TO 3
  FOR J = 1 TO 2
    G81 X=I*20 Y=J*20 Z-5 R1 F100
  ENDFOR
ENDFOR
D
FOR X = 0 TO 60 STEP 20
  FOR Y = 0 TO 40 STEP 20
    G81 X=X Y=Y Z-5 R1 F100
  ENDFOR
ENDFOR
Attempts:
2 left
💡 Hint
Remember the grid size and spacing, and how loop counters multiply spacing.
🔧 Debug
advanced
2:00remaining
Why does this drilling pattern miss the last hole?
This code is supposed to drill 4 holes spaced 10mm apart on X axis, but only drills 3. Why?
CNC Programming
FOR I = 1 TO 3
  G81 X=I*10 Y=0 Z-5 R1 F100
ENDFOR
ALoop ends at 3, so only 3 holes drilled, should go to 4
BStep size missing, so loop defaults to step 2
CZ depth is too shallow, skipping last hole
DY coordinate is fixed at 0, causing overlap
Attempts:
2 left
💡 Hint
Check the loop range carefully.
🧠 Conceptual
expert
2:00remaining
Calculate total holes drilled in complex pattern
Given this nested loop drilling pattern, how many holes are drilled in total? FOR I = 0 TO 2 FOR J = 0 TO 3 G81 X=I*15 Y=J*10 Z-5 R1 F100 ENDFOR ENDFOR
A12 holes
B6 holes
C8 holes
D15 holes
Attempts:
2 left
💡 Hint
Multiply the number of iterations of both loops.

Practice

(1/5)
1. What is the main purpose of using loops in CNC pattern drilling?
easy
A. To repeat drilling commands at different positions automatically
B. To manually move the drill to each hole position
C. To change the drill bit size during drilling
D. To stop the machine after each hole

Solution

  1. Step 1: Understand loop function in CNC drilling

    Loops repeat commands to drill multiple holes without manual repositioning.
  2. Step 2: Identify the correct purpose

    Repeating drilling commands at different positions automatically matches loop use.
  3. Final Answer:

    To repeat drilling commands at different positions automatically -> Option A
  4. Quick Check:

    Loops automate repeated drilling = A [OK]
Hint: Loops automate repeated actions, like drilling many holes [OK]
Common Mistakes:
  • Thinking loops change drill bit size
  • Confusing manual moves with loops
  • Assuming loops stop the machine
2. Which of the following is the correct syntax to start a loop that drills 5 holes in a line spaced 10mm apart in a CNC program?
easy
A. LOOP 5 TIMES; DRILL X=10 Y=0 Z=-5; ENDLOOP
B. FOR I = 1 TO 5; G81 X10*I Y0 Z-5; ENDFOR
C. FOR I = 1 TO 5; G81 X(I*10) Y0 Z-5; ENDFOR
D. REPEAT 5; G81 X(I*10) Y0 Z-5; ENDREPEAT

Solution

  1. Step 1: Identify correct loop syntax with variable usage

    FOR I = 1 TO 5; G81 X(I*10) Y0 Z-5; ENDFOR uses FOR loop with variable I and correct multiplication syntax X(I*10).
  2. Step 2: Check other options for syntax errors

    Options A, C, and D have incorrect loop or variable syntax for CNC.
  3. Final Answer:

    FOR I = 1 TO 5; G81 X(I*10) Y0 Z-5; ENDFOR -> Option C
  4. Quick Check:

    Correct FOR loop syntax = B [OK]
Hint: Look for FOR loop with variable in parentheses for position [OK]
Common Mistakes:
  • Using incorrect loop keywords like LOOP or REPEAT
  • Wrong variable multiplication syntax
  • Missing ENDFOR to close loop
3. What will be the output positions of holes drilled by this loop?
FOR I = 0 TO 2
  FOR J = 0 TO 1
    G81 X(I*20) Y(J*15) Z-5
  ENDFOR
ENDFOR
medium
A. Holes at (0,0), (0,15), (20,0), (20,15), (40,0), (40,15)
B. Holes at (0,0), (15,0), (20,0), (35,0), (40,0), (55,0)
C. Holes at (0,0), (0,15), (0,30), (20,0), (20,15), (20,30)
D. Holes at (0,0), (15,20), (30,40), (45,60), (60,80), (75,100)

Solution

  1. Step 1: Calculate X positions for I=0,1,2

    X = I*20 gives 0, 20, 40.
  2. Step 2: Calculate Y positions for J=0,1

    Y = J*15 gives 0, 15.
  3. Step 3: Combine X and Y for all pairs

    Pairs: (0,0), (0,15), (20,0), (20,15), (40,0), (40,15).
  4. Final Answer:

    Holes at (0,0), (0,15), (20,0), (20,15), (40,0), (40,15) -> Option A
  5. Quick Check:

    Nested loops create grid positions = C [OK]
Hint: Multiply loop variables by spacing to find hole coordinates [OK]
Common Mistakes:
  • Mixing X and Y multipliers
  • Ignoring nested loop effect
  • Calculating wrong coordinate pairs
4. Identify the error in this CNC drilling loop code:
FOR I = 1 TO 4
  G81 X(I*15) Y0 Z-5
ENDFOR
G80
medium
A. Loop variable I should start from 0, not 1
B. Incorrect syntax: parentheses around I*15 are not allowed
C. Missing G80 command to cancel drilling cycle
D. No error, code will run correctly

Solution

  1. Step 1: Check syntax for variable multiplication

    Parentheses around I*15 are not standard in CNC; should be X I*15 without parentheses.
  2. Step 2: Verify other parts

    G80 is present to cancel cycle; loop starting at 1 is valid; no missing commands.
  3. Final Answer:

    Incorrect syntax: parentheses around I*15 are not allowed -> Option B
  4. Quick Check:

    Parentheses cause syntax error = A [OK]
Hint: Avoid parentheses in coordinate expressions in CNC loops [OK]
Common Mistakes:
  • Assuming loop must start at 0
  • Forgetting G80 cancels drilling cycle
  • Using parentheses in coordinate math
5. You want to drill a 3x3 grid of holes spaced 25mm apart starting at X=10, Y=10. Which loop code correctly drills this pattern?
hard
A. FOR I=0 TO 2 FOR J=0 TO 2 G81 X(10+I*25) Y(10+J*25) Z-5 ENDFOR ENDFOR
B. FOR I=1 TO 3 FOR J=1 TO 3 G81 X10+I*25 Y10+J*25 Z-5 ENDFOR ENDFOR
C. FOR I=1 TO 3 FOR J=1 TO 3 G81 X(10+I*25) Y(10+J*25) Z-5 ENDFOR ENDFOR
D. FOR I=0 TO 2 FOR J=0 TO 2 G81 X10+I*25 Y10+J*25 Z-5 ENDFOR ENDFOR

Solution

  1. Step 1: Confirm loop ranges for 3 holes

    Loops from 0 to 2 produce 3 iterations each, matching 3 holes per row and column.
  2. Step 2: Check coordinate calculation syntax

    FOR I=0 TO 2 FOR J=0 TO 2 G81 X10+I*25 Y10+J*25 Z-5 ENDFOR ENDFOR uses correct syntax without parentheses and adds starting offset 10 correctly.
  3. Step 3: Verify other options

    Options A and C use parentheses causing syntax errors; B starts loops at 1, causing incorrect math.
  4. Final Answer:

    FOR I=0 TO 2 FOR J=0 TO 2 G81 X10+I*25 Y10+J*25 Z-5 ENDFOR ENDFOR -> Option D
  5. Quick Check:

    Correct loop range and syntax = D [OK]
Hint: Use 0-based loops and add start offset without parentheses [OK]
Common Mistakes:
  • Using parentheses causing syntax errors
  • Starting loops at 1 causing off-by-one positions
  • Not adding start offset correctly
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