Depth of cut and step-over in CNC Programming - Time & Space Complexity
When programming CNC machines, the depth of cut and step-over affect how many passes the machine makes.
We want to know how the total work grows as these values change.
Analyze the time complexity of the following CNC code snippet.
G21 ; Set units to millimeters
G90 ; Absolute positioning
; Define machining area
X_start = 0
X_end = 100
Y_start = 0
Y_end = 50
Depth_of_cut = 2
Step_over = 5
Total_depth = 10
; Loop over depth
for Z in range(0, Total_depth, Depth_of_cut):
; Loop over Y axis
for Y in range(Y_start, Y_end, Step_over):
; Move tool to start position
G1 X X_start Y Y Z Z
; Move tool across X axis
G1 X X_end Y Y Z Z
This code moves the tool in layers downwards, making passes across the Y axis with steps sideways.
Look at the loops that repeat the tool movements.
- Primary operation: The nested loops over depth (Z) and Y axis positions.
- How many times: The outer loop runs for Total_depth divided by Depth_of_cut times. The inner loop runs for the length of Y divided by Step_over times.
As we make the depth of cut smaller, the number of depth layers increases. Similarly, smaller step-over means more passes across Y.
| Input Size (Depth layers x Y passes) | Approx. Operations |
|---|---|
| 10 x 10 | 100 |
| 20 x 20 | 400 |
| 50 x 50 | 2500 |
Pattern observation: The total operations grow roughly with the product of the number of depth layers and Y passes.
Time Complexity: O((Total_depth / Depth_of_cut) x ((Y_end - Y_start) / Step_over))
This means the total work grows proportionally to how many depth layers and side passes the machine makes.
[X] Wrong: "Changing depth of cut or step-over only affects one loop, so time grows linearly with one factor only."
[OK] Correct: Both loops multiply the total passes, so reducing either value increases total operations multiplicatively, not just additively.
Understanding how nested loops multiply work is a key skill in CNC programming and automation scripting.
It helps you predict how changes in parameters affect machining time and efficiency.
What if we changed the step-over to be equal to the tool diameter? How would that affect the time complexity?
