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.9k
    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.
    • 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
                        • tcjundefined
                          tcj
                          last edited by

                          C:\Users\tcj-a>C:\Users\tcj-a\AppData\Local\Programs\Python\Python38-32\python.exe C:\Users\tcj-a\Documents\scripts\duet3d_automesh.py C:\Users\tcj-a\Desktop\single_wall_box.gcode --meshable=-185:185,-185:185
                          MESHABLE area: -185.0:185.0,-185.0:185.0
                          Opening gcode file: C:\Users\tcj-a\Desktop\single_wall_box.gcode
                          Read 7472 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: 0:22,12:22
                          printArea: 0:22,12:22
                          Will use 3 x 3 mesh points
                          Marker: M557 TBD  ; parameters will be set automatically
                          Inserted: M557 X-10:32 Y2:32 P3:3
                          

                          single_wall_box.gcode

                          obviously the script does not handle negative numbers as needed, because the first layer print area is -22:-22, 22:22

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

                            @tcj, thanks for the example and for your patient.

                            I made a fix and am now getting the output below. The problem existed in the original code posted in this thread, parsing only non negative x and y values.

                            MESHABLE area: -100.0:100.0,-100.0:100.0
                            Opening gcode file: single_wall_box.gcode
                            Read 7472 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: -22:22,-22:22
                            printArea: -22:22,-22:22
                            Will use 3 x 3 mesh points
                            Marker: M557 TBD  ; parameters will be set automatically
                            Inserted: M557 X-32:32 Y-32:32 P3:3
                            

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

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

                              @zapta thank you

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

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

                                @tcj, thanks for the example and for your patient.

                                I made a fix and am now getting the output below. The problem existed in the original code posted in this thread, parsing only non negative x and y values.

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

                                Does this bring it closer to working for Delta's? Or at least probing a square area of the circular bed?

                                zaptaundefined tcjundefined 2 Replies Last reply Reply Quote 0
                                • zaptaundefined
                                  zapta @Baenwort
                                  last edited by zapta

                                  @Baenwort, what are the special requirements for delta compared to a cartesian?

                                  The current script finds the bounding rectangle of the first layer's print (negative numbers are ok) and generates a M557 command with X and Y ranges and number of probe points.

                                  In case of a delta, the bounding rectangle can have points outside the round print area but I presume the duet will ignore them.

                                  Edit: for delta, if objects are placed in the center, it's possible to compute the radius from (0, 0) and issue a M557 with a R param.

                                  1 Reply Last reply Reply Quote 0
                                  • Red Sand Robotundefined
                                    Red Sand Robot
                                    last edited by

                                    I'm also having an issue when getting the post processing script to run. I am getting this:

                                    Post-processing script C:\Users\Jack\AppData\Local\Programs\Python\Python38-32\python.exe "C:\Program Files\PrusaSlicer-2.2.0+win64-202003211145\PrusaSlicer-2.2.0+win64-202003211145\duet3d_automesh.py" on file C:\Users\Jack\Documents\3D Printing\Stuff\Flex Tube Support.gcode failed.
                                    Error code: 1
                                    

                                    Any ideas on what I may be doing wrong?
                                    This is my full start gcode script:

                                    M82 ;absolute extrusion mode
                                    G21 ;metric values
                                    G90 ;absolute positioning
                                    M82 ; set extruder to absolute mode
                                    M107 ;start with the fan off
                                    G29 S2; clears existing bed heightmap
                                    
                                    ; For automesh
                                    M557 TBD  ; parameters will be set automatically
                                    G28; home all
                                    
                                    G32; motorized gantry plane correction
                                    G32;
                                    G32; Repeated 3 times to ensure its correct
                                    
                                    G29  Mesh Bed compensation 
                                    
                                    G1 Z20 F6000 ;move the platform down 15mm
                                    G1 F100 E9 ;extrude 9mm of feed stock
                                    G92 E0 ;zero the extruded length
                                    
                                    

                                    almost an engineer

                                    OwenDundefined zaptaundefined 2 Replies Last reply Reply Quote 0
                                    • OwenDundefined
                                      OwenD @Red Sand Robot
                                      last edited by

                                      @Red-Sand-Robot
                                      Double check the content of the script.
                                      I just tried yesterday and was getting the same error.
                                      The first time I downloaded, I right clicked the link and selected "download link" or some such.
                                      Problem was it downloaded the whole HTML page, not just the python script. (DOH!)
                                      After copying and pasting just the script content it worked fine.

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

                                        @Red-Sand-Robot, I would suggest to first run it manually from the command line. It will give you more information on what's going on. (after verifying that the script download is ok per OwenD's suggestion)

                                        Red Sand Robotundefined 1 Reply Last reply Reply Quote 0
                                        • Red Sand Robotundefined
                                          Red Sand Robot @zapta
                                          last edited by

                                          @zapta Command line? As in my computer or PrusaSlicer? Sorry, the programming side of things isn't my forte.

                                          almost an engineer

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

                                            @Red-Sand-Robot, it seems that you work on windows. I meant commands types in the DOS window. I don't have here a Windows computer but others here may be able to explain it better.

                                            https://www.lifewire.com/how-to-open-command-prompt-2618089

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