There were 3 main failures that occurred last night when trying to run the procedure.
- Cutter compensation did not function properly
- Manually jogged into a hard stop
- Wood size was different than I thought
This video shows a time lapse of the first try of producing the rocking horse cutouts:
1. Cutter Compensation Failure
This is the most baffling of the 3 issues and the only one that does not appear to be a human error at first glance. When cutting the rockers, the tool must reverse course. When cutting in a clockwise direction around the perimeter of an object, the compensation is set left, so that it cuts to the left side of the line by the tool's radius. When cutting CCW, then it should compensate right. The gcode for the rockers does not cut out a full closed loop, because the rockers are larger than the Mill's working area; only half of a rocker gets cut out. Because I had a recent issue with cutter compensation in Mach 3 that caused the tool to take a few small "bites" out of my work piece, I fully inspected Mach 3's tool path prior to starting to ensure there was no obvious violation of the tool path.
What happened during the milling operation appeared that the cutter compensation was not switched when the tool reversed, causing the machine to cut on the wrong side of the perimeter of the rocker shape. After inspecting the code, it is obvious that the cutter compensation is coded correctly but Mach3 is not interpreting that code correctly. It's pretty hard to see in the following video, but when the cutter reverses direction on the rocker, it strays to the wrong side of the tool path, taking a large swath off of the part. Luckily my spindle and tool are large enough to handle it, but if this had happened with a smaller tool or harder material, this would have been a catastrophic event and caused something to break.
The tool reverses right after the "oops" caption when I took off a corner of my work hold-down. That happened because of failure number 3 below. Turn your volume down, the music I added is just as annoying as the router sound that was removed...
So my resolution is yet-unknown, but I suspect its the way that Mach3 interpolates a change in cutter compensation between points, and it may be that it thinks its on the wrong side even when its on the correct side, and does some interpolation that causes the cutter to wander off the desired path. A little reading suggests that cutter compensation doesn't like a change in direction greater than 45 degrees, and since I'm changing direction completely, this may be the issue. Another issue may be that I'm essentially starting and stopping without a lead-in on each plunge because I'm swapping the cutter compensation to the opposing side.
When I manually wrote the code originally, I never reversed direction, instead I called the same profile multiple times and fully retracted and moved to the start of the profile then replunged. So I have two options that I see available - 1) add code to lead-out then plunge and lead-in on each reversal of direction, or 2) simplify the code by taking the first profile that dxf2gcode produces and make it a subroutine and add a retract and repeat the lead-in code on every plunge. Option 1 is less work, but option 2 is sure to work. HMMM decisions decisions. I guess option 1 would forge new territory and confirm if it is a problem with interpolation after a change in direction... I'll go with that.
2. Manually Jog into a Hard Stop
My mill does not have limit switches at this time, so when I started, I knew that I couldn't shut the machine off or risk loosing the position. Then after the first pass cut was complete I accidentally jogged it right into a hard stop. This threw off the actual x position quite a bit. I know that Mach3 allows resetting the position by touching off of surfaces, but I didn't know how to do that. So I told the machine to move to a known drilled hole, at which point the drill was NOT over the hole. I then shut off power to the stepper drivers, and manually move the x axis until the drill was aligned with the hole visually. When I restored power to the steppers and ran the drill code, amazingly it was lined back up! (at least close enough that I couldn't see any issues with the location of the follow-on holes. So that's how I fixed my screw up there...
3. Wood Size Different Than I thought
This is a common lesson in "measure twice, cut once." I made an assumption that my "1 foot" board was .25" smaller at 11.75" but it turned out to be 11.25". This missing .5 inches was enough to cause my tool to cut through the edge of the wood, and because my work clamps were not located on both sides of this cut through, a large portion of the board became unsupported on one side. The opposite side did not have enough clamping force to hold it, and the tangential cutter force moved the board on the table. This is another point where I was lucky that I was cutting wood, because the movement of the workpiece did not cause any damage to the tool or spindle. If this was a metal part, lots of bad would have happened.
Other thoughts on fixturing
My theory so far has been to drill and use alignment pins to keep the boards in place and allow accurate indexing when moving the board on the table. One issue with this is that when I drilled the alignment holes, I used a standard 1/8" drill, and it wandered significantly through the workpiece in at least one case. In the future I will use a 1/8" bottom end mill and go as deep as it will go, following with the drill only if necessary.
Another obvious issue is that I'm violating a basic rule of datum creation: you can only have one fixture for each degree of freedom. This means that a single pin fixes x and y directions, and rotation about that pin is the only remaining degree of freedom. Using a second pin tries to fix rotation but also double dips on one of the previous datums. This works for me only because the drilled holes are larger than the pins I'm using by more than the positional tolerance. I really need to pin only one place, then put a pin against the outside edge of the board for the rotation alignment. The fixture is currently set up for this, so it would be easy to try.
Here's a video showing some of the fixture pin drilling.
The pins are also very time consuming. Today I have been contemplating ditching the pins and machining a fence on one side of the scarfboard by screwing down a strip of wood and taking a cut along it to square it to the y axis. This would allow me to place a board against it, fixing the board in the x and rotation degrees of freedom, and then I would only need a reference for where to place the board to fix the y dof. Since there is only one part that is critical to align between setups, and all other parts are cut fully in their own setup, I could explore the possibility of simply using scribe marks to align the pieces. This would allow me to eliminate a whopping 5 setups that are used to drill the alignment holes for the pins.
I'll be trying the fence next time.