prusa3d / PrusaSlicer-settings

Prusa3D specific settings for the Slic3r Prusa Edition
GNU Affero General Public License v3.0
357 stars 203 forks source link

Add the HSP1-I printer profiles #246

Closed curieos closed 4 months ago

curieos commented 5 months ago

This is an IDEX machine. I split duplicator and mirror mode into their own printer model since they use a different bed model and texture. Please let me know if there's a way to do this without creating a separate printer model, I know this isn't desired.

rtyr commented 4 months ago

The filament preset"Polymaker PolyMide PA6-CF @HSP1" and "Essentium HTN-CF25 @HSP1" contains the following incorrect keys: enable_dynamic_overhang_speeds, overhang_speed_0, overhang_speed_1, overhang_speed_2, overhang_speed_3. Those keys belongs to print settings, not filament settings (possibly interchanged with dynamic fan speeds by mistake).

curieos commented 4 months ago

Thanks for catching that, just fixed it.

I've also been having inconsistent results with my gcode substitution to ensure the 2nd layer build plate temperature is set to the higher temp. PrusaSlicer appears to default to the lowest temperature, which isn't the behavior we want. I originally just searched for a line with the M140 S(d+) ; (.+), but the line would sneak by sometimes, and since it comes after the layer change gcode, my code would do nothing. I switched it to what it is now, but it still occasionally sneaks past. My test slice from yesterday worked, but an actual job I did later set the build plate to 40C on the 2nd layer.

I fixed this just now for dedicated support materials by removing the setting for the 2nd layer temperature, but with PLA and PETG I expect this to be an issue.

rtyr commented 4 months ago

I believe there is no specific rule about different temperatures, slicer will likely just choose the first one used.

But I think you should be able to choose the higher bed temperature without using g-code substitution.

For example like this: M140 S{((first_layer_bed_temperature[0] > first_layer_bed_temperature[1]) ? first_layer_bed_temperature[0] : (first_layer_bed_temperature[0] < first_layer_bed_temperature[1]) ? first_layer_bed_temperature[1] : first_layer_bed_temperature[initial_tool])} ; bed temperature

curieos commented 4 months ago

Where would that line go? After layer change gcode comes before the PrusaSlicer generated code, which is why I needed to to use substitution. I was just substituting it with nothing and setting the temperature in the layer change code based on the layer.

rtyr commented 4 months ago

Sorry I misread your comment, I haven't noticed you are talking about second layer.

rtyr commented 4 months ago

Currently we only add a notification that temperatures differs significantly. The idea is that user will adjust temperature in filament settings. It is not ideal, but it is also quite problematic to pick "the correct" temperature automatically.

curieos commented 4 months ago

Yeah, I already have the logic we want for picking the first layer temperature. The problem is PrusaSlicer seems to pick the 2nd layer temperature based on what material it's printing at that time, and usually that's the material with the lower temperature. The gcode substitution I'm using removes the generated code, but it's inconsistent. Sometimes it works, sometimes it misses it, and I haven't determined the reasoning.