The triangle-ray intersection function used a hard coded epsilon,
which did not work for triangle meshes, that were either too small
or too large. Newly the epsilon may be provided to the AABBTreeIndirect
search functions externally and IndexedMesh calculates a suitable
epsilon on demand from an average triangle mesh edge length.
6b03b66167
Renamed the new "printhost_ignore_check" option to "printhost_ssl_ignore_revoke"
Improved the Physical Printers dialog in regard to the new option checkbox
(added tooltip to the checkbox, moved it to the end of options).
Disabled the host_xxx options at the command line interface, they no
more work after these options were separated to Physical Printers profiles.
Little refactoring of Http.cpp/hpp, OctoPrint.cpp/hpp
Private local variables prefixed with m_, some renaming for clarity.
list of modified options.
Optimization of DynamicConfig::equals(), ::diff(), ::equal()
to iterate over the two compared std::map trees instead of
first generating a list of keys and then searching for each key
in the respective map.
Optimization of PresetCollection::current_is_dirty() and ::saved_is_dirty()
to call DynamicConfig::equals() instead of ::diff().
of a printer from MMU to non-MMU (when number of extruders changes).
Also slightly optimized in case a MMU-painted object is sliced in
single extruder mode.
PresetComboBoxes: Auto selection of printer/material preset from the new added presets in ConfigWizard
+ Check unsaved changes if ConfigWizard is running from the PesetComboBoxes
1) Slic3r::RuntimeError was replaced with ConfigurationError,
all exceptions thrown by the configuration layer are derived
from ConfigurationError.
2) When parsing configuration files, ConfigurationError is catched and
rethrown extended with the file name being parsed.
1) Starting with this commit, configuration block exported into G-code
is delimited by "; prusaslicer_config = begin" and "; prusaslicer_config = end".
These delimiters look like any other key / value configuration pairs
on purpose to be compatible with older PrusaSlicer config parsing from G-code.
2) Config parser from G-code newly searches for "; generated by ..."
comment over the complete G-code, thus it is compatible with various
post processing scripts extending the G-code at the start.
3) Config parser from G-code parses PrusaSlicer version from
the "; generated by PrusaSlicer ...." header and if the G-code was
generated by PrusaSlicer 2.4.0-alpha0 and newer, it expects that
the G-code already contains the "; prusaslicer_config = begin / end"
tags and it relies on these tags to extract configuration.
4) A new simple and robust parser was written for reading project configuration
from 3MF / AMF, while a heuristic parser to read config from G-code located
at the end of the G-code file was used before.
- The optional output_name file might contain the .pp suffix.
- In case the file contains just filename, prepend it with the
output dir. We don't want to save to current workdir.
1) New environment variable SLIC3R_PP_HOST contains one of
"File", "PrusaLink", "Repetier", "SL1Host", "OctoPrint", "FlashAir", "Duet", "AstroBox" ...
2) New environment variable SLIC3R_PP_OUTPUT_NAME contains the name
of the G-code file including path (for SLIC3R_PP_HOST == "File")
or a name of the file after upload to the host (PrusaLink, Octoprint ...)
3) The post-processing script may suggest a new output file name
(likely based on SLIC3R_PP_OUTPUT_NAME) by saving it as a single line
into a new "output name" temp file. The "output name" file name is
created by suffixing the input G-code file name with ".output_name".
Please note that the G-code viewer visualizes G-code before post-processing.
Fixes Broken PostProcessing when script changes out-filename #6042
Make is_converted_from_meters / is_converted_from_inches exclusive-or.
Maybe it would be better to make a single enum from the two booleans,
if they are exclusive-or?
It is now possible to use e.g. --ensure-on-bed=0 for bools (meaning the same as --no-ensure-on-bed).
Using --no- prefix on non-boolean is an error (--no-ensure-on-bed=1)
Providing a value for --no- prefixed bool is an error (--no-loglevel 5)
'dont-ensure-on-bed' (which allows to override). This was the original
behaviour in Slic3r and Sli3rPE, probably broken long ago when CLI
was ported from Perl.
Also, --scale-to-fit should now work again (#5772)
Filtering of unprintable regions in multi-material segmentation depends on if gap-fill is enabled or not. So sliced object is invalidated when gap-fill was enabled/disabled by option "gap_fill_enabled" or by changing "gap_fill_speed" to force recomputation of the multi-material segmentation.