Multi-tool project question

I have a Shapeoko XL with homing switches. I’m using CC to create the tool paths and CM to run the code. The project I’ve created will require two tools. Reading through the forum I see that I will need to create two sets of tool paths and g-code (one for each tool). Easy enough.

My question has to do with zeroing the machine. After I run the first g-code to cut with the first tool, how do you zero the machine before running the g-code for the second tool? Basically, what is the process for getting the machine ready to run again after the tool change to ensure the second tool cuts in the correct locations in relation to what was cut with the first tool?

The easiest way is to use a touch plate like this

You can also home your machine then move to a known location like the front left corner of your material and then place your bit on the tip of the material on this corner

You can then zero out all your axis and as long as you don’t turn off your machine you can always go to 0,0,0 and set your new bit at that point. Remember if you change but sizes the bit zero will move by 1/2 that bit size in all directions.

The best advice I can give you is by the zeroing block. It will help remove a ton of frustration

Home the machine prior to starting the project ($H), set your X, Y home position, then set Z zero for your first tool, run that toolpath. When the first toolpath is complete, turn off the spindle, but do not turn off the controller. Your X and Y positions will remain the same. Change your tool, reset the Z height. Now run your second toolpath.


That is exactly how I did mine. Also I usually jog it to the front and raise the Z so that I have more room to change the bit.

Am I understanding correctly…

Home using $H and it should move to the home position (X axis to full right, Y axis to full back and Z axis to the top which would put it on the homing switches). Set X and Y zero. Jog the Z axis to the top of the material and set the Z zero. Run the first toolpath. Turn the spindle off but not the controller. Jog the Z axis up enough to complete the tool change. Jog down to the top of the material and reset Z zero. Run the second toolpath.

Sound about right?

C3D Support… this might make a good tutorial (hint, hint).

You got it. It should work.

That is 99% correct. Just don’t forget that after you home the machine, you jog to set X, Y and Z, not just Z. I think you knew that, but I just want to make sure it is clear. Homing sets the machine position. Then you jog and set the work/job position.

Thank you for clearing that up.

Over the weekend I’m going to test feeds and speeds with some scrap material and once the mills seem to cut OK I’ll run the project without a mill and see if it looks close, then cut it in foam (if everything looks OK during the “dry” run) to make sure everything looks good before trying for a finished piece.

Piece of foam…$5 Piece of carbon fiber…$140 Results…priceless

I’m aware of the dangers of cutting CF and the proper precautions will be taken.

1 Like

If your changing the tool, and using the same Tool Path Zero in Carbide Create, then you only want to reset the Z.

1 Like

Makes sense. X and Y zeros should not change after the tool change or things won’t line up correctly.

Yeah if you plan on completing the work in one session then you just need to zero the Z (I’ve forgotten to do this before and ruined my work), A homing/work coordinate system or an edge finding system is nice to have in case you need to turning the machine off between the two tool changes or if something goes wrong and you need to start over (power failure, system crash, etc…).

If you are making the same thing over and over and have a work holding jig that is always in the same place the work coordinate system is very nice to have.

If you want a quick way of doing the z after a tool change,fit the tool but leave the collet loose,leave a longer amount of tool than you would normally have extended,lower z and the tool will slide into the collet giving you a very good z point,set zero,raise the spindle and nip the tooling down. Very handy for chamfer mill changes,although I do put a piece of shim steel as a pad for that to act as a buffer,the point tends to dig in a little with Alu.

I hope to revive this topic.

Please help/explain; my scenario is as follow (one session):

  • material “zero” is set at the front left corner [a dot representing centre of the 10mm diameter end mill
  • two toolpaths - first is a roughing run with 10mm diameter end mill
  • second toolpath (finishing) using 4mm diameter ball nose bit
  • the first roughing toolpath was completed but the “zero” dot was cut out by the roughin tool

How to precisely set up up “zero” for the second small tool?
The X and Y may not be very difficult but where the Z should be?

Thank you in advance.

This should go without saying, but don’t zero off the top face of your material when your roughing pass is going to destroy the top face of your material.

Don’t ask how I know.

1 Like

You can’t with your scenario. If you want to precisely set up the Z “zero” between tools, you need to have a constant reference point.

If you know that you are going to remove the entire surface plane of your work stock, then you need to set your Z Zero off of a non-work stock reference point. Two ways of doing this:

  • Zero off of your waste board with tool 1 and then jog to your “dot.” Once the tip of tool 1 is on your dot, write down your Z value (for example, if your stock is exactly 0.75" thick, your Z value should be +0.75" (or use mm if you prefer)). This is your reference offset. Re-Zero your Z now that the offset is known. Cut your piece, which will remove your “dot.” After your tool change, Zero off of your waste board again with tool 2. Now, manually jog your Z up your offset value (+0.75" in this example), and Zero your Z again. Now run the second tool’s tool path.
  • Set your CAM program to zero off the bottom of your work piece. When running the tool paths, just zero off of your waste board (or whatever is directly below your work stock) before running each job. You will have to be sure to accurately enter the stock thickness in the CAM program so that it knows how far up to retract before cutting.
1 Like

Thank you so much Adam for the thorough explanation. Very helpful!

There is one more datum item I’ve missed in my scenario; the “dot” was about 16mm from each edge.
It is a frame and 17mm deep pocket with a 3D relief carved within the pocket. The frame on the top was not touched by cutter because of clamps.

My apology for complicating my original question.

If I understand you correctly, then you would just zero your Z off of the frame for each tool (even your first tool -
‘constant reference point’ and all that).

When you zero your X, Y, and Z, they are independent of each other, as you are setting zero for each plane, not a specific point in 3D space. Sure, the starting point of your job will be the 3D point where the 3 planes intersect, and our mind immediately goes to zeroing all 3 planes on that point, but as long as you zero your Z on the same plane as your “dot”, then it will be correct for your job.

Following this thread, I set up a dual endmill project by exporting 2 different G code files. I needed to use the small 102 for the inside cuts and larger 201 for the outside cut.

I used the 102 endmill to drill a pilot hole in the bottom left corner of my workpiece and used it to zero the machine.

When I later needed to switch to the 201 - I used the same hole, even though it was smaller, everything lined up perfectly!

quick timelapse of the cut:

It required a fair bit of sanding down to remove the burrs and work-holding tabs.

1 Like