Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Per-layer preview inspection of vase mode model skips all but first and top solid bottom layers #4440

Closed
fiveangle opened this issue Jun 25, 2020 · 18 comments

Comments

@fiveangle
Copy link

  • PS 2.2.0+
  • MacOS 10.15.5
  • MacBookPro11,3 w/dual graphics GForce GT 750 + Intel Iris Pro
  • MK3 3.9.0
  • Slice vase mode model with large number of solid bottom layers
  • Inspect per-layer in Preview mode starting from first layer moving up
  • Observe rendering skip all middle layers and go directly to the last (top) solid bottom layer immediately prior to start of single-perimeter vase mode

Video showing behavior:
https://youtu.be/hZi1Vmk_l20

3mf example:
Draining_eToothbrush_holder.3mf.zip

@bubnikv
Copy link
Collaborator

bubnikv commented Dec 9, 2020

I am not sure I understand the problem. Would you please retest with PrusaSlicer 2.3.0-beta2 and possibly with the beta3, which will fix some vase mode issues?

@fiveangle
Copy link
Author

fiveangle commented Dec 20, 2020

Same behavior (as shown in the video).

Unlike Simplify3D "Factory" files, it seems the PS 3MF files does not retain print settings (which begs the question of what the use of them is for ?) but instead simply saves the currently selected print profile. This means that one has to save the profile with that print's specific configuration in order to capture it. I was not aware of this, so I apologize for that.

So, complete repro steps are:

  • Select built-in 0.3mm preset defaults
  • Right click build plate and add cylinder object
  • Set spiral vase mode
  • Set bottom layers to "10"
  • Slice
  • In preview window, click and hold "top" current layer selection widget and drag widget upward as slow as possible
  • Expected: Preview moves from first layer to next layer, and so on
  • Observe: Preview skips from bottom-most bottom solid layer to top-most bottom solid layer, then continues with correct preview of continuous spiral vase mode.

[Edit: Simplified repro steps to not need custom model or manufacturing file]

@fiveangle
Copy link
Author

fiveangle commented Dec 20, 2020

I did some more poking, and it seems the issue is the mouse scaling changes from some arbitrary number of layers when sliding the "current layer" handle widget when on the bottom solid layers, then scales to a "normal" scaling once the "current layer" is above the "bottom solid layers" section. This is still unexpected and confusing to the user since no mater how small a movement the mouse makes, the preview cannot go below a very large number of layer increments.

Work-around is to use "up"/"down" scroll button on multi-button mouse (if you have one) and preview correctly increments one layer at a time.

@bubnikv
Copy link
Collaborator

bubnikv commented Jan 5, 2021 via email

@fiveangle
Copy link
Author

2.3.0-RC2 layer viewer shows no change from 2.2.0... still jumps from preview of first solid bottom layer to topmost solid bottom layer, then increments as expected through each increment of the vasemode section above the solid layers.

Screenshot 2021-01-06 121018

@bubnikv
Copy link
Collaborator

bubnikv commented Jan 7, 2021 via email

@fiveangle
Copy link
Author

fiveangle commented Jan 7, 2021

Yes, I observe the same with just 3 layers. Is there a problem with the recipe I provided ?

Slice vase mode model with large number of solid bottom layers

Set bottom layers to "10"

[Update: simplified repro steps further]

@bubnikv
Copy link
Collaborator

bubnikv commented Jan 8, 2021

The layers are there, but they are not accessible when sliding the slider with mouse, the vertical resolution is not sufficient. However if you iterate over the layers using the cursor up / down keys or with the mouse scroll wheel, the layers are iterated correctly.

@fiveangle
Copy link
Author

fiveangle commented Jan 8, 2021

The layers are there, but they are not accessible when sliding the slider with mouse, the vertical resolution is not sufficient.

Your statement doesn't correlate with the observations. The issue is not due to a hardware limitation of mouse resolution or even the software slider resolution. If you re-read my report above, you'll see I mentioned that above the bottom solid layers section, the mouse movements iterate every layer with the slider, even though the mouse resolution hardware is unchanged.

To get it, perform these steps and the problem will be obvious:

  • Select built-in 0.3mm preset defaults
  • Right click build plate and add cylinder object
  • Change the cylinder diameter dimension from 25mm to 200mm
  • Set spiral vase mode
  • Set bottom layers to "100"
  • Slice
  • The change in layer slider scale between solid bottom layers and spiral vase section in the layer preview will be obvious.
  • Select 0.3mm preset defaults (accept to discard all changes)
  • Slice
  • Observe no "resolution is not sufficient" problem in the preview

@fiveangle
Copy link
Author

Bug still present in Prusaslicer 2.4.0

@fiveangle
Copy link
Author

fiveangle commented Dec 23, 2021

The layers are there, but they are not accessible when sliding the slider with mouse, the vertical resolution is not sufficient. However if y accessible when sliding the slider with mouse, the vertical resolution is not sufficient. However if you iterate over the layers using the cursor up / down keys or with the mouse scroll wheel, the layers are iterated correctly.

When slicing normally, the progression works as expected so it is not a vertical resolution limitation of the mouse. However, because every segment in the vase-mode section is essentially a psuedo "new layer" is there an upper limit to the maximum number of "layers" that the UI can scroll over ? If so, it could be that the non-vase-mode section at the bottom (the "Bottom Layers" number of layers) scrolls up many layers because the UI treats that Bottom Layers section just as it does each vase mode arc segment, so skips many layers based on the linear division of the maximum UI vertical scroll units (a term I just made up but that I assume must exist somewhere in the code ) ? That could explain the behavior. If so, would it be possible to treat the non-vase-mode layers at the bottom as normal layers then divide whatever is left over and use that value for the bulk scroll iterator for the vase mode section ?

For example, if maximum "vertical mouse scroll units" is 10,000, Bottom Layers is 10 and number of vase-mode-segments is 99,990, current behavior seems to be to make minimum vertical scroll units:

( Bottom Layers + vase mode segments ) / 10,000

which would be:

100,000 / 10,000 = 10

Which means any upward movement of the mouse from the base layer would result in layer 10 being the next rendered layer, then the next render is where the vase mode section starts so renders 10 additional arc segments of the vasemode section for next rendered frame, and so on...

What should happen is the Bottom Layers should be consumed from the "maximum vertical mouse scroll units" so every Bottom Layer gets displayed with every vertical mouse movement (or at least identical to how is done when not printing in vase mode), then when scrolling hits the vasemode section, the vasemode arc segments should be displayed in the jump of ("max vertical mouse scroll units" - Bottom Layers) / 10,000

Does this make any sense ? If someone could point me to the code where the UI scroll data is determined I might be able to explain in the exact code values rather than my confusing psuedocode.

@bubnikv
Copy link
Collaborator

bubnikv commented Dec 23, 2021

Unlike Simplify3D "Factory" files, it seems the PS 3MF files does not retain print settings

This is not true. PrusaSlicer's 3MFs contain the complete profiles.

@bubnikv
Copy link
Collaborator

bubnikv commented Dec 23, 2021 via email

@bubnikv
Copy link
Collaborator

bubnikv commented Dec 23, 2021 via email

@fiveangle
Copy link
Author

Unlike Simplify3D "Factory" files, it seems the PS 3MF files does not retain print settings

This is not true. PrusaSlicer's 3MFs contain the complete profiles.

I dug in this more long before and found that if the current profile is changed (unsaved), the changes are thrown away and only the saved profile is retained in the 3MF. I will retry with the current PS 2.4 to see if this behavior has been fixed/changed because I think it has. My previous observation was many PS iterations ago, but it definitely didn't work... I setup the print to show the problem, saved the 3MF, opened it, and the running (unsaved profile) settings were not retained.

If there are 5x more pseudo layers than there are screen pixels along the vertical scroll bar, only every 5th layer is selected by the mouse.

Yes, that is what I was alluding to above. Okay, so fixing the visual unexpected jumping of base layers when previewing vasemode prints will require segmenting the scroll wheel behavior so that the vase mode segments are treated with a different ratio than the standard layers. Understood.

@fiveangle
Copy link
Author

@bubnikv - is there a tag you have for lower priority things like "visual artifact" or something so this item can be prioritized accordingly, but not forgotten ?

@bubnikv
Copy link
Collaborator

bubnikv commented Jan 4, 2022

No, but I will ask @enricoturri1966 to put it on his list.

@bubnikv
Copy link
Collaborator

bubnikv commented Jan 27, 2022

Fixed with 7ed80e0

The fix will be released with PrusaSlicer 2.4.1-beta1.

@bubnikv bubnikv closed this as completed Jan 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants