Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Tool length setter RRF CNC

    Scheduled Pinned Locked Moved
    CNC
    5
    7
    752
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Jenglandundefined
      Jengland
      last edited by

      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.

      Nightowlundefined 1 Reply Last reply Reply Quote 1
      • Nightowlundefined
        Nightowl @Jengland
        last edited by

        @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...

        Few things are more dangerous than taking the advice of someone who thinks he knows what he's doing.
        I'm still on my learning curve, so take everything I say with caution!

        RatRig 1075, Duet3 MB6HC, Sorotec SFM 1000 PV-ER milling motor, Hobbyist

        1 Reply Last reply Reply Quote 0
        • o_lampeundefined
          o_lampe
          last edited by

          #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

          chrishammundefined 1 Reply Last reply Reply Quote 0
          • chrishammundefined
            chrishamm administrators @o_lampe
            last edited by

            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.

            Duet software engineer

            Jenglandundefined 1 Reply Last reply Reply Quote 0
            • Jenglandundefined
              Jengland @chrishamm
              last edited by

              @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?

              chrishammundefined 1 Reply Last reply Reply Quote 0
              • chrishammundefined
                chrishamm administrators @Jengland
                last edited by

                @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.

                Duet software engineer

                chernogorskyundefined 1 Reply Last reply Reply Quote 0
                • chernogorskyundefined
                  chernogorsky @chrishamm
                  last edited by

                  @Jengland I do have it
                  I use the following method:

                  1. I set the machine zero with setter and spindle without the tool / collet / nut
                  2. I install the tool
                  3. 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
                  
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post
                  Unless otherwise noted, all forum content is licensed under CC-BY-SA