Manual Tool Change (Stable version) and tool load position

  • daveyr
  • Away
  • Junior Member
  • Junior Member
More
26 Oct 2024 13:49 #313255 by daveyr
Ok so getting there slowly.
My machine is a none repeatable ER20 collet, Fixed location tool setter.
Workflow: I normally zero from my tool setter with my probe (I know that this is not the most accurate but the tool setter is a softer spring so it always triggers before the tool setter and seems to be good within a .01 ish mm) then probe work cordinates change to the correct tool have it set tool length as part of the tool change and we are off to the chips. 

ProbeBasic upgraded to the stable version, at the stage of trying to get the tool change process back to working how it was.  In the past i used version 3.0 of the ToolTall18T script (modified a bit) and it was working correctly.  Do a M6 or a tool load button and it would move the spindle to a 'Loading location' and then do the probe set the tool length and pause for M01 break if selected.

Trying to figure out what the best way to get started for using the new tool dialogue would be to return to what i had before.  If i enable the M6 Remap then i loose the new tool dialogue.  If i just use the M6 G43 or tool load button it just says ok insert tool and press button but dosnt then go and measure the tool length. Subroutines folder is direct copy from machine_setup folder in the new install.

Please Log in or Create an account to join the conversation.

  • daveyr
  • Away
  • Junior Member
  • Junior Member
More
26 Oct 2024 16:06 #313260 by daveyr
To save anyone spending time on this i am getting there and will post my own answer later :)
The following user(s) said Thank You: Lcvette, mkudlacek

Please Log in or Create an account to join the conversation.

More
15 Dec 2024 09:11 #316696 by mkudlacek
I'm very interested in your solution, because I have the same setup and I'm trying to make it work.

I have ER20, non-repeatable collet and with every tool change need (want;)) to measure the tool tip. My tool setter is actually slightly below the worktable, and that lead me astray whether it's possible to make it work with Probe Basic native tool setting, since it requires (???) to know the distance of the shoulder of the spindle - I'm not sure.

I have a working tool setter in QTDragon via M6 remap and maybe that's the way to do it as well in Probe Basic. Any thoughts?

Please Log in or Create an account to join the conversation.

More
15 Dec 2024 12:31 #316700 by Lcvette
probe basics tool setting is really just a framework for one method, changing it is pretty easy and utilizing the existing parameters for different use cases is also pretty easy. everything is written in the tool_touch_off.ngc subroutine. you can change and edit that and use the passed var values for your own desired use. you just need to formulate how you plan on making things all work together as expected and what and where you plan to measure from. if someone comes up with a universally accepted method and can explain it and there is a consensus on it, i am happy to assist in writing the subroutine for it. but it needs to be a clearly defined methodology.

Please Log in or Create an account to join the conversation.

More
15 Dec 2024 19:34 #316714 by mkudlacek
I have a PrintNC CNC router with ER20 manual collet in the spindle. Work area 1200x600x100. I have a tool setter built into the table so the plate is something like 1mm under the table. The position is X1050 Y70. Why is it like that? Because it doesn't get in the way of big slabs that i can left hanging out of the work area.
I can lower the spindle, but it is still more than 100mm above the tool setter, so I cannot 'touch' it like the settings in PB says (that is if I understood it correctly)

I use the free version of Fusion360 and do jobs like making casting molds out of blocks of polyurethane and some small woodworking projects. So small jobs, handful of tools to change. But I need precision and automation. And that's why I need to manually change the tool (because of poor man's manualspindle), but do the measuring of the offset automatically.

My procedure:

1. I have multiple per-operation files of the job or one big file (free Fusion360 doesn't allow that and I'm experimenting with github.com/TimPaterson/Fusion360-Batch-Post)

2. I fasten the stock to the table, put a pointy rod into spindle and set the WCS origin. Or put the first tool of the first operation and do the setting of origin that way - it's precise enough and I don't have to switch tools unnecessarily.

3. Then I start the program. When it runs into tool change it should go as:

3A. move the Z all the way up
3B. move to defined position where is easy for me to change the tool
3C. wait until I change the tool and click on a button
3D. move above the tool setter
3E. move relatively fast to some Z
3F. move slowly until touch of or error
3G. move up a little bit
3H. move extra slow until touch
3I. <do some magic tool offset sh*t so the tip of the tool in G54 Z is the same as previous tool>
3I. move Z all the way up
3J. continue with the job

So far the subroutine tool_touch_off.ngc does most of it or I modified it to behave like that. What was missing is the moving to known location and what I think is an error - that it doesn't set the new tool number. It stays the same. I added the M6 command so it shows the dialog waiting for change. I lavishly stole that from here: wiki.printnc.info/en/controllers/linuxcnc/tool-setter-no-probe

But it still doesn't work the way I need to. Both of these routines. Fusion360 is messing with G43 in a way I don't understand why - it does "G43 Z15. H0" after each tool change, which messes with the macro above and the fix is "remove that from postprocessor" which is a big no-no for me.

I like very much the idea of tool_touch_off.ngc. Especially the way it get's its absolute position by using a relative position but at known absolute Z height. Very clever! But from a quick test the new tool after change ended up again in wrong Z height.

I am determined to make it work because it is imperative to my work. But it sure as hell ain't walk in the cake. Or piece of park for that matter.

Please Log in or Create an account to join the conversation.

More
16 Dec 2024 16:57 #316775 by Lcvette
Yes it can be difficult to sort everything out but you've made a good starting point of labeling what you want to happen from there it's just a matter of writing the code to match. M6 T5 G43 H5 is calling tools 5 and the z offset from the tool table for tool 5.

You could cancel that with a g49, but the issue you're having is you're trying to measure something from the previously loaded tool and if that's getting stored in the pool table that's probably not going to be good for you.

You may want to take the approach to just reset the z work offset at the tool change and measure the new tool from the known tool setter height and have an entry for the material height off of the table which would be your known working location. With this every time you made a tool touch off with a new tool you'd have something easily calculable.

Please Log in or Create an account to join the conversation.

More
18 Dec 2024 13:49 #316914 by mkudlacek
Thank you for the ideas. I didn't want to take the approach of needing to know a precise Z height of tool setter, because it feels cumbersome to me, however beneficial it may be. And I got away with that:) So, attached is the code of my take on the manual tool change macro. It works on my machine flawlessly and I think it's rather elegant solution. The procedure is noted in the macro itself and here's excerpt of the documentation:
​​
(#####################################################################################)
(                                                                                     )
( Documentation                                                                       )
(                                                                                     )
( This macro is for measuring and setting tool offset after manual change of the tool )
( in non-ATC spindles. It ensures (via G43), that the tip of the tool will be at the  )
( same Z-height after change. It uses a touch tool setter in known XY position. The Z )
( position of the tool setter doesn't have to be known, nor precise. It only has to   )
( be the same throughout the session.                                                 )
(                                                                                     )
( The macro fits the settings in Probing -> Tool Setter dialog in Probe Basic         )
( It is meant to be used as M6 Remap:                                                 )
(                                                                                     )
(     [RS274NGC]                                                                      )
(     SUBROUTINE_PATH = subroutines                                                   )
(     REMAP=M6 modalgroup=6 ngc=modorinc-tool-change                                  )
(                                                                                     )
( At the begining of a job, load the probing tool to the spindle. The tool could be   )
( a sharp rod or anything that allows you to mark a WCS origin. The tool has to be in )
( tool table and has to have a number specified in #<probing_tool_number>, e.g. 999.  )
( Load the tool with M6 T999 command or via the UI.                                   )
( The spindle will go to a location, where it is easy to load the tool, by default    )
( G53 [X0,Y0,Z0]. If the currently loaded tool is not #999, a built-in dialog will    )
( appear, telling you to load the tool into spindle and press button to continue.     )
( After loading, the spindle travels to tool setter's X,Y position in Z0 height.      )
( When it is above the tool setter, a current position stored in #5422 is remembered. )
( Then it goes down to a Z height from which the probing starts. From there, it       )
( initiates faster touch of the tool setter. If correct, it goes up a little bit and  )
( repeats the touch with slower feedrate. If the second touch is correct a current    )
( position stored in #5063 is remembered.                                             )
(                                                                                     )
( The difference between the two offsets is an absolute distance between the tool tip )
( in Z0 and the tool setter. This value, measured with a probing tool is stored in    )
( variable denoted by #<probing_tool_address>.                                        )
( After successful touch-off of the probing tool, you can continue to mark the WCS    )
( origin with it. Then start the program. The offset of the probing tool is set to 0  )
( and all subsequent tool changes will set the offset of the new tool based on the    )
( difference of tool tip height of the probing tool.                                  )
( The offsets are stored into tool table via G10 L1 and activated by G43.             )
(                                                                                     )
(#####################################################################################)​​​​​
Attachments:

Please Log in or Create an account to join the conversation.

More
18 Dec 2024 19:53 #316929 by Lcvette
sweet! looks like you had some fun playing in the subroutines! rewarding yes?

as long as it accomplishes your goals its good in my eyes! go forth and probe many tools!

Chris

Please Log in or Create an account to join the conversation.

Moderators: KCJLcvette
Time to create page: 0.072 seconds
Powered by Kunena Forum