mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-19 19:33:47 +00:00
SPE-1837: Fixed issue when perimeters weren't generated with Arachne.
Cherry-picked from prusa3d/PrusaSlicer@6df4891e6c Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
This commit is contained in:
@@ -30,7 +30,12 @@ BeadingStrategyPtr BeadingStrategyFactory::makeStrategy(const coord_t preferred_
|
|||||||
const int inward_distributed_center_wall_count,
|
const int inward_distributed_center_wall_count,
|
||||||
const double minimum_variable_line_ratio)
|
const double minimum_variable_line_ratio)
|
||||||
{
|
{
|
||||||
BeadingStrategyPtr ret = std::make_unique<DistributedBeadingStrategy>(preferred_bead_width_inner, preferred_transition_length, transitioning_angle, wall_split_middle_threshold, wall_add_middle_threshold, inward_distributed_center_wall_count);
|
// Handle a special case when there is just one external perimeter.
|
||||||
|
// Because big differences in bead width for inner and other perimeters cause issues with current beading strategies.
|
||||||
|
const coord_t optimal_width = max_bead_count <= 2 ? preferred_bead_width_outer : preferred_bead_width_inner;
|
||||||
|
BeadingStrategyPtr ret = std::make_unique<DistributedBeadingStrategy>(optimal_width, preferred_transition_length, transitioning_angle,
|
||||||
|
wall_split_middle_threshold, wall_add_middle_threshold,
|
||||||
|
inward_distributed_center_wall_count);
|
||||||
|
|
||||||
BOOST_LOG_TRIVIAL(trace) << "Applying the Redistribute meta-strategy with outer-wall width = " << preferred_bead_width_outer << ", inner-wall width = " << preferred_bead_width_inner << ".";
|
BOOST_LOG_TRIVIAL(trace) << "Applying the Redistribute meta-strategy with outer-wall width = " << preferred_bead_width_outer << ", inner-wall width = " << preferred_bead_width_inner << ".";
|
||||||
ret = std::make_unique<RedistributeBeadingStrategy>(preferred_bead_width_outer, minimum_variable_line_ratio, std::move(ret));
|
ret = std::make_unique<RedistributeBeadingStrategy>(preferred_bead_width_outer, minimum_variable_line_ratio, std::move(ret));
|
||||||
|
|||||||
Reference in New Issue
Block a user