Showing posts with label milling. Show all posts
Showing posts with label milling. Show all posts

Saturday, 26 May 2007

Tooled up

I wired up and tested the tool height sensor that I made last week and it worked fine. It gave consistent and repeatable results. Rather than use an OR gate I just connected two of the pins to two inputs of my micro and did the OR in software. I configured the micro to have internal pull downs and I connected the third pin of the sensor to 3.3V via a current limiting resistor. This configuration allows for the tool to be connected to ground, in which case either the tool touching the disk or any of the three contacts being broken will take at least one of the inputs low.

The software just plunges the tool into the sensor at full speed. As soon as one of the inputs goes low it backs up 1 mm and then descends slowly until it breaks the connection again.

There was only one small problem ... I made it for the wrong corner of my XY table! Having it on the right meant that the vacuum pipe had to clear it so could not be as close to the workpiece as it could otherwise be. No problem, I just got HydraRaptor to make another base for the left hand corner. I designed the part in Visio and then manually made a Python script to mill it. At some point I need to find a free CAD / CAM program for things like this.

Here is the drawing :-



This is what the script looks like :-
from Hydra import *
from Arc import *
from Tool import *
from Line import *

hydra = Hydra("10.0.0.42")
top = 6.1
base = -0.3
hydra.work_origin = (-50,0)
hydra.work_height = top
hydra.measure_tool(end_mill)
hydra.tool = end_mill

tr = end_mill.radius

# recess
hydra.drill((0,0), 18.0, top, 5.6)
hydra.drill((0,0), 15.0, top, 5.6)

# spring well
hydra.drill((0,0), 10.0, top, 3.0)
hydra.drill((0,0), 2 * tr, top, 3.0)
hydra.drill((0,0), 7.0, 3.0, 1.0)
hydra.drill((0,0), 2 * tr, 3.0, 1.0)

# screw hole
hydra.drill((13.5,19), 5.0, top, base)

# outline
outline = [Line(-10,32.5), Arc(-9,32.5,-9,33.5,-1), Line(26,33.5), Arc(26,32.5,27,32.5,-1),
Line(27,-9), Arc(26,-9,26,-10,-1), Line(0,-10), Arc(0,0,-10,0,-1)]

hydra.mill(outline, top , base)

del hydra
And here it is installed :-



You can see that I used JB Weld to glue the pins in. I did that to stop them moving when I soldered the wires on, as Perspex melts very easily.

Below is a video of the new base being made. You can see the right handed version of the tool sensor being used at the beginning. I upped the feed rate to 15mm per second with no problems. Even so it took more that 15 minutes to make the piece so I have speeded up the video by a factor of two.



Obviously it is important to switch the spindle motor off when measuring the tool! At the moment I am doing this manually. I forgot once but I got away with it because it measures so quickly. The next job is to put the motor under software control.

Tuesday, 8 May 2007

Successful milling

The new metalwork did the trick. It completely solved the snatching problem I had previously. I managed to mill this test shape out of 2.5mm polystyrene, at least that is what I thought it was. I found a site: www.tempatron.co.uk/weld_rods.htm which describes how to identify plastic by setting fire to it and the closest match is ABS, so it may in fact be ABS.


As you can see it has nice clean edges and it measures 34.07mm by 60.02mm by my cheap electronic calipers so is pretty accurate.

Getting the feed rate and cut depth right took a few attempts. The problem was that the plastic kept melting as you can see here :-



I found that with a cut depth of 0.5mm I could only feed at about 0.2mm per second to prevent melting. Reducing the cut depth to 0.1mm allowed me to increase the feed to 10mm per second which is ten times more productive. I probably could have pushed it further but I am not particularly interested in making anything from this material. Here is a video of the test :-



I now have a small but highly accurate CNC milling machine. A few improvements are definitely needed :-
  1. Dust extraction!
  2. Tool height detector
  3. Spindle motor control and stall detect

Wednesday, 2 May 2007

More trouble at' mill

Well things did not quite go to plan. The first problem was that most of my milling bits have ends that are smaller than the top of their shafts so they cannot go very deep. The only exception is a 1/8th inch end mill that came as part of my PCB routing set. It is intended for routing PCB board outlines. The problem was that my first drill did not have a collet big enough to take it. The Minicraft replacement has a three jaw chuck which will. So plan B, I fitted the Minicraft drill into the bottom MDF mount intended for my other drill. Rather than tackle the big block of hard plastic I thought I would try it out on a sheet of scrap polystyrene first. I stuck this down with double sided sticky tape.



I started with a feed rate of 4mm per second. This was far too high as it stalled the drill. I dropped down to 1mm per second and then to 0.5mm. At this point it seemed to be able to handle the cutting but it kept snatching horribly. I dropped down to 0.1mm per second which took ages but it still snatched. I only got as far as the first corner before I aborted. You can see that after the first 15mm it no longer goes right through the plastic. This is because I did not tighten the chuck enough and the bit slipped.

I might be wrong but I think the snatching is due to the set up not being rigid enough. I had already identified that as a weak point and the new motor mount was aimed at improving it. The first drill was supported at both ends but this one is too short so it needs a much stiffer mount, which is what I was trying to make! Perhaps the end mill bit is not suitable for styrene, or perhaps styrene is not very machinable, or perhaps the RPM is too high, or too low. Can you tell I am a bit out of my depth here?

One thing I can do to improve stiffness is to replace the 2mm aluminium plate with the 6mm slab I already bought for the job. I was putting that off until I got the new mount so as not to have to drill two sets of holes in it.

Another thing I might try is to make a top mount out of PolyMorph.