Understanding Tool Diameter and Shape, Laser Kerf, and Nozzle Width in CNC, Laser, and 3D Printing

CNC machines, laser cutters, and even 3D printers are no longer limited to industrial environments. Thanks to the rise of compact, affordable hardware and powerful open-source projects like GRBL, these tools have found their way into homes and small workshops.

While they each use different technologies—cutting with a spinning bit, burning with a laser, or building with melted plastic—they all share a common challenge: understanding how tool size affects the final result.

This guide will help you grasp how different diameters affect your cuts and how you can compensate for these variations using either in-house tools from MIDILLI, or with adjustments directly in the G-Code.

This post is part of a quick, yet comprehensive guide (QCG) series by MIDILLI.

Content

Some Background

Depending on the material, it is possible to perform cuts or engravings using methods such as laser cutting, plasma cutting, water jet cutting, or CNC cutting.

CNC cutting requires an endmill (also called a cutter or bit) that rotates at defined speeds. The endmill may cut in CNC routers in 2 (x, y), 3 (x, y, z), 4 (x, y, z, a), 5 (x, y, z, a, b), and 6 (x, y, z, a, b, c) axes.

Once the bit touches the material, and if it is completely inside the material, the material corresponding to the bit diameter is removed (from left and right, each side with the amount of bit radius). A larger bit diameter allows for faster, larger cuts with fewer movements, while a smaller bit diameter is ideal for precise cuts and smaller details. However, larger diameters require more compensation to ensure the cut matches your desired dimensions accurately.

This guide will only explain the effects of the diameter based on its shape and how it can be adjusted to compensate for this sizing in the G-Code. Throughout the documentation, the term “bit” will be used.

Example 1: Cutting a Circle Without Compensation

Let’s understand why tool diameter compensation is essential by starting with a simple shape: a circle.

Cutting simple circle.

In G-Code, the coordinates typically define the center of the tool, not its edge. Suppose you want to cut a perfect circle with a diameter of 10 mm (D = 10) from a 1 mm thick material. You (or your G-Code sender) set the toolpath to center at x = 5, y = 5 with a radius of 5 mm (d = 5).

Sounds correct, but the machine assumes the bit diameter is 0 unless told otherwise. That means the final cut will actually be 10 mm + bit diameter, not 10 mm as intended.

The result: a larger hole than expected.

Example 2: Creating a Rectangular Area Without Compensation

Now let’s look at a rectangle.

Imagine you want to cut a rectangular area starting at x = 0, y = 0 with a length of 20 cm and width of 10 cm using a bit with a diameter of D (or radius d = D/2).

If you don’t apply compensation, the bit cuts with its center on the defined path. So, the outer edge of the bit extends beyond the shape, increasing the final cut size. You’ll get a rectangle measuring 20 + D cm × 10 + D cm, not the 20×10 cm you planned. Check the animation below (the dotted rectangle is the toolpath, blue rectangle is the actual cut):

Cutting a rectangle from a part without compensation.

How can we then fix it?

Solution 1: Manual Compensation

To get the correct dimensions, you need to offset the toolpath inward by the bit’s radius (D/2 = d) if you are creating an inner area (20 - d, 10 - d). This compensation ensures the outer edge of the bit follows the correct boundary, giving you a final cut that matches the original design.

If your goal is to extract a piece from a larger sheet or plane, you will need to offset the toolpath outward. We’ll come to that later.

Solution 2: Automatic Bit Diameter Compensation

If you are using GRBL-based CNC cutter, unfortunately it does not support dynamic tool compensation like G41 (left) or G42 (right). These commands are common in full-featured CNC controllers, but are intentionally not implemented in GRBL due to its minimal design and focus on small, low-cost machines.

What is possible instead?

Since GRBL doesn’t handle real-time compensation, you can:

  • 💡Use one of MIDILLI’s free tools for G-Code, or SVG generation. Slicer software of 3D printers already compensates the nozzle width from the given STL automatically.
  • 💻 Use CAM software to apply compensation beforehand. Most CAM tools (like Fusion 360, FreeCAD, Carbide Create, etc.) allow you to choose “compensated” toolpaths that factor in the bit diameter.
  • ⚙️ Use GRBL-compatible senders with built-in offset features. Some G-code sender programs (like bCNC or CNCjs) may let you apply simple offsets or simulate compensation.

Toolpath Direction: Inward vs. Outward Compensation

In the examples above, we applied inward toolpath compensation. This method is suitable when creating an empty shape or recessed area – like engraving or pocketing – within the material.

However, if the goal is to cut out a usable part from a larger sheet (for example, extracting a panel, gear, or token), this approach would lead to undersized results. In such cases, the toolpath must be offset outward to preserve the intended dimensions of the final piece.

Check the images below for visual reference:

Left: Creating a rectangular area with inward compensation
Right: Cutting a rectangular piece from a larger plane with outward compensation

  • The left example creates a rectangle-shaped pocket with precise dimensions.
  • The right example extracts a standalone part with the correct width and height.

This logic applies to circular shapes as well:

In the above example, to create a circular area with a diameter of D, your machine must cut a circle with a radius of d – b (where d is the target circle radius and b is the bit radius).
But if you’re cutting out a circular piece to use later, it must be d + b instead.

What if the target diameter (D) is much larger than the bit diameter (B)? In such cases, the machine cannot cut the entire area in one pass. Instead, it creates multiple concentric circular toolpaths, working its way inward. See the example below:

In that case, the first circle (the outermost toolpath) will be cut with a radius of d - b. For each subsequent pass, reduce the radius by a fixed amount.

  • If you reduce by B, the next toolpath will start just next to the previous one — no material will be left between passes.
  • If you reduce by b < B, you’ll get overlapping cuts. This is usually preferred for smoother surfaces or tougher materials, but it increases machining time.
  • The last pass should have a radius of B/2, allowing the bit to reach the center without cutting too far.

You don’t need to do more loops than necessary. Unless high precision or surface quality is critical, a step size equal to B is generally sufficient for clearing areas efficiently.

Big Impact: Bit Shape

The previous examples assume that the bit (cutter) has a uniform diameter along its entire height, as is the case with standard flat endmills. However, V-shaped bits (also known as engraving bits) behave differently:

The deeper they cut, the wider the effective cutting diameter becomes.

In these cases, material thickness and cut depth directly affect the cutting width. That means compensation isn’t just a fixed offset. It must be dynamic and depth-aware to maintain dimensional accuracy.

🛠 This situation is specific to CNC machining. Because:

  • In laser cutting, the beam stays straight and thin, so the cut width (kerf) is usually constant.
  • In 3D printing, material is added rather than removed, and compensation is handled automatically by the slicer.

💡 Good news: MIDILLI Free G-Code Generator already takes this into account and applies automatic compensation for V-bits as well.

How does bit shape affect the compensation?

Let’s go back to high school geometry and recall one of the most fundamental trigonometric functions: tangent.

We’ll look at a V-shaped bit, which has an angled tip — let’s say 90° for simplicity. This means each side forms a 45° angle with the vertical. Remember also tan(45°) = 1

V-Shaped cutter, compensation calculation.

Now, imagine this bit cutting into a material. As it goes deeper (hcurrent), the cutting diameter (c’) increases. This is because the wider part of the V engages with the material as depth increases.

Tangent Function to the Rescue

Using a basic right triangle formed by:

  • The depth of cut (hcurrent)
  • Half the cutting diameter (c'/2)
  • And the bit angle a = 90°

tan(a/2) = (c'/2) / h_current

Solve for c’ (the current cutting diameter):

c' = 2 × h_current × tan(a/2)

For a 90° V-bit:

tan(90/2) = tan(45°) = 1

Which results in: c' = 2 × h_current

As a conclusion, when using V-shaped bits, the cut width increases with depth. However, when your bit reaches its maximum cut diameter, then beyond a certain depth, it simply can’t cut any wider. That means your compensation cannot/won’t increase anymore, even if the cut depth increases.

Here are some additional examples to reinforce the concept:

  • If you were to create an area on a 3 mm thick material using a V-shaped bit with a 90° angle and a maximum cut width (bit diameter) of 3 mm, the required inward compensation would be 1.5 mm.
  • Similarly, if the material were 2 mm thick, the compensation would be 1 mm.
  • Now comes the catch: what if the material is 4 mm thick? The compensation would still be 1.5 mm — because the V-bit cannot cut wider than its maximum diameter of 3 mm (which means a radius of 1.5 mm), regardless of how deep it goes.



Leave a Reply

Your email address will not be published. Required fields are marked *