The Shark just ignores gcode commands that it doesn't understand. Unfortunately, this appears to be one of them. The good news is that you can write some code to get around it. Let's break this out first:
G12 means to enlarge a(n existing?) hole by milling clockwise. It's identical to G13, except that G13 is counterclockwise.
I0.0300 (That's a capital i like "eye") means we want the circle to be 0.03" large*.
F 25.0 means we'll run at 25" (I'm assuming this is all in inches) per minute.
Usually G12 expects a D parameter (e.g., D0.25). This tells it the current diameter of the bit you're using. If it doesn't see one, like in this case, it "remembers" the last time you told it a D parameter earlier in the file. In this case, I think it's like that your file specifies a "D00" somewhere, which tells the interpreter, "The bit I'm using has no width to it." This is obviously untrue, but that's okay, because...
*The I0.0300 parameter will enlarge the hole by [paremeter]-[bitsize] = 0.03 - 0 = 0.03". The hole will end up 0.03" larger than the actual bit size. If you actually have a 1/4" bit, this results in a hole that's 0.28".
Okay, you've made it this far and you're wondering, "Fine, fine... when do we get to the new code?" Here it is, but it will require some modifications:
Code: Select all
G1 X0.0000 Y0.0150 Z-0.1000
G02 X0.0150 Y0.0000 I0.0000 J-0.0150
G02 X0.0000 Y-0.0150 I-0.0150 J0.0000
G02 X-0.0150 Y0.0000 I0.0000 J0.0150
G02 X0.0000 Y0.0150 I0.0150 J0.0000
You'll need to change this to work for your situation. My code will make a 0.28" hole at (0,0) assuming you have a 1/4" bit. The line before
the G12 in your code should have a G1 that moves the bit to its current position (the center of the hole), which is unlikely to be (0,0). So you'll need to adjust the X,Y,Z in my code by the amount shown in your code. If you find that your hole is at (5,5), and the Z depth is -0.25, you'll want the first line to be:
See, I just added the X,Y into my code. You'll need to do that for every X and Y in my code.
For the curious, here's what the commands are doing:
G1 says, "Move from the current position (the circle's center, hopefully) to the top of the new, enlarged circle."
G2 says, "Rotate from the top of the circle to the left side." The other G2 statement go to the bottom, right side, then top.
You may ask why we didn't just take G2 in a full circle. Some interpreters allow this, but some don't. The gcode "standard" says you can't do a full circle, so I've split it up into four arcs, which is allowed in all circumstances.
Hope that helps!