How to set up tool paths for a key hole bit?

I have a bit that is similar to the t-slot cutter router bit that I would like to use to cut under a profile already cut as a secondary pass.
What application allows for undercutting of this nature.

Here is the bit I am referring to: This is similar to what I have

I am not looking for gcode.
I want to create the custom paths that will go around shapes.
I guess I will have to figure it out.

Yeah, I can’t imagine it’s going to be simple, as you would have to define an entry point far enough outside the profile so that it doesn’t cut into the profile, then move into the profile path and follow it, and then back out again without damaging it. Plus, if you’re specifying a cut deeper than your DOC setting it’s going to do multiple passes.

love to see what you come up with … :smile:

Perhaps this is what was meant about using the pen tool

If it were me, I would create a simple profile tool path, and then edit the g code. Create a tool path 1/2 the diameter of the shank of the bit around your existing shape. Generate G Code. Then edit the Gcode at the beginning and the end so you can plunge safely, move toward your toolpath, make an orbit, then move your bit out a safe distance and move to safe z.

Then, I would test it by setting a fake z zero above my work piece. Watch run once, twice… make any necessary adjustments and then let her rip!

So while it sounds simple to you :smile: I’d love to see an example of what you mean. I’ve never bothered to crack open the gcode, it’s on my list, but LOW on my list.

I don’t suppose you can do a quick example of what you mean…

Thanks in advance.

Rocker does not specify the dimension of the portions of the bit above the slot cutter. It looks like 3/8" so we will use that figure. Also, i do not use Easel. But, create a new tool that it at that diameter and set it’s DOC to so it is deeper than where you want the bottom of your slot to be. Say .75"

Let’s assume he is using .75" stock as well. Once that tool is created, create a tool path for it that is 3/16" wider than the original profile (half of 3/8"). Set the dept of that cut to where you want the bottom edge of your slot to be. Lets say he want his slot in the middle of the outside of his stock. .75"/2 = .375", then add one half the thickness of the groove that this bit cuts which is 3/16" / 2 = 3/32 or .09375" then add them - .375 + .09375 = .46875". So, create an OUTSIDE profile toolpath on your new wider profile you just created using your tool you just created at the depth you just figured out to be .46875". Save your gcode file and open it in Notepad. This is where it gets wierd because I don’t know if x-carves typically go to x = 0 y = 0 and x = safe z first, but mine does. Find that line in your gcode and then FIND where the bit first plunges into the material - I bolded it here.:

N160(Toolpath:- Profile 1)
N170()
N180G94
N190X0.0000Y0.0000F20.0
N200G00X0.8125Y1.0000Z0.1000
N210G1X0.8125Y1.0000Z-0.4688F10.0
N220G3X1.0000Y0.8125I0.1875J0.0000F20.0
N230G1X6.0000Y0.8125Z-0.4688
N240G3X6.1875Y1.0000I0.0000J0.1875
N250G1X6.1875Y6.0000Z-0.4688
N260G3X6.0000Y6.1875I-0.1875J0.0000
N270G1X1.0000Y6.1875Z-0.4688
N280G3X0.8125Y6.0000I0.0000J-0.1875
N290G1X0.8125Y1.0000Z-0.4688
N300G00X0.8125Y1.0000Z0.1000
N310G00Z0.5000
N320G00X0.0000Y0.0000
N330M09
N340M30
%

Continued. Once you have found that line you need to insert a line before it to move x and y away from the work piece, a safe distance. My profile happens to be 1" away from 0 on both x and y. So, I can send my bit back to zero, zero before my plunge. So I would insert this line:

N200G00X0.0Y0.0000Z0.1000

THEN, I would plunge at a speed of 10 ipm:

N210G1X0.0Y0.0000Z-0.4688F10.0

Then, I would sneak back up on my origininal profile path:

N200G1X0.8125Y1.0000Z-0.4688F10.0

Then let the code run… then find the piece where the z is retracted back to safe z and move the bit away first… Does that make sense? DO NOT USE THIS CODE! YOUR MACHINE IS DIFFERENT! I USE V-CARVE/MACH3 and GECKO. I DID NOT CHANGE THE LINE NUMBERS, MOVEMENT SPEED, ETC. - so this will not be exactly like your gcode - but you will be able to find these areas in the code.

AGAIN - test this by setting a high material Z and letting this thing AIR cut a few times. Experiment - find a gcode reference for your post processor type and have fun. Careful fun. BUT I DO NOT RECOMMEND THIS AND AM NOT LIABLE FOR YOUR… SHORTCOMINGS.

Does that help @DarrylKegg?

@Earwigger - yup, thanks! I’ll play a bit, I use VCarve and UGS mostly, so I can generate some samples and review the code.

I wasn’t looking for explicit instructions, just the high-level, so I know how to spot the important bit in the code.

Thanks again!

Another way to start parsing g-code is to look at the output Easel produces, which is nicely formatted and easy to read. Below is a square that is 100mm X 100mm, 5mm deep and where the bit travels “on path”. I’ve set the depth of cut to be 5mm and the feedrate to be 1000mm/min.

G21------------------------------------------- set mm as unit of measure
G90 ------------------------------------------ use absolute coordinates
G1 Z3.810 F228.6 ----------------------- move bit up to safety height of 3.18mm at 228.6 mm/min
G0 X100.000 Y100.000 ---------------- move to position (100,100) at fast rate
G1 Z-5.000 F400.0 ---------------------- drop bit to -5mm depth at rate of 400 mm/min
G1 X100.000 Y100.000 F1000.0 ---- leave the bit at (100,100) but reset feedrate to 1000 mm/min
G1 X0.000 Y100.000 F1000.0 ------- move to (0,100) at 1000 mm/min
G1 X0.000 Y0.000 F1000.0 ---------- move to (0,0) at 1000 mm/min
G1 X100.000 Y0.000 F1000.0 ------- move to (100, 0) at 1000mm/min
G1 X100.000 Y100.000 F1000.0 — move to (100,100) at 1000mm/min
G21 ----------------------------------------- set mm as unit of measure (again)
G90 ----------------------------------------- use absolute coords (again)
G1 Z3.810 F400.0 ---------------------- move bit up to safety height of 3.18 mm at 400mm/min
G0 X0.000 Y0.000 ---------------------- move bit back to origin (0,0)
G4 P0.1 ----------------------------------- dwell for 0.1 secs (used to clear grbl buffer, I suspect)

This code won’t run with the dashes and comments in place, but hopefully it helps demystify the syntax. For a keyhole bit, I would definitely create my own gcode - and test it with a bunch of air carves until I was confident it did exactly what I want it to do.

It’s cool… it will become intuitive. Especially if your depth of cut is a weird number - then you can simply search for the first instance of that number in that jumble of code. That’s why if you intend to parse gcode, you can use specific locations, depths and dimensions as flags that you can ultimately search for. In this case, I left a 1" buffer from 0,0 so we had a little cushion to withdraw our bit and plunge. And looking at @RogerAndre’s post, Easel’s output is nice and simple. But for v-carve, depending on the post processor it can vary. My post processor sends messages to Mach3 which display in the user interface and allow back-tracking to specific line numbers, the specific tool and it settings to be displayed and a lot of other stuff that I’ve grown to admire if not rely upon… that’s why it looks so funky.

Thanks for all the insights.
I do know how to read the G-code as I have been 3d printing for several years now.
I think I will have to set up the g-code start and end section in a file and add them to anything I make so I am just appending. I will also have to look at Z travel to ensure the Z travel is not happening while its doing the under cut on the main path.

That’s a good idea (the start and stop part). I think as long as the tool you create has a deep enough maximum depth of cut, you will be ok. But you will spot that in the g-code anyway. Please post an update if you develop a repeatable methodology.