Monday, August 2, 2021

Heeks2

I have been working on Heeks2 CAD/CAM software to replace HeeksCNC.

It is still a work in progress. I am trying to make it more hackable by having all the user interface written in wxPython for python3.

The functionality shouldn't be any different than HeeksCNC, but its architecture is different.

 

I have made a .zip file which can be downloaded and extracted on an Ubuntu 64-bit PC. ( I checked it on Ubuntu 20.04 and Ubuntu 18.04 )

I would appreciate someone trying it and help me develop it by finding problems with it.

 

This download includes all the binaries needed; for wxPython and for OpenCASCADE, so will work on a new install of Ubuntu.

Wednesday, October 9, 2019

Preparing geometry using Area objects in HeeksCAD

Sometimes it is much easier to create your shapes by cutting and joining existing shapes.
To do this, I use the Area objects in HeeksCAD.

For example, if I have a shape like this:
and I want to make the shape which is the circle with the rectangles subtracted from it.
I can right click on each item in the Objects window and choose "Convert to Area"
So, I get 3 Area objects. Then select all three Area objects, using the Ctrl key to select multiple objects. Make sure to select the circle area first. Then right click and choose "Cut Areas"

 You then get the shape you want.
You probably want to turn it back into a sketch, by right clicking on the area and choosing "Make to Sketch" ( you need to click on the Objects window before the sketch appears for some reason. ) You can then delete the Area object.

The shapes must be closed to work.

With this shape:
 I cut the inside circle from the outside.
Then I cut the other circles from the outside.
Then I intersected the triangle with what was left.
This is the result:


Sunday, April 29, 2018

heekscad website

As a google search of Heeks or Heekscad doesn't bring up my paid for domain name "www.heeks.net", I decided to cancel it. All it did was link directly to my google sites website https://sites.google.com/site/heekscad/

Unfortunately I realised after, that I link to it from my HeeksCNC software, which many people have downloaded, for the Help links from dialog boxes and from the "Online Help" menu item.

If you want these help items to work, simply download the latest trial software from my website https://sites.google.com/site/heekscad/

If you have the full version of HeeksCNC, please send me an email and I'll send you a link to the latest HeeksCNC 1.3, so you can download it.

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

Wednesday, January 29, 2014

model exhaust cone





I made a model exhaust cone from aluminium, to fit a friend's 1/5th scale Bloodhound SSC model.
I used the manual lathe for most of it, but did the bore with a 16mm tool on the Bridgeport milling machine.
The details were done using the 4th axis on my Sieg KX1 and a 3mm milling cutter. I made a bit of a mistake when I forgot to set the profile operation to the surface, so it dug into the part. Hopefully still looks good enough, though.

Tuesday, November 26, 2013

My 3D Printer now has a webcam

I've set up a webcam on the 3D printer, which is in it's own room. So I can spend the day watching it from downstairs. :)

Saturday, November 24, 2012

We moved the CNC Bridgeport to the new workshop and it got connected up today and it still works. :)
We milled some slots in some steel, to celebrate.

Friday, August 10, 2012

Today, we have mostly been milling plastic.

Monday, July 23, 2012

Moving the milling machine

We took the table of the manual milling machine, because we kept bumping our hips on the handles when trying to squeeze past it. This gave us more space, so I thought: let's move it completely; we never use it. We spent 4 or 5 hours on Friday moving it the 4 metres to sit by the doors. We used the crowbar to lift it onto steel bar to roll it along the floor. Next job will be to try to sell it on ebay.

Monday, July 9, 2012


I lost my previous home-made phone cover last week sometime. When I checked my phone this morning, it turns out that I had accidentally phoned someone last night while my phone was in my pocket. It was the chinese take-away that I phoned, so it could have been worse. This morning I designed and made a better cover for my phone, using HeeksCAD software and my 3D printer.

Monday, July 2, 2012

LinuxCNC is working nicely

I'm using HeeksCNC to calculate the toolpath and LinuxCNC to drive the Bridgeport Series 1.
With some help from John.

Saturday, June 23, 2012


We unplugged my "Heeksatrol" computer from the Bridgeport Series 1 and replaced it with a PC running LinuxCNC. In less than a day we had it moving the 3 axes, with very little work by us.
We copied some code to make LinuxCNC ask us to press a button to continue on a tool change:
 loadusr -W hal_manualtoolchange
 net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
 net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
 net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
 net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
 
But we didn't work out how to make it retract up to our limit switch on a tool change, yet. 

Tuesday, June 19, 2012


The stamp we made was used today. The resulting piece of silver looks good. They put it through the rollers on a too tight setting, though, and squished the stamp. So we'll have to make another.

Saturday, June 16, 2012

 

Sodium Chloride solution 2.2V 5A, 2 hours, Mild Steel. 106mm x 55mm
John and I used a bigger tank for our electro etching. We also had a fish tank pump making bubbles of air come up from the bottom. ( We made some holes in a plastic pipe and  blocked the end )
We also tried writing on a stainless steel spoon with a CD marker and doing it for 20mins.

Wednesday, May 30, 2012

Engraving mild steel

I bought some new mild steel sheet yesterday. It was 1.5mm thick. It was much newer than the other steel I got. It sanded clean very easily and was not pitted with rust. I engraved this with a 3mm slot drill, a 1mm slot drill and my engraving tool; nominally 27.5 degrees half angle, 0.1mm cutting diameter at the tip.


I was pleased with the result, although I had to tidy it up with my pen-knife and sand and polish it to get shiny ridge tops. Also, the fine detail pass at 0.05mm depth left a step on the ridges.

Etching

Having had trouble with engraving steel; it was probably hardened steel though, me and my assistant went to see a chemical etching expert on the Welsh border, last Monday. After getting some advice, we bought some supplies from Maplin in Hereford. We tried cleaning up our steel sample pieces, applying the Press N Peel transfers and putting them in the Ferric Chloride solution at about 30 degrees C. It only removed about 0.01mm of the steel in an hour. We left it over night, but it had only taken off about 0.05mm.
In the picture, we were trying electro etching using salt solution; John's idea. It took off enough material, but was not a good surface finish.

We need to try it while agitating the liquid, because some of the areas between the lines were not etched at all. We had to remove a layer of crust from the metal. So, we've bought a pump.

Sunday, April 22, 2012

Gear checking


Before I make a test rig for my customer's injection moulded gears ( the gears which I made the solid models for ), I checked some of the gears, by rotating them on a spindle under a dial indicator. I am quite pleased with the way I displayed my results to him. The paper data was written down by my assistant, as I spoke the values. I then wrote a Python program, which made a text file. The file contents were copied and pasted into HeeksCAD, making points, which I could then create spline curves through. I wonder if I could automate this using an arduino, a stepper motor, and a dial indicator with a serial interface? something like this http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1288396532

Python program to make HeeksCAD points:

import math

fout = open("points.txt", "w")
fout.write('\n')
gears = [
[17, 17, 16, 17, 17, 17, 16, 16, 15, 14, 13, 13, 13, 13, 13, 15, 16, 17, 18, 20, 22, 26, 29, 32, 37, 43, 41, 36, 32, 29, 23, 19, 12, 10, 9, 8, 7, 3, 2, 1, 0, 1, 2, 2, 5, 8, 10, 13, 13, 14, 15, 15],
[10, 10, 11, 11, 11, 11, 11, 11, 12, 11, 11, 12, 11, 12, 10, 10, 11, 10, 10, 12, 15, 18, 22, 28, 33, 36, 41, 42, 37, 31, 26, 22,  18, 14, 9, 5, 5, 5, 4, 4, 4, 3, 3, 4, 5, 6, 7, 8, 9, 9, 9, 9],
[15, 15, 16, 17, 17, 17, 17, 15, 14, 13, 12, 12, 13, 13, 13, 15, 17, 20, 21, 21, 24, 27, 31, 34, 39, 44, 43, 37, 34, 29, 21, 17, 13, 11, 10, 8, 6, 4, 3, 1, 1, 2, 3, 4, 6, 10, 13, 14, 14, 13, 15, 14],
]

id = 1
for gear in gears:
    i = 0
    for p in gear:
        angle = (float(360)/len(gear) * i) * math.pi / 180
        r = float(1.0) + 0.4 * float(p) / 40.0
        y = r * math.sin(angle)
        x = r * math.cos(angle)
        fout.write('\n')
        i += 1
        id += 1

Saturday, February 25, 2012

simple linear drive test

I used an Arduino Uno r3 with a Arduino Motor Shield r3, with belt and pulley from motionco.co.uk ( parts pl032, cpmxl025, bmxl025OL ).

I broke the "VIn Connect"  jumper at the back of the motor shield board.

I used a 12V 1.5A power supply from an old scanner.

I achieved 300mm per second.









arduino code:

// stepper motor control using http://arduino.cc/en/Main/ArduinoMotorShieldR3

#define ADIR 12
#define BDIR 13
#define APOWER 3
#define BPOWER 11

void setup() {
    pinMode(3, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(12, OUTPUT);
    pinMode(13, OUTPUT);
    pinMode(9, OUTPUT);
    pinMode(8, OUTPUT);
    pinMode(0, INPUT);
    pinMode(1, INPUT);
}

int stage = 0;

void set_stage(int i)
{
  switch(i)
  {
  case 0:
    digitalWrite(ADIR, 0);
    analogWrite(APOWER, 255);
    digitalWrite(BDIR, 1);
    analogWrite(BPOWER, 255);
    break;
  case 1:
    digitalWrite(ADIR, 1);
    analogWrite(APOWER, 255);
    digitalWrite(BDIR, 1);
    analogWrite(BPOWER, 255);
    break;
  case 2:
    digitalWrite(ADIR, 1);
    analogWrite(APOWER, 255);
    digitalWrite(BDIR, 0);
    analogWrite(BPOWER, 255);
    break;
  case 3:
    digitalWrite(ADIR, 0);
    analogWrite(APOWER, 255);
    digitalWrite(BDIR, 0);
    analogWrite(BPOWER, 255);
    break;
  }
 
}

void ddelay(float d)
{
  for(float t = 0.0; t < d; t += 0.01)
  {
    int h = 4;
    h = h + 5;
    h = 3*h;
    h--;
  }
}

void sstep(int forward)
{
  if(forward)
  {
    stage++;
    if(stage > 3)stage = 0;
  } 
  else
  {
    stage--;
    if(stage<0)stage = 3;
  }
  set_stage(stage);
}

void loop() {
  // set brake pins to 0
  digitalWrite(9, 0);
  digitalWrite(8, 0);
 
  // set motor pins
  stage = 1;
  set_stage(stage);
 
    float d = 2;
 
  while(1)
  {
    ddelay(d);
    sstep(1);
    d = d * 0.99975;
    if(d<0.85)d = 0.85;
  }
}

Monday, January 30, 2012

Engraving Aluminium Alloy

I sharpened an engraving cutter to a finer point, approximately 55 degrees included angle, instead of 90 degrees, with a clearance of 1/4 of a thousandth of an inch per 20 degrees rotation of the tool, with an initial clearance angle of about 13 degrees ( I hope I remember what I mean by all these numbers, so I can do it again ). The flat of the cutter was no more than 0.1mm diameter, which is dangerously fine. The material was aluminium alloy. Cutting time about 10 hours. 50mm/minute horizontal feedrate. 20mm/min vertical feedrate. The result was beautiful. I can't wait to see the impression it makes. I hope it doesn't get damaged in use too quickly, as it's not as hard as steel. Interesting marks on the surface must be because of a lack of coolant; I couldn't stand there for 10 hours, so I just put some oily paraffin on the surface, but I guess it got used up or dried out while I was out at work.



Friday, January 20, 2012

Hardened Steel

Bad news: Broke a cutter.
Good news: Found dad's packet of 90 degree engraving cutters
Bad news: Kept breaking them until I only had two left
Good news: Discovered that the steel I am using is much harder than some of the other steel I got.
Bad news: I want to wait for this one to be finished, but it's cold in the workshop
Good news: I have a small office and a fan heater, so I'll be warm in no time
The cutter broke to some extent on the first couple of passes on all of the above attempts and got steadily worse from right to left.