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

    Bed compensation condition

    Scheduled Pinned Locked Moved
    Gcode meta commands
    4
    10
    360
    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.
    • Marco Bonaundefined
      Marco Bona
      last edited by Marco Bona

      Hello, I'm optimizing processes and wanted to figure out if it was possible to perform with conditional programming this step:
      if I start printing run G29 S0 instead if I start printing after the previous print (M0) load the map with G29 S1.

      Alternatively I should delete the file map at the end of the program manually, I think there is no possibility to delete it via gcode.
      I know that it may seem useless but in doing so I would avoid some repositioning errors due to the homing of the z-axis. Any help or advice is welcome.
      Thank you

      1 Reply Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt
        last edited by

        Unless you have some issues with your hardware you should not need to create your height map frequently.

        At the start of a print if you set the Z=0 datum using G30 and load the existing height map with G29 S1 things should work well.

        Frederick

        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

        Phaedruxundefined 1 Reply Last reply Reply Quote 1
        • Phaedruxundefined
          Phaedrux Moderator @fcwilt
          last edited by

          @fcwilt said in Bed compensation condition:

          At the start of a print if you set the Z=0 datum using G30 and load the existing height map with G29 S1 things should work well.

          Provided you used G30 at the same point before creating the heightmap and your probe is reliably repeatable.

          Z-Bot CoreXY Build | Thingiverse Profile

          1 Reply Last reply Reply Quote 0
          • Marco Bonaundefined
            Marco Bona
            last edited by

            @fcwilt, @Phaedrux thank you for the answers.
            So, I tried to make a lot of comparisons of the detected heights and noticed that in some cases I have differences of about 0.1mm. I can not quantify whether it is so much or little but when I start a new print I would like to start from the optimal conditions, instead, in my case, if I canceled last print I would avoid probing the points again because I don't bring the Z axis home.
            Now that I think it would be more logical to start printing after canceling the previous print without even probing or loading the last map, but I don't have much clear how to set instruction in start.g

            fcwiltundefined 1 Reply Last reply Reply Quote 0
            • Marco Bonaundefined
              Marco Bona
              last edited by

              Just to give you an idea of what the code was like

              If M0-false
                G28
                G29 
                etc.
                etc.
              
              G1 X0 Y0 Z1 F5000
              

              I know it's wrong but it's to have an idea

              1 Reply Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @Marco Bona
                last edited by

                @Marco-Bona said in Bed compensation condition:

                Now that I think it would be more logical to start printing after canceling the previous print without even probing or loading the last map...

                Why do you thing that is more logical?

                Frederick

                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                1 Reply Last reply Reply Quote 0
                • Marco Bonaundefined
                  Marco Bona
                  last edited by

                  @fcwilt, theoretically it should already be loaded

                  fcwiltundefined 1 Reply Last reply Reply Quote 0
                  • fcwiltundefined
                    fcwilt @Marco Bona
                    last edited by

                    @Marco-Bona said in Bed compensation condition:

                    @fcwilt, theoretically it should already be loaded

                    Understood.

                    I have one macro that is called by the slicer at the start of the print.

                    • It starts the hotend and bed to heating
                    • It cancels baby-stepping and mesh compensation
                    • It homes the printer if needs be
                    • When the hotend is up to temp it primes the hotend
                    • A pause take place for cleaning the nozzle and bed
                    • The Z=0 datum is set using G30
                    • The existing height map is loaded using G29 S1

                    So it doesn't matter to me if it is a new print or a restart of a canceled print.

                    While it may not be the ultimate in efficiency what does it matter given that the actual printing consumes much more time than any other phase.

                    Frederick

                    Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                    1 Reply Last reply Reply Quote 0
                    • Marco Bonaundefined
                      Marco Bona
                      last edited by

                      @fcwilt, what your macro does is very similar to what I do at start printing, obviously I do not load the map but start the probing. Nowever I would like to add an additional condition, but I understand that it is not possible

                      1 Reply Last reply Reply Quote 0
                      • ofliduetundefined
                        ofliduet
                        last edited by

                        I use this code in my homez.g to run automatic tramming (three motor bed) and mesh levelling only if the machine has been off or been reset:

                        if move.calibration.numFactors = 0  ; no bed levelling run yet
                        	G32
                        	M98 P"homing/unsafe-homez.g"
                        	G29
                        else
                        	M98 P"homing/unsafe-homez.g"
                        

                        with unsafe-homez.g containing

                        G1 X{move.axes[0].max/2} Y{move.axes[1].max/2} F15000    ; move to homing position 
                        M558 H10 ; careful when homing
                        G30      ; home precise with Z-probe
                        M558 H3  ; back to speed
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Unless otherwise noted, all forum content is licensed under CC-BY-SA