Tool length setter RRF CNC
-
Has anyone been able to get a traditional tool length setter (one that sits at a known X Y position and sits above the bed) to work with programs that require semi-auto tool changes eg that use multiple tools? I've been struggling to set it up in a way that is consistent between changes.
-
@jengland
This is something I really want to do, but haven't had any success either - although I have been rebuilding my machine and haven't had time to work on this.Definitely watching this thread...
-
#MeToo
but for a moving bed in my K40 CO2 laser. Which means, I'd put the sensorplate on the material and reduce distance to the air-assist nozzle until touchdown -
If you have a touch probe to measure the tool length in Z direction, check out M585. That command has been supported for ages and it may be used with
M500
/M501
, too, AFAIR. -
@chrishamm I've tried this before but could never quite wrap my head around it do you have an example of something that works with this?
-
@jengland My CNC machine isn't finished yet so I cannot give you a tested example at this point, but something like this should work:
Put this in the endstops section of config.g:
M558 K1 P5 C"io4.in" ; create probe #1 for use with M585, NC with GND to io4.in
And this into an arbitrary macro file for measuring the tool Z offset:
T-1 ; deselect current tool if any G10 P0 Z0 ; reset tool's Z offset T0 ; select the first tool G1 Z100 ; lift Z G1 X20 Y20 F3000 ; move the tool above the touch-off probe at X=20 Y=20 M585 Z104 F600 P1 S1 ; probe Z until probe #1 is triggered. Z104 is the Z distance between current height and trigger point of the switch (= Z-4)
I hope you get the idea.
-
@Jengland I do have it
I use the following method:- I set the machine zero with setter and spindle without the tool / collet / nut
- I install the tool
- I test the tool and set tool height
If I change the tool, I just redo p2 and p3
It does require additional step on the machine enable (p1), but It happend that my setter is +- 0.01, and Z endstop about +- 0.1-0.3
My script
M208 Z8 S1 G53 G90 G0 X321.0 Y0.0 if !exists(global.MGlobalsLoaded) M98 P"/macros/Measuring/globals.g" ;M558 P1 C"io7.in" H23.258 F{global.MSpeedFast,global.MSpeedLow} M558 F{global.MSpeedFast} K1 M300 S300 P1000 if state.currentTool = -1 M291 S0 T5 P"Probing the spindle zero height" else if global.HSpindle <= -9999 abort S"Please set the spindle zero first" M291 S0 T5 P"Probing the tool " ^ state.currentTool ^" offset" M558 F{global.MSpeedFast} K1 G30 S-1 K1 G53 G1 Z{move.axes[2].machinePosition+2} H4 M558 F{global.MSpeedLow} K1 G30 S-1 K1 if state.currentTool = -1 G92 Z{sensors.probes[1].diveHeight} set global.HSpindle = sensors.probes[1].diveHeight set global.MResultZ = sensors.probes[1].diveHeight M208 Z30 S1 else M400 echo "Probe triggered at Z:" ^ move.axes[2].machinePosition ^" Sensor height: " ^ sensors.probes[1].diveHeight var ToolLen = move.axes[2].machinePosition - sensors.probes[1].diveHeight set global.MResultZ = - var.ToolLen M98 P"/sys/tool_set.g" T{state.currentTool} O{global.MResultZ} ; Set soft limit to 0 plane M208 Z{var.ToolLen} S1 M558 F{global.MSpeedFast} K1 G53 G1 Z{move.axes[2].max - 10} H4