Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

PixelCNC: CAM For Artists

CAM software developed by artists for artists to create unique and original works on a 3-axis CNC router or mill. · By Deftware

Questions about bit length and shape, parallel carvings, ui

A topic by fordytes created May 14, 2021 Views: 92 Replies: 1
Viewing posts 1 to 2

Hi Charlie,

I’ve been doing my first experiments this week, and a few questions/suggestions popped up already:

1/ Does PixelCNC take the length of a bit into account to avoid collisions between the router and the material? 

I’m experimenting with 3d landscapes, and the smallest bit I use (1/16”) is rather short, possibly not long enough (3/16”) to get into deep valleys. As an experiment, when I set the length of the bit artificially short (e.g. 1mm), PixelCNC still seems to generate paths deep in the material, although such a short length would cause the router to bump into the material.

2/ Related question: can I model this bit in PixelCNC?

Just modelling it as a cylindrical bit with length 3/16” wouldn’t allow me to cut deep enough in the material. Modelling it as a bit with a larger length (e.g. 1”) could make the wider (conical) part of the bit crash into the material on steep cliffs or precipices in the terrain => support for a small bit with a thicker shank would be nice.

3/ I expected parallel carving to scan over the material, line by line, each time from x_0 to x_max, monotically increasing from y_0 to y_max. The algorithm seems however to cut all lines into segments, and order them by z-value. I guess there are good use cases for this approach, but in my case, it causes a lot of time being lost in travelling around. As I do a rough cutting with larger bits first, and only use the parallel carving to remove the last 1-2mm of the terrain, I expect a monotonic approach would be the most efficient.

See this video starting from 10:30 for an example of this approach:

It would be nice to have this as a parallel carving option (e.g. ’Sort cuts by Y value’).

4/ A minor issue: in the interface, the precision of values is sometimes lost; e.g. when setting the tool diameter to 0.25”, closing the parameters and re-opening it, it is shown as 0.3” (although I expect it is correctly stored internally and applied in the calculations, as it is still shown with full precision  on the technical drawing of the bit).

Thanks for looking into my questions!

Best regards,



Hi Fordy,

PixelCNC does not do any spindle/chuck crash detection (yet) it only restricts the maximum depth below the top of the canvas that a cutter is allowed to go into the canvas volume for a given operation. This is determined by the cutter's "Total Length" parameter. Individual cut passes are limited in depth by the tool definition's "Flute Length" parameter but controlled by the operation's "Cut Depth" parameter. The cut depth operation parameter controls the maximum thickness of a cut for the operation, and cannot be larger than the flute length of the selected cutter. If you want to limit the full depth that the cutter can ever go then make sure "Tool Length Limits Max Depth" is enabled in your CNC/CAM Settings dialog, and set your total length on your cutters to the maximum total depth you don't want the cutter to extend beyond.

To model a bit that has a larger shank I would treat the shank as the chuck/spindle and limit the cutter definition's maximum length to the distance from the tip of the cutter to where the conical extension begins - this will only prevent the cutter from ever going deeper than that distance though. You can also add draft angles to raster-layers on your project's canvas, just figure what the angle is that's needed for the bit to prevent the corner of the flutes from rubbing against the shank.

Right now I've been figuring out how to more intelligently generate rapids between cuts that don't always require retracting to the Rapid Height set for the operation, which will help with deeper projects, allowing the cutter to rapid between cuts if material is detected to already have been removed there, or if it only needs to retract in Z a little bit to clear the workpiece with the material that's already been cut out.

I'm not sure what you're saying is wrong with the parallel carving operation - it does generate cuts that traverse from Y-min to Y-max, but if your "cut depth" is set smaller than the Z Size of your canvas it will generate sets of cuts at "cut depth" increments until "max depth" is achieved. The cut depth parameter doesn't control the depth into the material to cut, it only controls the depth increment from the top of the canvas volume. If you want the cutter to cover the entire project in one pass you can define a cutter that has a long enough flute length, and total length, to reach every spot on the canvas. This, and the "Tool Length Limits Max Depth" will be per-operation options soon, rather than having to "trick" PixelCNC by defining a cutter geometry that is longer than the actual cutter. Just make sure that you're roughing out your workpiece first.

I've noticed the same issue with the precision of the inputs, I had believed that for inches it would be fine rounding to 3 decimal places, and 1 decimal place for millimeters, but I should nudge them up by one more decimal place - I'll make sure that's taken care of for v1.50a.

I would rough out the project using the horizontal milling operation and a larger cutter, then come in with the same roughing cutter to perform a parallel re-roughing, then a parallel carving with a finishing cutter definition that's able to reach the full depth of the canvas (or at least the full depth of the raster-layer or model you're cutting) so that you can set cut-depth and max-depth to do one pass over the entire canvas.

Here's an example project you can use as a template or guide:

Thanks for the feedback, hope this helps!