Monday, March 17, 2014

HeeksCNC 1.0

I made a release of HeeksCNC 1.0, my CAD/CAM software, for Windows.

You can program drilling, profile and pocket operations.

You can then run a simulation of solid removal.

This amazing software is less than $20. Get it here


Ševc Dominik said...

Hi. I see your software and looks good ..
I want to generate Gcode from STEP file (Autodesk INventor) .. try it but still don't know how .. is possible help me ..
Step by step .. I searching tutorial video in web but not find ..

Dan Heeks said...

Hi, yes you can extract geometry from a STEP file. See here

Greg said...

Thanks for the great software, certainly worth the money. I notice that in some earlier versions of your software that there was a "waterline" option ( but I cannot find any reference in the current version. Is there something I need to do to enable it?

d3tic said...

I have been using the free versions of HeeksCNC for a while and I recently purchased 1.0. I have found a number of bugs.
My main problem is that when I added operations, such as profiles I can no longer tell which sketch they are associated with as there is no sketch object under the profile operation just an object called Tags, which only has object type and visible as properties.

Also is there any docomentation on editing splines. Can knots and Poles be deleted/added?
I like the gears but is there a way to calculate the centers of 2 gears for proper meshing?

Dan Heeks said...

Hi d3tic,
See the bug fixes page. I made it so you can click on the profile operation and see the sketch associated with it.
"24th April - When the profile or pocket operation is selected there is no indication of which sketch is selected"
Please email me and I will send you a link to the latest version.

No, splines can't have their knots added or deleted.
No, you have to calculate your own gear spacing. But if you make a sketch of the gear ( on the right-click menu ), you can drag this around to see where the spacing should be.

Bill Smith said...

I am a complete newbie here - just finished building my CNC wood router and have it working. I'm trying to create my first piece which is basically a 2D drawing - 10 line segments and one hole (which I want to route out with a small-diameter mill - a pocket). Your HeeksCNC looks to be exactly what I need and I downloaded the trial version. Is it limited and not able to generate the G-code? or am I doing something wrong?

If I can get this simple part understood and 'out' - I'll be happy to purchase your product.


Dan Heeks said...

Bill Smith, the trial version will create g-code fine, except for some annoying comments at the top ( which shouldn't stop the g-code running ). Do you see the g-code in the "Output" window?
This will also have been written to a file. The default output is to use a file with the same name as the saved .heeks file, but with .ngc as the suffix.

Bill Smith said...

That's what I thought. I see the 'annoying comments' at the top of the file. But there were only 3 g-codes actually created. I realized I didn't have Python installed - but that has been remedied. Now, I'm getting a file of 0 bytes.

It has to be something fundamental that I'm missing.

Should I consider downloading HeeksCAD so that there is a better interaction with HeeksCNC?

Arden (aka Bill Smith)

Dan Heeks said...

Arden, I don't know what the problem is. Send me your .heeks file and i'll have a look.

Lisa said...

Dan Heeks, this is a great review of software! Your blog has a lot of excellent in-depth coverage across a multitude of CNC Milling topics. Have you tried CNC MASTERS software before?

faulty said...

Hi Dan Heeks, thanks for the great software. I've been using it for close to 3 weeks on Arch Linux, with my newly purchased Shapeoko2. still learning everyday.
For starter, I plan to turn off tool change. I notice there's quite a lot of iso code in the nc folder, I wondering which would be a good base to start with?

Keep up the good work.

Ken said...

This seems to be the most promising cross-platform Gcode generating software available. Any chance there is a roadmap for supporting GRBL?

Unknown said...

Hey dan, just stumbled across heeks, looking good I must say. One question though, are you able to import .svg files directly? I use inkscape to compile my drawings and have been using makercam, trouble is iv found it very unreliable so far. Would still like to use inkscape though

faulty said...

Hi Unknown, I'm using Inkscape too, I export to dxf before importing into heeks. If you notice any weird lines (if you drew a square but end up with 2 triangles), go back to Inkscape, draw a smaller box or circle in the offending object, substract(Path\Difference), then add a slightly bigger one to cover the hole, apply addition(Path\Union), then export again. That should work perfectly. I do that all the time, and it mostly happen after I rotate some of the object.

Ralph Freshour said...

Hi Dan -- any chance you might come out with a Laser version of HeeksCNC? Low cost lasers are becoming very popular and it would be great if we had a version supporting laser operations. You could call it HeeksCNC Laser.

Luis Pablo Gasparotto said...

Hi Dan,
Thank you very much for this great piece of software. I'm trying to realize how to modify the tool paths resolution. I did some testing changing spline deviation and surface tolerance values but the resulting G-Code has always the same amount of data (lines).
How can I increase/reduce tool path resolution? In BlenderCAM this is called "distance along toolpaths" but I didn't find a way to change that in HeeksCNC.

faulty said...

Hi @Luis, are you refering to "Step Over"?

Luis Pablo Gasparotto said...

Hi faulty,
Thank you for your reply. I'm not referring to "Step over", I was talking about the size and quantity of segments which form a path, the quantity of G-Code lines, the distance between lines. In this example a path is defined by these lines:

The tool moves over a fixed X position while changing Y and Z. This path s defined by 13 lines. My question is: how could I get this path defined by more lines (> resolution)?

"Step over" defines the distance between this path and the next.

faulty said...

Hi @Luis, I've not done much 3D CAM, mostly 2.5D, and I see that Heekscnc actually generate proper arc. I would guess that it would follow whatever resolution that's being imported from. Have you tried increasing the resolution from the CAD side?

For 3D surfaces I've tried MeshCAM and it's really good, though too bad it's price is beyond my budget for now.

Luis Pablo Gasparotto said...

Hi Faulty, thank you very much for your reply. How can I increase the CAD resolution?

Luis Pablo Gasparotto said...

I tried to increase CAD resolution by changing a few parameters (Minimum Correlation Factor and Number of sample points) but even changing these values by little amounts I get this error
10:15:02 AM: File "/tmp/", line 1
The Python program is too long
SyntaxError: invalid syntax

10:15:02 AM: Traceback (most recent call last):
File "/usr/lib/heekscnc/", line 12, in
File "/usr/lib/heekscnc/nc/", line 56, in Parse
self.file_in = open(name, 'r')
IOError: [Errno 2] No such file or directory: '\xfa\xa7\x8a\xa3\xb0.tap'
Exception AttributeError: "Parser instance has no attribute 'file_in'" in > ignored

faulty said...

Not sure if I could be of much help. Maybe we should take this discussion else where. Could you leave comment at my blog with your email address. We can continue from there. I won't publish that comment to avoid yourself from getting spammed later on.

Luis Pablo Gasparotto said...

i Faulty,
I posted a comment in your blog. As a reference, this is the post content:
Hi Faulty,
I don't know if this is the right place for this post. This is about HeeksCNC. It seems replaces the content of /tmp/ with the program window content:
"The Python program is too long
to display in this window.
Please edit the python program directly at
/tmp/" file contains exactly the same text instead the program and that makes to fail because the "Invalid syntax". For some reason, replaces the program with this message in /tmp/ while it should keep the real program there.

Thank you very much in advance for your help.

thanaphan said...

hello I use Smoothies board as my Cnc-controller. the G-code need G1 or G0 in prefix the XYZ.
How can I edit the Pre-processor code to have G1,G0 each line.

faulty said...

Hi thanaphan,

Did you try selecting a diff machine to see if the existing ones works for you?

If you know python, look inside the nc folder, there's a machines.xml which list which 'post' and 'reader' is used for the selected machine. i.e. 'LinuxCNC' would be using 'emc2b' and 'iso_read'. Then look for '' and '' in the same folder. These are subclasses of 'iso' and 'nc', from there you can see how the GCODE is being generated and where to add your G1 or G0.

Dan Heeks said...

Easiest hack is to edit "C:\Program Files (x86)\HeeksCNC 1.2\HeeksCNC\nc\" and add these two lines to the end of __init__ function
( after the line "self.output_g43_on_tool_change_line = True" )
self.f_modal = False
self.g0123_modal = False

then create g-code again.