MillMage version:
-
MillMage [insert exact version, e.g. 0.8.01-RC-3] on macOS
-
Controller: GRBL (X‑Carve 1000 mm)
-
Tool: 1/4" spiral downcut
Summary
When using Entry Type = ZigZagRamp on a Profile operation around a circular part, the ramp does not reach the full programmed depth by the time it transitions onto the circular contour. This leaves a small “shoulder” or step at the entry point on the finished wall, even though Final Depth and Depth Per Pass are set cleanly.
On circular geometry (no straight segments), I would expect the zigzag to complete its Z‑drop to the current pass depth before the cutter begins following the circle. Instead, it appears to blend onto the circle early, leaving a visible ledge.
Expected behavior (per docs)
The Profile Operation docs state:millmagesoftware
-
Zig Zag Ramp:
-
“The router plunges straight down to begin the pass, then performs the zig zag motion, lowering along Z as it goes.”
-
“For ZigZag and Plunge entries, the router lowers to the Depth Per Pass as it begins carving each pass.”
-
My understanding of this is:
-
For a pass with Depth Per Pass = D, the zigzag entry should end at Z = −D.
-
When the tool transitions from the zigzag onto the main profile, it should already be at that pass depth, so the wall is continuous with no shoulder at the start point.
Actual behavior
On a round part:
-
The zigzag starts at the entry point and begins ramping down.
-
Before the Z‑axis reaches the full Depth Per Pass, the toolpath transitions onto the circular contour.
-
The remainder of the ramp “depth” seems to finish as the bit is already following the circle, resulting in a tiny radial step/shoulder where the ramp began.
The attached photo shows:
-
A clean, continuous wall for most of the circumference.
-
One localized spot where a small ledge is visible; this aligns with the zigzag entry point in Preview.
This appears in Preview as well as on the physical cut, so it doesn’t look like lost Z‑steps or mechanics—it seems to be how the toolpath itself is being generated.
Minimal repro steps
Here is a simple way I can reproduce it:
-
Create a new MillMage project.
-
Draw a single circle (e.g. 3" diameter).
-
Create a Profile operation:
-
Tool: 1/4" downcut
-
Side: Outside
-
Start Depth: 0
-
Final Depth: 0.250"
-
Depth Per Pass: 0.250" (single pass; also happens with multiple passes such as 0.3125" to 0.625")
-
Entry Type: ZigZagRamp
-
Ramp Angle: e.g. 20–25°
-
I see the artifact on parts in hardwood with these settings.
Additional context
-
The part geometry is purely circular (no straight sections), so there is nowhere “obvious” for the ramp to truncate.
-
Depth values are clean multiples, so rounding shouldn’t be causing a partial pass.
Questions for the devs
-
Is this a known issue with ZigZagRamp on closed circular profiles?
-
Is there a recommended workaround besides switching the final pass to Plunge/Spiral or adding a tiny separate cleanup pass just to remove that shoulder?
-
Should ZigZagRamp enforce that the ramp fully reaches Depth Per Pass before transitioning onto the profile, even when the geometry is a complete circle?
I’m happy to provide the .mage project file and additional screenshots or test variations if that helps track it down.
Thanks for taking a look—MillMage has been great overall, and I’d love to help tighten up this edge case if it is indeed a bug.







