Written in C++, HeeksCNC is an add-on for HeeksCAD. The user can add machining operations. The source code can be found on the Google Code website ( see the "Source" tab ).

HeeksCNC uses OpenCAMLib for the "Zig Zag" operation HeeksCNC uses libarea for the "Pocket" operation HeeksCNC uses libactp for the "Adaptive Roughing" operation

There is a Windows installation on the downloads page of the Google Code site, which installs everything you need, including HeeksCAD and Python 2.5

There are OpenSUSE rpm files here

Basic infoEdit

HeeksCNC is a graphical user interface, built using HeeksCAD. It allows the user to define an NC program using objects with graphical icons.

A Python script program file is then automatically made from this, which runs more specific scripts to make the NC code.

The NC code is then backplotted ( yet more Python script ), so the toolpath can be shown in the graphics window of HeeksCNC.

If the user edits the NC file, these edits can not be passed back up to the Python program. If the user edits the Python program, these edits can not be passed back up to the graphical objects.

Geometry ImportEdit

For Profile and Pocket operations you may want to import a 2D drawing


The program can be output for different machines.

To change the machine that the NC code is to be made for, select the program object in the "Objects" window and drop-down the "machine" property ( in "Properties" window ) to the desired machine.

To make a new machine, see here

How to use different operations in HeeksCNCEdit


Cut around a sketch offset by the tool radius. The sketch can be open or closed.


Do area clearance toolpath within a sketch. The sketch must be a closed shape.

Zig ZagEdit

3D Roughing operation. Limited to doing a square shape with passes in X or in Y.

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.