There is a mysterious issue with GCode annotations printed with decimal
commas instead of points. tbb threads should be set to "C" locales when started,
either another thread is spawned by tbb, or someone switches the thread locales
and leaves it in the pool.
the crashing cases were:
- skirts=0 + dsEnabled
- skirt_height=0 + dsLimited
Also, when ooze_prevention is enabled with multiple extruders and skirt is disabled, 2.4.0 does not generate infinite skirt.
Version 2.3.3 does, ooze prevention overrides the disabled skirt. This commit reinstates the old behaviour.
The issues were introduced in b466f18.
+ DiffDialog: Fixed get_string_value() for "gcode_substitution"
+ some code refactoring :
For PresetCollection added is_independent_from_extruder_number_option(opt_key)
to check if option is from the list of options with vector variable, which is independent from number of extruders
Previously, the minimum contour width was chosen too conservative and, on some thin objects, only allowed minimal (or non) offset. This could result in travels being planned along the outer perimeter.
Now, the minimum contour width is chosen much smaller at the start and tested if the variable offset wasn't failed (the outer contour broke up into more parts, more or fewer holes, etc.).
If any problem is detected, the variable offset is recalculated with a larger minimum contour width.
+ added crash detection for the cases, when PrusaSlicer is started from secondary display
Possible fix for part of:
#2939 - PrusaSlic3r freezing at startup (Win 10)
and
#5573 - PrusaSlicer won't launch on secondary monitor. Nahimic?
1) "initial_filament_type", "printing_filament_types" - really useful
for multi-material prints
the two other are not so useful, they may become useful once
the output file name template will support not yet defined
vector variables:
2) "initial_tool", "initial_extruder" - zero based index of first extruder
3) "num_printing_extruders" - number of printing extruders.
Fixes Filename incorrect when exporting G-Code with MMU. Always refers filament type in extruder 1 #5300
Fixes Export Filename nicht richtig #7673
Fixes wrong filename - always Filament in from the first extruder #7684
- renamed some variables so the names are not misleading
- improved readability a bit
- disabled silent mode for RRF (it was apparently enabled by mistake)
- set default value of machine_limits_usage to TimeEstimateOnly
Some code refactoring:
* use GUI_App::open_preferences() on all places where it's needed
* Preferences Dialog is an attribute of a ManeFrame class and created just ones during the MainFrame creation now.
* Created class Highlighter. Use it in Preferences and Tab
Caused by changed behaviour of offset/expand functions when called on CW polygons (holes) after 7ff76d0768. When it is called expand on CW polygons (holes), they shrunk instead of expanded.
Cache directory is newly deleted before it is imported from the newer
config location.
Linux specific: When asking for certificate directory, perform import
of configs first.
Using a float instead of a double caused accumulation of error in the calculated distance, which in rare cases triggered an assert in get_shortest_direction().
Fuzzy skin will be disabled for regions with
with fuzzy_skin_point_dist < 0.01 or fuzzy_skin_thickness.value < 0.001
as the first one creates excessive long extrusions while the second
one does not modify the perimeters.
Support for oneTBB from oneAPI, where Intel reworked and deprecated
some interfaces.
Implements some of TBB universal fix (2020/2021 fixes) #7332
This one adds TBB_HAS_GLOBAL_CONTROL for the up to date oneTBB.
With solid_infill_every_layers = 1 the new solid layer should be solid
infill not solid bridging infill. Once the layer is correctly classified
as solid with solid_infill_every_layers = 1, everything works as expected.
For this particular model, ClipperLib numerical instability causes
one of the internal surfaces to turn into bridging surfaces
on reslicing. The issue was fixed by reverting to untyped slices if possible.
When propagating overhangs to be supported, the regions are newly
properly merged and regularized.
Fix of Stuck at "preparing infill" with "only infill where needed" enabled 1.41.2 #1696
"Only infill where needed" makes slicer crash for some models #6385
[BUG] Slicing stuck for 14h now, 0.8 NZL Ender 5+ Gyroid infill only where need
first_layer_height cannot be changed to ConfigOptionFloat, that would break loading of old 3MFs.
The relative values from 3MFs should already be converted to absolute in `Preset::normalize`, what is missing is the UI check.
+ Code refactoring for OptionsGroup::create_single_option_line():
Don't clear label value in an Option. This value is used in Field::get_value_by_opt_type() to show error "%s doesn't support percentage".
=> At functions OG_CustomCtrl::CtrlLine::render() and OG_CustomCtrl::CtrlLine::get_pos() added check if current line has more than one option.
=> Draw option's label only when line has several options.
fixes#7341
CGAL upstream CMake config will lock in the major version if installed as a distro package and will not provide any version info if compiled and installed from upstream. As of this commit, PrusaSlicer can be built with CGAL 4.13.2, and 5.0 but there is no universal way to specify the minimum version that would work with static dependencies and linux packages.
sorry #4912
1) Areas inside modifier meshes were ironed multiple times.
2) Ironing areas were not properly merged.
Layer::lslices were not always properly merged with modifier meshes
applied, which lead to the ironed surface being split and not fully
ironed, as there were artificial gaps created between regions as if
they were covered by perimeters (we don't iron over perimeters).
Fixes Fan starts at first layer, even though disabled for first layer. #7232
This is a regression due to cooling refactoring, which cooled
support layers independently from object layers. The bug here was that
all the raft layers were cooled together with the first object layer.
Previously, the Cursor (Sphere or Circle) was repeatedly applied between two mouse positions, creating brushstrokes with ripples on the edges between those mouse positions.
Now, a single capsule (3D or 2D) is applied between those mouse positions, which creates brushstrokes without these ripples.
This was a regression of 2.4.0-alpha1 wrt. 2.3.3, where handling of
multiple volumes was refactored.
As a result, handling multi-part objects with clip_multipart_objects
disabled was broken.
With clip_multipart_objects disabled, the multi-part objects no more
clip one another and it is sole responsibility of the user to handle
overlaps.
Fixes "add part" error - PrusaSlicer 2.4.0 b2 #7366
This is a regression wrt. to PrusaSlicer 2.3.3 due to refactoring
of the slicing process for better multi material support
and to support negative volumes.
see pull request #7323 for discussion what went wrong.
The original issue
Fix of Print::apply() creating hierarchy of regions for complex scenarios:
Unnecessary regions were created for a modifier over a volume or a modifier,
where the modifier did not modify any of its parent's properties.
This lead to an explosion of regions for this particular 3MF.
Fixes Non Responsive & Memory Leak when opening or changing this 3MF project #7220
After a0ee41770d
quite often regions were not re-regenerated. This shoul now be fixed
together with the original slowness & memory leak issue.
(Fixed missing sinking property in objects list for multipart objects
with a part completely below the printbed):
It was not possible to slice an object with some part completely below
the print bed. The BuildVolume collision check newly supports
a "completely below print bed" return status,
Model evaluates this "completely below print bed status" allowing
objects with some volumes completely below the print bed to print.