From e0192ae437029004decdecc59c3a0e5af83b18df Mon Sep 17 00:00:00 2001 From: Ian Bassi Date: Mon, 26 Jan 2026 09:51:00 -0300 Subject: [PATCH 1/3] Update documentation links in hints.ini (#12075) Replaced GitHub wiki URLs with new orcaslicer.com documentation links for several hints to provide more accurate and up-to-date references. Co-authored-by: yw4z --- resources/data/hints.ini | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/data/hints.ini b/resources/data/hints.ini index 27e6da9e24..ff3c8e158a 100644 --- a/resources/data/hints.ini +++ b/resources/data/hints.ini @@ -64,26 +64,26 @@ [hint:Precise wall] text = Precise wall\nDid you know that turning on precise wall can improve precision and layer consistency? -documentation_link = https://github.com/OrcaSlicer/OrcaSlicer/wiki/quality_settings_precision +documentation_link = https://www.orcaslicer.com/wiki/quality_settings_precision#precise-wall [hint:Sandwich mode] text = Sandwich mode\nDid you know that you can use sandwich mode (inner-outer-inner) to improve precision and layer consistency if your model doesn't have very steep overhangs? [hint:Chamber temperature] text = Chamber temperature\nDid you know that OrcaSlicer supports chamber temperature? -documentation_link = https://github.com/OrcaSlicer/OrcaSlicer/wiki/Chamber-temperature +documentation_link = https://www.orcaslicer.com/wiki/material_temperatures#print-chamber-temperature [hint:Calibration] text = Calibration\nDid you know that calibrating your printer can do wonders? Check out our beloved calibration solution in OrcaSlicer. -documentation_link = https://github.com/OrcaSlicer/OrcaSlicer/wiki/Calibration +documentation_link = https://www.orcaslicer.com/wiki/calibration [hint:Auxiliary fan] text = Auxiliary fan\nDid you know that OrcaSlicer supports Auxiliary part cooling fan? -documentation_link = https://github.com/OrcaSlicer/OrcaSlicer/wiki/Auxiliary-fan +documentation_link = https://www.orcaslicer.com/wiki/material_cooling#auxiliary-part-cooling-fan [hint:Air filtration] text = Air filtration/Exhaust Fan\nDid you know that OrcaSlicer can support Air filtration/Exhaust Fan? -documentation_link = https://github.com/OrcaSlicer/OrcaSlicer/wiki/air-filtration +documentation_link = https://www.orcaslicer.com/wiki/material_cooling#activate-air-filtration [hint:G-code window] text = G-code window\nYou can turn on/off the G-code window by pressing the C key. From a254bec6b2e9a135966aa542676abe1f55f77ff6 Mon Sep 17 00:00:00 2001 From: Vovodroid Date: Mon, 26 Jan 2026 17:07:44 +0200 Subject: [PATCH 2/3] Check instances for collision (#11866) --- src/libslic3r/Print.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 56bff00055..b7ab12ee0d 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1194,7 +1194,7 @@ StringObjectException Print::validate(StringObjectException *warning, Polygons* } } - if (m_config.print_sequence == PrintSequence::ByObject && m_objects.size() > 1) { + if (m_config.print_sequence == PrintSequence::ByObject && (m_objects.size() > 1 || m_objects[0]->instances().size() > 1)) { if (m_config.timelapse_type == TimelapseType::tlSmooth) return {L("Smooth mode of timelapse is not supported when \"by object\" sequence is enabled.")}; From b9ada2542a7d1b26b7b36323dc38b747dd18c3d4 Mon Sep 17 00:00:00 2001 From: mrmees <38006194+mrmees@users.noreply.github.com> Date: Mon, 26 Jan 2026 17:04:21 -0600 Subject: [PATCH 3/3] fix: adaptive layer height profile uses uncompensated Z height (#12080) layer_height_profile_adaptive() was using object_print_z_height() (shrinkage-compensated) to bound the profile, but update_layer_height_profile() validates against object_print_z_uncompensated_max. When shrinkage compensation is active, the mismatch causes the adaptive profile to be silently cleared every frame and replaced with flat layers. Use object_print_z_uncompensated_height() instead, matching both the validator and the existing layer_height_profile_from_ranges() implementation which already uses the uncompensated value. Co-authored-by: Claude Opus 4.5 --- src/libslic3r/Slicing.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/Slicing.cpp b/src/libslic3r/Slicing.cpp index f3499b7d36..aa24b1074d 100644 --- a/src/libslic3r/Slicing.cpp +++ b/src/libslic3r/Slicing.cpp @@ -260,7 +260,7 @@ std::vector layer_height_profile_adaptive(const SlicingParameters& slici // last facet visited by the as.next_layer_height() function, where the facets are sorted by their increasing Z span. size_t current_facet = 0; // loop until we have at least one layer and the max slice_z reaches the object height - while (print_z + EPSILON < slicing_params.object_print_z_height()) { + while (print_z + EPSILON < slicing_params.object_print_z_uncompensated_height()) { float height = slicing_params.max_layer_height; // Slic3r::debugf "\n Slice layer: %d\n", $id; // determine next layer height @@ -331,10 +331,10 @@ std::vector layer_height_profile_adaptive(const SlicingParameters& slici print_z += height; } - double z_gap = slicing_params.object_print_z_height() - *(layer_height_profile.end() - 2); + double z_gap = slicing_params.object_print_z_uncompensated_height() - *(layer_height_profile.end() - 2); if (z_gap > 0.0) { - layer_height_profile.push_back(slicing_params.object_print_z_height()); + layer_height_profile.push_back(slicing_params.object_print_z_uncompensated_height()); layer_height_profile.push_back(std::clamp(z_gap, slicing_params.min_layer_height, slicing_params.max_layer_height)); }