Tool Specific M675 For Automatic XY tool offsets
-
Title says it all, I want a version of M675 that stores tool specific offsets. As you are printing you cannot keep re-homing each time you change a tool, you would collide with the part.
One way this could work is the first tool is homed using "M675 Y T0 R2 F1200" which acts like a normal homing. If a tool other than 0 is used for initial homing, then it becomes the arbitrary 'true home' the tool from which all the rest are relative too. Then say tool 2 is homed with: "M675 Y T1 R2 F1200" next T2, T3 etc. Instead of homing the next tools, their offset from the original homing would be recorded.
Please add this functionality or give me a brief high level description of how I would implement something like this in my own fork.
-
Each tool already has its own individual XYZ offsets, as well as other individual settings??
If they are set correctly, once the machine is homed, it does not matter which (if any) tool is selected, the nozzle positions will always be correct?
I don't follow what you are asking for beyond what it already does??
eg. In my toolchanger machine, I have three printing tools at present; I don't have X & Y set precisely with these so far as I'm using them for different materials and not changing tools within a single print job.
The Z offsets are each individually set though, to give each its correct zero height:
; Tools ; T0 M563 P0 S"Hem-HT" D0 H1 F0 ; define tool 0: Heater 1, Print cooling fan = Fan 0 G10 P0 X0 Y0 Z-2.94 ; set tool 0 axis offsets G10 P0 R0 S240 ; set initial tool 0 active and standby temperatures M572 D0 S0.03 ; Pressure advance - Direct drive M207 P0 S2.0 F2400 Z0.075 ; Firmware retraction setting ; T1 M563 P1 S"V6" D1 H2 F2 ; define tool 1: Heater 2, Print cooling fan = Fan 2 G10 P1 X0 Y0 Z-1.75 ; set tool 1 axis offsets G10 P1 R0 S210 ; set initial tool 1 active and standby temperatures M572 D1 S0.4 ; Pressure advance - Long bowden M207 P1 S2.0 F2400 Z0.075 ; Firmware retraction setting ; T2 M563 P2 S"Hemera" D2 H3 F4 ; define tool 2: Heater 3, Print cooling fan = Fan 4 G10 P2 X0 Y0 Z-3.35 ; set tool 2 axis offsets G10 P2 R0 S210 ; set initial tool 2 active and standby temperatures M572 D2 S0.03 ; Pressure advance - Direct drive M207 P2 S2.0 F2400 Z0.075 ; Firmware retraction setting
-
@rjenkinsgb It seems you missed the "automatic" part of what I was saying. The user should never have to manually set offsets, they change over time and it is a giant pain. Sure you can design a sufficiently precise printer that does not change, but that is too expensive which is why it has not been done.
I have a circle with a center point at a known location cut into my build plate. I want to drop the nozzle in the hole and capacitive home all the tools at the start of each print. If I home them consecutively in the hole with M675 as the command works now only the last tool homed will print in the "right" place relative to the hole.
Maybe I do not want to home in this way before every print, it would be nice to additionally save the offsets generated by this.
-
@sphyloid can you explain why you want to use M675? Do you always have a cavity to probe after changing tool?
We think that the function of M675 could be replicated by a M675.g macro, so we are considering removing it in RRF 3.5 and providing a sample macro instead. It may be that we need to extend the object model a little to make this possible.
-
@dc42 The whole point of what I am asking is that the tool offsets are found automatically without the need for the user to print a veneer or any other shenanigans. The cavity is only available on the first layer.
This is a machine that has an identical feature. They allow the user to run probing on that cavity when the machine falls out of calibration instead of having to waste tons of time finding offsets. The machine then stores these values.
My idea behind running this homing at the start of each print is simply so that the user never has to worry about the machine falling out of calibration, making the alignment completely hands-free, completely automatically. The user simply has effortless dual material printing experience.
The next step is enabling servo lifting on the two nozzles so that they automatically maintain themselves in that axis.
In my case I have 10 idex machines. I have not ever considered using dual material mode as maintaining an accurate calibration on 10 machines is completely unsustainable without it being automatic or wasting tons and tons of time. Adding a cavity to probe? Now that is a cakewalk.
-
@sphyloid I think you can already do what you want in a macro, like this:
- Home the axis.
- Using one tool, use M675 to probe the centre of the cavity.
- Extract the position of that axis from the object model.
- Subtract the extracted position from where the cavity centre ought to be, and add that to the offset of that tool.
- Repeat steps 2 to 4 for the other axis, and again using the other tool.