The Hell Ya Beller Fun with hot, pointy, sharp, and caustic stuff.


New video tutorial series for FreeCAD Path workbench

FreeCAD version 17 is almost ready to be released.  It will have a thoroughly overhauled CAM workbench called 'Path'.  I've done some videos and posts about this workbench over the last year or so and it has come a long way.

I'm starting a new video tutorial series which will be more thorough and give more context to many aspects of Path.  The first three episodes are up now.  Please check it out and subscribe to get new videos as  I publish them.

Tagged as: , , , , , No Comments

Using FreeCAD to engrave on a rotary axis.

FreeCAD Path doesn't have a 4th Axis operation (yet) but certain kinds of things should still be possible. For example, engraving or pocketing on a cylindrical surface.

I've seen other software, both open-source and commercial, that allow the user to map a linear axis to a rotary axis. I decided to try writing a 'Dressup' for FreeCAD Path to do this.

The workflow looks like this:

  • First the user models shape and sets up the CAM operations as though it was a 2.5D job
  • Next, the user selects the operation and applies the dressup. The dressup currently has only two properties. First select the axis mapping. For example, to map the X axis to the A rotary choose (x->a). Configure the radius of the cylinder we're mapping onto.
  • The dressup executes and re-processes the base gcode.
  • It removes all G2 and G3 arcs and substitutes them with straight lines. The accuracy or 'deflection' will be another property soon.
  • The dressup then substitutes the axis parameter for each G1 move. It calculates the rotational distance corresponding to the linear distance in the original move.
    If the move is a pure rotary move, it also recalculates the feed rate and inserts a rotational velocity. If the move is a coordinated move of linear and rotoray, no change is made. The controller (at least linuxcnc) will handle the conversion internally and process the move as a coordinated move naturally.

FreeCAD can't render rotary moves in the A or B axis so the gcode backplot just looks like lines in XZ (or YZ) Otherwise, it's handled the same. Postprocessing spits out the final gcode for linuxcnc and it's ready to run. Here's a little video I did cutting the FreeCAD logo in PVC.


First steps toward simulation in Path

User Shaise has been doing some very cool stuff simulating Path operations. Check out the video to see an example


A little bit about Path Start Points.

Tagged as: , No Comments

Adding support for Arch Panels in FreeCAD Path.

A lot of projects include multiple parts made from a single sheet of uniform material - like a sheet of plywood. This causes some trouble in a CAD/CAM application

  • You want to keep your overall model/assembly intact, but the build assembly isn't the same as the cutting layout.
  • You need to translate and rotate parts to maximize material usage
  • You want to group operations to minimize tool changes on the machine.

For a while, I've been promising that we would include a solution to this in FreeCAD Path and now we're finally getting to it thanks to facilities in the Arch workbench - Panels!

Arch Panels are designed for exactly this purpose - designing parts from uniform sheet stock. In Arch, you can define a panel object and then create a 'Panel Cut' to represent the 2D cut pattern for that part. These 2D cuts can then be aggregated into a 'Panel Sheet' for cutting.

Is that confusing? Then just watch the video. It'll make sense, trust me. And for good measure, we now have a post-processor for smoothieboard, an exporter for linuxcnc tooltables, and improved tool handling. So there ya go.

Tagged as: , , , No Comments

Introduction to Creating FreeCAD Paths with Python

This is a multi-part series that demonstrates how custom paths can be created using a python macro in FreeCAD

Part 1

Part 2

Part 3

Part 4

Part 5

final macro:

Filed under: FreeCAD, Path No Comments

Introduction to the DogBone Dressup

Dogbone dressup modifies inside-corner cuts to remove material missed by a cylindrical cutter.


Introduction to Path Mill-Face Operation

Mill Facing adds additional functionality to the FreeCAD Path Workbench.


Introduction to Path Contour Operation

For users of Path Workbench in FreeCAD, here's an introduction to the Contour Operation

Tagged as: No Comments

Dogfooding with FreeCAD Path

"Eating your own dog food, also called dogfooding, is a slang term used to reference a scenario in which a company uses its own product to validate the quality and capabilities of the product"

I have a whole pile of old Altoid tins that I use to store small screws and such.  The tins had migrated into a physical pile on top of another storage container and were occasionally knocked over while I was looking for something.  I thought it would be nice to have them in a rack mounted on the slat-wall.

Laser cut acrylic seemed the natural choice.  The glued finger joints are plenty strong but need to be accurately cut.  Since the project was pretty simple, I decided to try to do the whole thing in FreeCAD including the gcode generation with the new Path module.  I know Path is still incomplete but I've been watching the improvements for months and thought I might be possible.  Here's how it went.

The parts were simple sketches padded to the thickness of the acrylic - 3mm.  The important thing is to make the depth dimension of the tabs match the acrylic thickness and the position match the corresponding slots.


I used the assembly2 workbench and built the assembly.  Assembly2 is very slick and I caught several boneheaded mistakes that would have cost time and plastic otherwise.


I used Assembly2 again to make a second assembly.  I didn't set any constraints, I just laid out the pieces to fit on the raw stock in the laser cutter.  This way, if I need to change any of the parts, I can just refresh the assembly and regenerate the gcode.

Next I built the profile operations.  This was the hardest part because Path is very new and only the simplest operations are working.  I ended up with separate operations for each outside profile and each hole.


I hid the solids and just focused on the gcode backplot. It's very easy to see any problems with operations and make whatever changes are necessary.


When things started looking good, I tried exporting the gcode and loading it in LinuxCNC. There were a few problems that I could easily have fixed by hand but decided to try automating the process as much as possible.

My laser needs a couple commands in the preamble to set the power output. I copied the file to my FreeCAD macro directory and renamed it For FreeCAD to see it as a post processor, it needs that name format. The first part can be anything you want but it must end with Editing was just a matter of pasting the lines into the preamble section.

At this point, I could select the project node in the tree and use the export menu.  Select 'GCode' for filetype and give it a name.  FreeCAD will prompt with a list of post processors.  I select my new customized post, and click 'ok'  The code is written and ready to be loaded in to LinuxCNC.

That last part is a lot of clicks and I tend to repeat it many times as I'm working out the last little bugs.  FreeCAD has a couple conveniences to simplify things.  The project node has a property for the output file and the Machine node (see picture above) has a property to pre-select the post processor.  With these set, you can click the 'Post process' icon on the toolbar and it's done!

The pieces cut out beautifully.  I glued them together like so:



This was a quick one-day project while I was cleaning up the workshop.  The toughest part of a project like this with my other tools would be the fine tuning to get the slots and tabs to align right.  With FreeCAD, that was really easy.  The Path workbench still has a long way to go and it's not usable for anything but the simplest operations right now, but it's improving fast.

Tagged as: , No Comments