On a test cut for my new CNC router, I measured the resulting part to be 0.9mm larger than I had programmed. It was supposed to be 50mm across, but was about 50.9 instead. I can think of a few things that it might be. What is the most likely? - Backlash (I am using anti-backlash nuts) - Incorrect steps/mm setting (Currently set at 200 while using linear c-beam actuators with 8mm lead screws and the default microstepping jumpers on an xPro). - Bit is cutting away a 0.45 mm larger diameter than the spec which I used for the CAM software. Maybe this is runout? - What else? I'd appreciate any ideas on what could be going wrong and advice on how to test the various hypotheses. -D
Not knowing the size of the bit you are using, but I get the feeling that there may be a problem with...., are you cutting within the line or outside the line, if you know what I mean. Double check your base drawing and ensure your calculations are taking the line cut method into consideration. Get back to us if still no luck. Gray
@GrayUK I'm using a 3.175 mm (1/8") bit. I specified cutting outside the line. I'll try tweaking the size of the bit in software to test whether maybe this is the result of runout. -D
@GrayUK I have done a number of tests today and I am still scratching my head. Every time I do an 'outside' square, the part is about 0.9mm too big. But when I do an 'inside' square, the part is perfect. I just went through the G-Code generated and both seem to have the same offset. The inside square is cutting a diameter smaller than the drawn square. And the outside square is cutting a diameter larger than the drawn square. I'll run some more experiments tomorrow just to see if the size might be making a difference. My inside square is smaller than my outside square. I think this means it can't be backlash or an incorrect bit size since this would make both parts come out wrong. If the size is what matters, then that would seem to be a problem of my steps/mm setting. But if it really is that inside cuts are accurate while outside cuts aren't, I'm not sure what the explanation could be. -D
No. I can't see how it is a steps/mm issue either. If it were, then I would see proportionally larger errors as I cut proportionally larger items. And I'm not seeing that. I am seeing a perfectly accurate inside cut of a 20mm square and a 0.9mm too large cut on an outside cut of a 50mm square. If it were a steps/mm issue, then I should see an error of 20/50*0.9mm or so on the small square. So there is one more theory. On my CAM program, there is a 'sharp external corners' checkbox. With this checkbox unchecked, the outer (but not the inner) path has a whole bunch of commands like these on every corner so that it 'rolls' around the corner: Code: G1X74.7545Y62.8934 G1X74.7450Y62.7927 G1X74.7286Y62.6905 G1X74.7051Y62.5876 G1X74.6742Y62.4846 G1X74.6358Y62.3824 G1X74.5897Y62.2817 G1X74.5361Y62.1834 G1X74.4751Y62.0882 G1X74.4070Y61.9971 G1X74.3323Y61.9108 G1X74.2514Y61.8300 G1X74.1651Y61.7552 G1X74.0740Y61.6872 G1X73.9789Y61.6262 G1X73.8806Y61.5726 G1X73.7799Y61.5265 G1X73.6776Y61.4880 G1X73.5747Y61.4571 G1X73.4718Y61.4336 G1X73.3696Y61.4173 G1X73.2688Y61.4078 G1X73.1701Y61.4047 If I check the 'sharp external corners' box, it omits them and has a simple (oversized based on bit diameter) box. So perhaps a whole bunch of tiny motions at the very limits of resolution of the machine on each corner is making it wander. I'll check to see if this makes a difference tomorrow. Any other theories? I feel a bit like I'm grasping at straws here. -D
GCode isn't my thing I'm afraid, but there many who know the ins and outs of this subject, and I hope will come up with some ideas. Like you, I'm grasping at straws here, create a square, but without the corners, if you know what I mean. So, a 3" x3" square, but with the lines stopping about half an inch from each corner. i.e. Take the actual corners out of the equation and see what the width and depth equal. Gray
Tweaking the g-code didn't seem to make much of a difference. I've been working on other issues parallel to this one. I had to level my spoilboard and figure out some z-axis issues I was having. But then I realized that my z-axis issues might be related after all. I was using a z touch plate of a known thickness. But my bit was plunging slightly into the spoilboard anyhow (0.5mm for a touch plate size of 25.4mm). That ratio looks close to my 'too large' part ratio as well. So I am back to adjusting the steps/mm value. I am going to tweak this down a bit. My current theory is that I have a spindle that isn't perfectly trammed and this is causing a slight oversize in the outside dimension and corresponding undersize in the inside dimension. On the inside, this mostly cancels out the mm/s issue. On the outside dimension, this exacerbates the mm/s issue. I will be testing some more with tweaked steps/mm settings. If that seems to help, I'll try to figure out the best way to re-tram my spindle given the mounting setup I have. -D
I ran some tests with different sizes to try to determine how much of this might be steps/mm. What I found was that the carriages on the x and y axes are travelling about 0.5mm too far for every 100mm of travel. This does account for some of the issue I saw above, but leaves a little more than half a mm unaccounted for. Just to ensure that it wasn't merely an issue with my caliper, I made a piece identical to one I had lasercut earlier and it was indeed a bit larger. The crazy thing to me is that it is so consistent. If it were randomly plus or minus half a mm, I would just think I'd reached the limits of the precision of the machine. But since it is so reliably oversized by a small margin, it makes me think there is just some adjustment I need to do. -D
I think I have finally got this figured out. I took a step back and decided to follow @GrayUK's advice and just carve slots in my stock instead of a square. I would not try to cut anything out of the material, just engrave them. Then I measured from left edge to left edge with a caliper so that I was *only* measuring the distance moved by the spindle (no runout or tramming issues). And the difference between the measured and specified distance then gives me an accurate idea of how to change my steps/mm and only that. I found that my steps/mm was off by about 1% (measured 101 mm, specified 100 mm). I adjusted my steps/mm and suddenly the oversized part problem disappeared. Instead, the next square that I cut was slightly undersized. This was expected, because my cutting tool certainly has some runout. So I can adjust my software to account for the slightly larger-than-spec kerf of my bit with runout. So my callibration woes are at an end. If you want to callibrate your machine, I recommend following this procedure yourself. First figure out the error in steps/mm alone (with no confounding factors). Then figure out runout by cutting a standard square and measuring. -D
I'm really pleased you have managed to sort it out. It is too easy to get too close and not see the problem for what it is. Anyway, I want to hear that you are happily making chips, that you are enjoying the CNC machine, and making some great stuff. I'm sure there will be some more little problems, but you know you can always give us a shout here. Well done. Gray
@GrayUK I cut my first 'real' part out and it was nearly perfect even without adjusting for runout. I compared it with an identical part which I had paid to have waterjet. The only difference between the two was that the new part I carved with my C-beam router looked better. It actually had a nicer finish on the edges. So I will definitely be making a lot more chips soon.
Note just an idea, but actual math (-: C-Beamâ„¢ Machine - Plate Maker You will need to measure the actual kerf size and use that for 'bit diameter' before generating G-code. good process...