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

    Cura Script to Automatically Probe Only Printed Area

    Scheduled Pinned Locked Moved
    General Discussion
    15
    60
    7.4k
    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.
    • zaptaundefined
      zapta @Luke'sLaboratory
      last edited by

      @Luke-sLaboratory said in Cura Script to Automatically Probe Only Printed Area:

      "move to next layer (0)"

      Do we need to add to the prusaslicer gcode settings generation of layer markers or is there a setting to have it enabled automatically.

      zaptaundefined 1 Reply Last reply Reply Quote 0
      • zaptaundefined
        zapta @zapta
        last edited by zapta

        I setup my prusaslicer to use this script and it works very well. I looked for some time for per-print mesh automation and this one does the job. Thanks for sharing it.

        The file version I am using is in the github link below. It uses utility classes to handle intervals and rectangles but otherwise it's the same flow. There are still a few TODOs but I am using it with my regular prints.

        https://github.com/zapta/misc/blob/master/duet3d_automesh/duet3d_automesh.py

        1 Reply Last reply Reply Quote 1
        • Baenwortundefined
          Baenwort @insertnamehere
          last edited by

          @insertnamehere

          It would be great!

          zaptaundefined 1 Reply Last reply Reply Quote 0
          • zaptaundefined
            zapta @Baenwort
            last edited by zapta

            I cleaned up the python script. It now has command line flags that allow customization (set them in the slicer post processing command line).

            https://github.com/zapta/misc/blob/master/duet3d_automesh/duet3d_automesh.py

            I am very happy with the per-print quick partial meshing, getting good first layer without worrying about leveling. Ideally the slicers would provide the first layer's bounding box as place holders we can embed in gcode.

            tcjundefined 1 Reply Last reply Reply Quote 1
            • tcjundefined
              tcj @zapta
              last edited by

              @zapta could you please change the script that it can handle negative coordinates in --meshable ?
              This will make it usable for Delta printers, because
              "For Cartesian printers, specify minimum and maximum X and Y values to probe and the probing interval. For Delta printers, specify the probing radius. If you define both, the probing area will be the intersection of the rectangular area and the circle. "
              https://duet3d.dozuki.com/Wiki/Gcode#Section_M557_Set_Z_probe_point_or_define_probing_grid

              Thank you

              zaptaundefined 1 Reply Last reply Reply Quote 1
              • zaptaundefined
                zapta @tcj
                last edited by

                @tcj, I made the change. Can you give it another try?

                https://github.com/zapta/misc/tree/master/duet3d_automesh

                tcjundefined 1 Reply Last reply Reply Quote 0
                • tcjundefined
                  tcj @zapta
                  last edited by tcj

                  @zapta thank you for the effort, but ist does not work yet
                  only defining the default meshable area within the script (line 50) by

                  default="-185:185,-185:185"
                  

                  works,
                  but when adding

                  <path to your python3> <path_to_the_duet3d_automesh.py file> --meshable "-185:185,-185:185"
                  

                  to the Post-processing script, it fails

                  zaptaundefined 1 Reply Last reply Reply Quote 1
                  • zaptaundefined
                    zapta @tcj
                    last edited by

                    @tcj, try this syntax for the flags (notice the '=')

                    --meshable=-30:250,-3:280

                    tcjundefined 1 Reply Last reply Reply Quote 1
                    • tcjundefined
                      tcj @zapta
                      last edited by

                      @zapta 👍 👏

                      Thank you

                      1 Reply Last reply Reply Quote 0
                      • DK90undefined
                        DK90
                        last edited by DK90

                        @zapta said in Cura Script to Automatically Probe Only Printed Area:

                        --meshable=-30:250,-3:280

                        Hello, i have the following error when i am trying to ad the postprocess
                        can some one help me please?

                        Thanks

                        Post-processing script C:\Users\Dominic\AppData\Local\Programs\Python\Python36-32\python.exe C:\Program Files\Prusa3D\PrusaSlicer\duet3d_automesh.py file on file D:\2_Projekte\3D Druck\2_Modelle\28_R2D2_Did3D\R2D2_Did3D_SW_FullPack_h\STL_Final\zumdruckenbereit\Cube_PLA_Center foot_0.2mm_PET_2h24m.gcode failed.
                        Error code: 2
                        ```~~~~
                        tcjundefined 1 Reply Last reply Reply Quote 0
                        • tcjundefined
                          tcj @DK90
                          last edited by

                          @DK90 the space in "Program Files" leads to this error
                          change it to

                          C:\Users\Dominic\AppData\Local\Programs\Python\Python36-32\python.exe "C:\Program Files\Prusa3D\PrusaSlicer\duet3d_automesh.py"
                          

                          notice the "

                          DK90undefined 1 Reply Last reply Reply Quote 1
                          • DK90undefined
                            DK90 @tcj
                            last edited by DK90

                            @tcj said in Cura Script to Automatically Probe Only Printed Area:

                            C:\Users\Dominic\AppData\Local\Programs\Python\Python36-32\python.exe "C:\Program Files\Prusa3D\PrusaSlicer\duet3d_automesh.py"

                            Oh 🙂 thank you now ot works 🙂
                            but wehn i start the print, there is now mesh leveling ....
                            where is my error?

                            Start G-Code

                            M83  ; extruder relative mode
                            M140 S[first_layer_bed_temperature] ; set bed temp
                            
                            M190 S[first_layer_bed_temperature] ; wait for bed temp
                            
                            
                            
                            ; For automesh
                                 M557 TBD  ; parameters will be set automatically
                                 G28  ;home
                                 ;G29 S1 P"heightmap.csv"; Hoehenkarte Laden
                            
                            M109 S[first_layer_temperature] ; wait for extruder temp
                            ;G29 S1 P"heightmap.csv"; Hoehenkarte Laden
                            
                            
                            ; Reinigungs Fahrt
                            G1 X-3.0 Y-10 F1500.0 ; go outside print area
                            G92 E0.0
                            G1 Z0
                            G1 E8 ; Purge Bubble
                            G1 X60.0 E9.0  F1000.0 ; intro line
                            G1 X100.0 E12.5  F1000.0 ; intro line
                            G92 E0.0
                            

                            G-Code layer change setting

                            ; Automesh: begin layer [layer_num]
                            
                            tcjundefined 1 Reply Last reply Reply Quote 0
                            • tcjundefined
                              tcj @DK90
                              last edited by tcj

                              @DK90 said in Cura Script to Automatically Probe Only Printed Area:

                              but wehn i start the print, there is now mesh leveling ....

                              and it never will without G29 😉

                              this is a part of my start sequence

                              M140 S[first_layer_bed_temperature]
                              M104 S[first_layer_temperature]
                              M116; wait for temperatures to be reached
                               
                              ; For automesh
                              M557 TBD  ; parameters will be set automatically
                              G28 ; home
                              G29 ; mesh
                              
                              1 Reply Last reply Reply Quote 0
                              • DK90undefined
                                DK90
                                last edited by

                                oh 😄 yes that sounds good....that was my mistake...:D Thank you

                                zaptaundefined 1 Reply Last reply Reply Quote 0
                                • zaptaundefined
                                  zapta @DK90
                                  last edited by

                                  @DK90, if you use panel due and prusaslicer (and maybe cura, didn't try), try to enable Support Remaining Time in the Printer Settings | General, tab. This will include M73 time markers in the gcode that which cause the post processing script to show remaining hours and minutes in the Standby fields of Panel Duet (ignore the '-' prefix).

                                  This time estimation is much more consistent than the ones provided by Duet.

                                  DK90undefined 1 Reply Last reply Reply Quote 1
                                  • DK90undefined
                                    DK90 @zapta
                                    last edited by

                                    @zapta Thank you for the info. I will try it. That sound good.

                                    1 Reply Last reply Reply Quote 0
                                    • tcjundefined
                                      tcj
                                      last edited by tcj

                                      @zapta I'm sorry to say that, but it does not work properly yet.
                                      The script gives

                                      M557 X-10:32 Y-10:32 P3:3
                                      

                                      where it should deliver

                                      M557 X-32:32 Y-32:32 P3:3
                                      

                                      for a testcube in the middle of the bed with some mm of skirt

                                      total dimensions +/- 21.xx mm

                                      OwenDundefined zaptaundefined 2 Replies Last reply Reply Quote 0
                                      • OwenDundefined
                                        OwenD @tcj
                                        last edited by

                                        @tcj what are your probe offsets?

                                        1 Reply Last reply Reply Quote 0
                                        • CCS86undefined
                                          CCS86
                                          last edited by

                                          Probe offsets wouldn't matter.

                                          Posting the gcode would be helpful though.

                                          1 Reply Last reply Reply Quote 0
                                          • zaptaundefined
                                            zapta @tcj
                                            last edited by

                                            @tcj, try to run the script manually and see what it prints. To do that, run it from command line with the same arguments you have in the slicer and also add the name of the gcode file at the end of the command line.

                                            When I run it I get prints like this

                                            MESHABLE area: 30.0:280.0,30.0:280.0
                                            Opening gcode file: /var/folders/dt/1t1sf6d574d3l023pknh_754000cbj/T/.PrusaSlicer.upload.7e0e-12b6-1a76-0282
                                            Read 83648 lines
                                            Parsing state = ParsingState.WAITING_FOR_LAYER1
                                            ;Automesh: begin layer 0
                                            Parsing state = ParsingState.IN_LAYER1
                                            ;Automesh: begin layer 1
                                            Parsing state = ParsingState.LAYER1_DONE
                                            First layer print areas: 92:189,131:210
                                            printArea: 92:189,131:210
                                            Will use 4 x 3 mesh points
                                            Marker: M557 TBD  ; marker for automesh script
                                            Inserted: M557 X82:199 Y121:220 P4:3
                                            

                                            (if you prefer, post your gcode file and command line parameters and I can test it here)

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA