Friday, December 25, 2015

Skipping problem solved

I've had two jobs where the router went off program and started plowing through wood along the Y axis. Both times this happened as the router was cutting a curve.

Last night I realized that router wasn't getting extra instructions, or firing erratically. Instead, the X-axis was stalling. Since it was cutting a curve, the stall showed up as a move in the Y axis. After looking around for a bit, it looks like a heat related problem and adding a fan to the setup would help.

I ordered a small 24V fan, and made plans to build a wood box to house the fan and the gShield/Arduino Uno combo.

I was going to wait for the fan to arrive, but then I realized I didn't need to. I already had a very large fan in the room that I could use to cool the gShield. My shopvac. I hooked the shopvac exhaust up so that it would blow over the gShield.

I had no stalls on the next, larger and longer run. I had one problem where it lost some steps on the X-axis, but I'm going to assume for now that's because I had upped the cutting depth to 3mm.

Sunday, December 13, 2015

Successful run

I've been working on a dresser for my daughter, and using the CNC for some of the curves that will go on the dresser's bottom.

Last week I had an unsuccessful run where the CNC router suddenly decided to diverge from the path. I'm not sure if it was a user error or something else; it happened as I was preparing to hand things off to another operator. One of the things that I noticed was that the router had no problems going through the oak, even though it was already about 10mm deep.

But this week I had a successful run. The parameters were: cut depth of 2mm (up from 1mm), feed rate of 197.302 mm/min. The full file is available at http://a360.co/1NOrm5Y

One of the reason this run was a success was that none of the plunges happened in the wood; they all happened slight off to the side.

Sunday, August 30, 2015

Test oak curve cut

I wanted to carve a nice spline curve in some White Oak for a dresser, so I first I did a test cut.
For my first attempt, I laid out a block of wood in Fusion 360 with the curve cut out of it, but I struggled to get the 2D contour to only cut out the curved portion --- it wanted to cut out the entire block, which would be bad --- I'm going to do the rest of the block on the chop saw and table saw.
I abandoned my original approach and created a document with only a sketch and a 2D contour. By setting a bottom height I was able to generate multiple 1mm deep cuts with a feed rate of 542.58 mm/min, using a 1/4" straight bit.
Naturally, something went wrong. It didn't cut all the way through, presumably because I measured the depth incorrectly. I resent the g-code after manually lowering the Z-axis, and then realized I really should have set the retract height to be more than 5 mm, because the mill started going through the portion I was cutting out. Fortunately it made it through without missing any steps.
Just like your compiler, if you lie to your CNC mill, it will have its revenge.

Saturday, January 10, 2015

Pinewood Derby

My 10 year old wanted the CNC router to produce carve his pine wood derby car, so I obliged.
I decided to use Sketchup to create the car's geometry, because Sketchup is easy to use.  The downside is that it has a polygon soup model of the world, but this wasn't a problem for us in practice.

The first thing we did was to cut a number of blanks out from a spare 2 by 4, because, as I told Peter, "Nothing has come out of the router right the first time."  This was a wise move, because we learned a lot from this project.

I decided to use SketchUCam v1.2 to generate the G-Code from Sketchup.  It generates G-Code, but in my experience getting it to generate the right G-Code can require some creativity.  It had problems when the car was aligned with the axis, which I was able to solve by offsetting the car by about 2 millimeters along the X and Y axes.  It doesn't seem to take the bit size into account, but I was able to compensate for that by making some of the features on the car extra large.

But the biggest problem was that the G-code would repeatedly go over the same space over and over again.  Fortunately SketchUCam generates very nicely structured G-Code, and it was easy to write an optimizer for it, which I've put on github here. It looks for repeated traverses, and replaces them with traverses to the next non-repeated section.  It tries to just be a peephole-optimizer; I figured that if I started tracking the space the that G-code had carved I might was well convert from Sketchup to G-Code myself.

The milling parameter that took the longest to get right was 1mm per pass; it was hard to get right because I tried being overly aggressive to save time.  It didn't save tine.  Even at 1.5mm per pass my machine would occasionally stutter.  Another thing that we got were wrong was choosing a bit without a square end; that version of the car had some cool V-stripes up and down the car's length.

The final run skipped a few steps at the end and I had to stop it after it ran through the cockpit dome, bit that was easily fixed with a bit of wood putty. I was able to restart the job without homing switches, probably because of the amount of practice with the blanks.