supermerill / SuperSlicer

G-code generator for 3D printers (Prusa, Voron, Creality, etc.)
4.12k stars 519 forks source link

incorrect Spacing/Width #1196

Closed conan104 closed 3 years ago

conan104 commented 3 years ago

Describe the bug

the bug occurs on the xxxx_spacing parameters when there are at least 2 extruders of different sizes (e.g. 0.4mm and 0.8mm)

To Reproduce printer settings -> Extruder N ° -> set nozzle diameter. EXTRUDER 1 = 0.4mm EXTRUDER 2 = 0.8mm Extruder n = 0.4 mm

I select extruder 1 but I get xxxx_spacing will be ~ 0.8 .... mm ?!?!

>> Project File << it always occurs

Expected behavior A clear and concise description of what you expected to happen. xxxx_spacing = ~ diameter of the selected extruder .

Desktop (please complete the following information):

neophyl commented 3 years ago

Isn't this the usual user/programmer confusion ? Extruders are called in the titles Extruder 1, Extruder 2 etc but for the actual index when used in an array the first one is position 0, So Extruder 1 is actually 0, Extruder 2 =1 and so on.

May be wrong but that's the way I think it works.

supermerill commented 3 years ago

Can't reproduce, can you link your project file and where is the wrong number?

conan104 commented 3 years ago

0 -> 1, is the first thing I thought, but it wasn't like that. the problem remains. Schermata del 2021-05-28 14-05-59 Forma-Cubo.zip

supermerill commented 3 years ago

???

you use the nozzle 3 which is 0.4mm, and so the width & spacing are computed from that value. If you switch the used filament to the second, the width is correctly updated.

did you read the tool-tips? i think you misunderstood what the field do.

conan104 commented 3 years ago

I apologize but I don't understand how it works.

I thought that by selecting extruder N°3 (0.4mm) and default width = 0 (automatic) the spacing value would automatically change to 0.40709999. but when I wanted to use extruder N°2 (0.8mm) and default width = 0 the spacing value would have been 0.85710001,

what should i do to know the spacing calculated by superslicer at the change of toolls? My machine has an automatic tools changer (4 tools).

Thanks for your help

supermerill commented 3 years ago

I thought that by selecting extruder N°3 (0.4mm) and default width = 0 (automatic) the spacing value would automatically change to 0.40709999. but when I wanted to use extruder N°2 (0.8mm) and default width = 0 the spacing value would have been 0.85710001,

that's exactly what I see with your project. I don't see any problem

conan104 commented 3 years ago

ok, but it doesn't work like that to me, it seems that the spacing calculation continues to take as a reference the extruder with the largest nozzle (0.8) and there is no way to do it for the others (0.4).

what am I doing wrong?

neophyl commented 3 years ago

I'm getting similar weirdness as Conan. When I initially opened the project the spacings shown were always those of the 0.4mm nozzle. Changing the part to use the 0.8mm nozzle just showed the same spacing. However if I edited the one of the width fields like perimeters from 0 to 1 to get approx 0.9 spacing and then edited it back again to 0 then it changed to the spacing for the 0.8mm nozzle. It did that with all the fields.

However once I did that to a field I can no longer get it to show the spacing for the 0.4mm nozzles, even if I try and reverse the steps, ie make the part use a 0.4 extruder ans then edit, it still stays on the 0.8. So there definitely something weird going on.

Edit - it looks like it slices with the correct width though.

supermerill commented 3 years ago

I think you're too focus on the "inactive / calculated" side. It can't display all your nozzles at the same time.