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

[3.4.6+SBC] DWC - "Object Height" issue/bug?

Scheduled Pinned Locked Moved Solved
Duet Web Control
5
13
359
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.
  • undefined
    oozeBot
    last edited by 5 Jan 2024, 14:49

    This might be one for @dc42 as I believe it's within the firmware, but creating a topic here under DWC..

    During a round of testing our latest custom release of DWC, we noticed quite a few job files displaying "n/a" for the Object Height. These test files are the same object - just sliced with multiple copies to test various files sizes, etc. To verify it wasn't an issue with our custom code, I rolled back to the stock version which resulted in the same result. These were sliced with PrusaSlicer 2.7.1.

    In JobFileList.vue, there are no calculations for Object Height, it is returned from fileInfo.height which is returned from RRF. So what is RRF using to calculate this field? Why would it behave differently when multiple objects are present? That is the only scenario where we see this field not returned.

    1b0a08fb-0e60-410e-a136-33e07555d8a2-image.png

    undefined 1 Reply Last reply 5 Jan 2024, 21:44 Reply Quote 0
    • undefined oozeBot marked this topic as a question 5 Jan 2024, 14:49
    • undefined
      oozeBot @oozeBot
      last edited by oozeBot 1 Oct 2024, 19:58 10 Jan 2024, 00:54

      @chrishamm - thanks for the nudge on where this is parsed. We were on the fence about building custom versions of DSF (we wanted to keep these stock), but for now, we went ahead and rebuilt for publishing on our package server.

      What we did was added a new custom parameter that can be added into the End G-Code section:

      ;TYPE:Custom
      ; OBJ_HEIGHT: 24.23

      which results in:
      c118bc4d-2c31-450d-871f-8c9ebfe52555-image.png

      undefined 1 Reply Last reply 11 Jan 2024, 09:16 Reply Quote 0
      • undefined
        SJI @oozeBot
        last edited by 5 Jan 2024, 21:44

        @oozeBot I've noticed the same with simplify 3d v5 lately on rrf 3.5rc2. Not all gcode files but a few. I thought initially it was S3D causing it

        1 Reply Last reply Reply Quote 0
        • undefined
          Phaedrux Moderator
          last edited by 6 Jan 2024, 03:47

          Is it only happening on files larger than 25mb?

          Z-Bot CoreXY Build | Thingiverse Profile

          undefined 1 Reply Last reply 6 Jan 2024, 15:22 Reply Quote 0
          • undefined
            oozeBot @Phaedrux
            last edited by 6 Jan 2024, 15:22

            @Phaedrux No - our test deck has some very large files that work just fine.. we haven't pinpointed what's causing it, but it appears to have something to do with multiple objects.

            8f0ea41a-decf-4da3-91ba-e542b72a5d59-image.png

            undefined 1 Reply Last reply 6 Jan 2024, 22:22 Reply Quote 0
            • undefined
              OwenD @oozeBot
              last edited by 6 Jan 2024, 22:22

              @oozeBot
              I can more or less reliably replicate this, however it seems more related to file size than to the number of instances.
              These are mostly all the same parts, just with varying instances to achieve different file sizes.
              I also did a couple of large parts with a single instance.
              At around 25-29MB, I get a height of zero with the multiple instance files.
              This suggests RRF/DWC might stop parsing the file looking for the height after this.
              But with the single instance files, it was much higher.
              The boxes are the same size with differing infill percentage.

              I wonder if your larger files have already been printed or simulated?
              Did they have thumbnails?

              For reference I'm running
              Duet 2 WiFi 2WiFi 3.5.0-rc.2
              Duet Web Control DWC 3.5.0-rc.2
              Prusa Slicer 2.7.1+

              height.png

              1 Reply Last reply Reply Quote 1
              • undefined
                oozeBot
                last edited by 8 Jan 2024, 15:23

                That huge file in the screenshot that is over 500MB was uploaded moments before I took the screenshot - Object Height reads just fine. So it's definitely a head scratcher..

                @dc42 - any insight as to what is going on or what RRF uses to calculate Object Height? FYI - our slicer profile already injects the following in the "End G-Code" section as suggested in several other threads.

                ;NUM_LAYERS [layer_num]
                undefined 1 Reply Last reply 9 Jan 2024, 14:38 Reply Quote 0
                • undefined
                  chrishamm administrators @oozeBot
                  last edited by 9 Jan 2024, 14:38

                  @oozeBot NUM_LAYERS has nothing to do with object height detection and in SBC mode, RRF doesn't parse G-code file info either - that's done by DSF in this case. And DSF looks for the last absolute G0/G1 Z parameter, which is then returned as the object height.

                  I'd need to see your full end G-code to tell you what's wrong. Maybe you lift Z at the end but don't switch back to absolute mode as in

                  G91 ; relative mode
                  G1 Z5 ; lift Z by 5mm
                  G90 ; absolute mode

                  Duet software engineer

                  undefined 1 Reply Last reply 9 Jan 2024, 14:54 Reply Quote 0
                  • undefined
                    oozeBot @chrishamm
                    last edited by 9 Jan 2024, 14:54

                    @chrishamm

                    Here is the ending gCode (minus comments) for one of the files which fails to parse Object Height. The routine which runs after the job is complete is encapsulated in the custom mCode M9001.

                    Perhaps it has to do with M486? I believe that was introduced as a feature in PrusaSlicer 2.7.1?

                    I can provide a full file if necessary.

                    G1 X263.999 Y139.759 F12000
                    G1 F6000
                    G1 X260.696 Y143.062 E.21742
                    G1 X260.707 Y142.418 F12000
                    G1 F6000
                    G1 X263.354 Y139.77 E.17427
                    G1 X262.488 Y140.003 F12000
                    G1 F6000
                    G1 X260.949 Y141.542 E.1013
                    M486 S-1
                    G10 ; retract
                    M9001
                    ;TYPE:Custom
                    undefined 1 Reply Last reply 9 Jan 2024, 15:02 Reply Quote 0
                    • undefined
                      chrishamm administrators @oozeBot
                      last edited by 9 Jan 2024, 15:02

                      @oozeBot It might be that your last true G1 Znnn command is too far in the file and DSF just gives up before it is reached - this can happen if your last layer is really long. In that case I suppose you could work-around it by inserting a custom G1 Z{layer_z} code right at the end using PrusaSlicer. That new G1 Z move should then be ignored by RRF but it should be picked up by DSF for the object height detection.

                      I haven't tested it yet but it should work.

                      Duet software engineer

                      undefined 2 Replies Last reply 9 Jan 2024, 15:24 Reply Quote 0
                      • undefined
                        oozeBot @chrishamm
                        last edited by 9 Jan 2024, 15:24

                        @chrishamm This makes sense and is likely the culprit.. The last layer change on this file is at line 2013568. The last line in the file is 2034064. That's a bit over 20000 lines and I bet it is scanning way less than that.

                        undefined 1 Reply Last reply 10 Jan 2024, 00:54 Reply Quote 0
                        • undefined
                          oozeBot @chrishamm
                          last edited by 9 Jan 2024, 16:02

                          @chrishamm Placing a G1 Zxx.xx at the very end of the file fixes the issue. While I understand this won't affect the machine's travel, I'm not thrilled with this being the solution.

                          Perhaps a marker could be added similar to NUM_LAYERS which, when present, would populate the Object Height without further scanning of the file?

                          1 Reply Last reply Reply Quote 0
                          • undefined
                            oozeBot @oozeBot
                            last edited by oozeBot 1 Oct 2024, 19:58 10 Jan 2024, 00:54

                            @chrishamm - thanks for the nudge on where this is parsed. We were on the fence about building custom versions of DSF (we wanted to keep these stock), but for now, we went ahead and rebuilt for publishing on our package server.

                            What we did was added a new custom parameter that can be added into the End G-Code section:

                            ;TYPE:Custom
                            ; OBJ_HEIGHT: 24.23

                            which results in:
                            c118bc4d-2c31-450d-871f-8c9ebfe52555-image.png

                            undefined 1 Reply Last reply 11 Jan 2024, 09:16 Reply Quote 0
                            • undefined oozeBot has marked this topic as solved 10 Jan 2024, 19:59
                            • undefined
                              chrishamm administrators @oozeBot
                              last edited by 11 Jan 2024, 09:16

                              @oozeBot Looks good, feel free to send me a PR for this!

                              Duet software engineer

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