Here is the SVG2Path.py and path.py I am using right now
With said new code in place, I managed to get the machine to draw (pretty accurately) direct from a file.
So, new code in hand I decided it was time to do some real cutting. I added a mount for the dremel, added a clamp to the bed, clamped in some
of the left over perspex from the build, and attempted my first CNC engraving job.
First attempt wasn't too bad, there is quite a bit
of slop as the engraving head was dragged quite quickly across the work so there are some diagonals on the word, but it was nice to see it actually cutting. I've now added a tooling movement rate to the script so it moves slower when it thinks it's cutting.
I tested some aluminium next, but the engraving head was useless at cutting it. This just kept aggravating me until I noticed I did have a milling
bit, a small, ball headed milling bit. So, first thing I did was set up the same run again, but when I did I found the dremel wanted to dive into the work. I didn't understand until
after I'd had to emergency stop the whole operation as
the dremel almost went through the 1.5mm aluminium when it picked up and put down again. It turns out that the battery pack I'd been using to power the steppers had finally got to the point where it could no longer power the Z axis stepper well enough to enable it to lift the heavy dremel out of the work. Of course, these are steppers, so they don't know they have failed, so when it was told to head back down into the work, it duly complied and dug down even further.
I wonder how difficult it would be to add an encoder to each of the axes just to see if I can catch this kind of error quicker. Anyway, for now, I'm just going to wait until I can afford to buy a barrel socket and plug it into an AC adaptor, and also, because of how noisy it is, I'm going to try to find an alternative to the dremel. I have a couple of 24V motors out of a printer which, when tested merely with their already attached drive gears, can cut aluminium. How to add a chuck to these, that's another question.