What part of your CAM software do you wish was easier?

Hi All,

My name is Asher. I’m a woodworker and use a CNC pretty much daily. Over the years I’ve tried multiple woodworking focused CAM software; VCarve, Carbide Create, CarveCo, but I’ve always found something that I didn’t like about them. As such, I’ve lately been working on a CAM program of my own, and I’m at the point where I really want to hear how other people work before I get too caught up in solving only my own frustrations.

Thinking through your own experiences with cnc software, what have been the pain points who’ve found that you wish was different? Perhaps something that took way longer than it should have, needed a workaround, or made you go looking for another program.

I’m interested in missing features too, but even the little things you’ve just gotten used to putting up with would be helpful.

Any insight ya’ll can provide would be wonderful! Thanks.

Mmm my guessing is everyone feels confortable with one of the many cad/cam offerings out there.

My case is Rhino 3d, SketchUp and vectric aspire. That works perfectly. Some day would love to use MillMage (in serious) but i dont change a lot of things from my workflow. Even my fluidnc builds are old, really old (webui2. 0 lol)

Create a good one for Linux.

I had the same experience so i created freazyKam It is a free open source cam package that runs in the browser. Take a look and let me know what you think it is missing or anything you think you would implementing differently. It might also be a good starting point for your own implementation as it is open source and the code is in github.

I developed a FreeCAD workbench around a similar idea. If you find it interesting and it’s feasible, one feature I’d really like to see in freazyKam—either adapted from this approach or developed from scratch—is nesting that strictly respects the spacing we define, for example exactly 4 mm between parts.

Another very useful feature would be common-line cutting, where adjacent parts can share the same cutting line. It would be great to have an option for the toolpath to always follow one direction only, or alternatively allow back-and-forth cutting.

Common-line cutting is especially useful for CNC work because it can save a significant amount of material and machining time. I think that, combined with accurate nesting, would make the workflow much more efficient.

I do this when I nest. I set the parts to be the tool diameter + two finishing pass widths + 1mm or so. So for a 3mm endmill I nest to 4.6mm. Lots of common line cutting.

So I am getting dangerously close to finally spending some more time in FreeCAD, what is your workbench called so I can find it?

I made a short video so you can get a better idea of how the workbench works. The interface in the video is in Portuguese, but I also added an English translation/subtitle option.

The version I uploaded to GitHub is currently outdated compared with what I am using now. If you find the project interesting and would like to test it or even contribute to its development, I can update the repository with the newer version.

I am also working on another FreeCAD workbench aimed at making modeling faster and more direct, closer to the way we often use SketchUp. Not every project needs a highly technical or fully constrained model; sometimes we just need to sketch an idea quickly.

With AI tools evolving so quickly, I think this workflow can become even more useful. In many cases, we may only need to create a rough model or concept and then use AI to help refine, adjust, or develop it further.

Can you post a link to your workbench code, it looks very interesting.

There’s the Woodowking workbench already that does a looooooot of stuff, also the cabinets you posted:

@Philipp Tokoloshe

My initial idea was actually quite similar to the Woodworking Workbench, mainly focused on making furniture design inside FreeCAD faster and easier.

But as the project evolved, I gradually moved more toward the CNC workflow. At the same time, I started building a library of parametric furniture with the help of AI, and I found that development was moving much faster that way. I think this kind of AI integration is almost inevitable and will probably become a much bigger part of the design workflow over time.

The furniture shown in the pictures I posted was actually created entirely with AI. I only applied the textures and materials from my workbench afterward, mainly to show that we can already achieve a very pleasant result this way.

Today, the workbench is more focused on quick adjustments, easy part manipulation, cutting layouts/nesting, and generating CNC G-code quickly, without requiring an overly complex workflow when the job doesn’t need it.

The SketchUp-style idea came from my transition from Windows to Linux. I used SketchUp on Windows, and when I moved to Linux I felt there was a gap for something similarly simple and intuitive. Blender is extremely powerful, but it can be quite complex for quick modeling, and I also wanted the solution to be free. There are some very good alternatives, but many of them are paid.

That is what eventually led me to FreeCAD. I really like it, but I have always missed a simple way to quickly sketch something and push/pull faces, like in SketchUp. Not everything needs to be parametric or production-ready — sometimes you just want to quickly turn an idea into 3D and see roughly how it might look.

@Rick McConney

Sure — I’ll upload the workbench code and share the link.

Just keep in mind that everything is still very much a prototype, so there may be bugs or things that don’t behave perfectly yet. In my case, I use GPT with Codex while developing it, and that has made the process much easier. Whenever I run into a small issue, I just describe what happened and usually get a fix almost immediately.

So if you use an AI assistant as well, it becomes much easier to test, adjust, and improve things as you go.

Thanks for the explanation, really interested in it since I changed from Windows to Linux around a year ago as well and I miss AutoCAD. :stuck_out_tongue:

@Philipp Tokoloshe
I don’t know if you’ve seen this yet, but OpenCAD Studio showed up in my recommendations a few days ago. Apparently it’s a fairly new open-source project, and it also runs on Linux.

Since you mentioned that you miss AutoCAD after moving to Linux, this might be worth taking a look at. It seems to be aiming for a more familiar AutoCAD-style workflow, with DWG/DXF support and a traditional command-based interface.

I haven’t really tested it myself yet, but when I saw it I immediately thought it might be useful for exactly the situation you described. :slightly_smiling_face:

I haven’t done much CNC in years (I know, I know, why am I still here :slight_smile: )

But

Doesn’t FreeCAD have a built in CAM workbench now? Has anyone used it?

Yes and no. But I at least imported my tools to it. :smiley:

-id be keen to look at the nest part i design everything in freecad

Thanks Daniel for sharing your workbench code. I’ve ported your nesting and shared-line cutting ideas into FreazyKam.

When you nest with Shared lines turned on, you choose a bit and the parts are placed exactly one bit diameter apart along their straight edges. Then, when you profile the parts on the outside with the same bit and Optimize Path turned on, the shared lines are detected and each one is cut only once.

I also added tool path merging. Cuts are joined into as few continuous tool paths as possible at junctions, so the machine doesn’t slow down for corners. The tool stays down in kerf that’s already cut instead of lifting. The bridge gaps through waste setting can cut across small waste gaps between parts to join tool paths, but only when that saves time. In optimal cases like a grid of rectangles, job times can drop by up to 50%.

I’ve also added acceleration and junction deviation to the Machine Motion settings, so job times are more accurate.

Again thanks for the suggestion and code.

@Rick McConney, I spent some more time testing the new implementation and there are a couple of things I really liked.

One improvement I noticed immediately is the nesting accuracy. Previously, because the nest was raster-based, asking for a specific gap did not necessarily leave the parts at exactly that distance — for example, 4 mm could end up noticeably larger depending on the raster resolution. With Shared Lines enabled, the post-nesting snap now locks compatible edges at exactly the cutter-width gap. That is a very nice improvement, and it also makes common-line cutting reliable.

I also tested the current STL 3D Profile implementation. The geometric side already works quite well: roughing in multiple depth levels, stock allowance, ball-nose/taper finishing and collision compensation against the STL surface all seem solid.

The part I was wondering about is whether you plan to expand the 3D toolpath strategies further. Right now the 3D raster retracts to safe Z between scanlines and enters the material with a vertical plunge. Do you think it would be technically viable to add things such as:

  • ramp or helical entry instead of a straight plunge;
  • continuous bidirectional/zig-zag finishing, staying on the surface whenever it is safe instead of retracting every line;
  • offset/contour or spiral-style 3D finishing strategies;
  • smarter linking between 3D passes, similar to what you just implemented for the optimized 2D paths.

In the WoodCam project I shared, we already experimented with some of this directly on the 3D heightfield/mesh: ramped roughing entry, Z-level/raster roughing, continuous linked raster finishing and an offset finishing strategy. We deliberately work from the mesh/heightfield instead of converting a complex STL into a CAD solid, because that conversion can become extremely heavy.

If any of that approach or code is technically useful for FreazyKam, feel free to use it as well. I think developing the 3D side further could make the workflow much closer to what we normally expect from programs such as Aspire, while still keeping FreazyKam simple.

@Terry_O_Sullivan I’ll keep sharing the progress. The main goal is still to make the FreeCAD workflow faster and more practical for furniture/CNC work, especially for the kind of jobs where we do not need a highly detailed engineering model — we just need to draw, adjust parts, nest them and get to CNC quickly.

The project is still evolving, but the workflow is already getting much closer to what I wanted when I moved from Windows to Linux.