mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-15 02:37:51 -06:00

ConcentricGapFill pattern was used for internal narrow solid infill. Use arachne engine instead to remove gap fill inside the pattern and improve the extrusion path Signed-off-by: salt.wei <salt.wei@bambulab.com> Change-Id: I758d7c72eb71cc37026b7cebf746cc345014c3f5 (cherry picked from commit 0b6bacd21a091afc13d7b36a69e5b10f155bc6f8)
40 lines
1.4 KiB
C++
40 lines
1.4 KiB
C++
// Copyright (c) 2022 Ultimaker B.V.
|
|
// CuraEngine is released under the terms of the AGPLv3 or higher.
|
|
|
|
#ifndef DISTRIBUTED_BEADING_STRATEGY_H
|
|
#define DISTRIBUTED_BEADING_STRATEGY_H
|
|
|
|
#include "BeadingStrategy.hpp"
|
|
|
|
namespace Slic3r::Arachne
|
|
{
|
|
|
|
/*!
|
|
* This beading strategy chooses a wall count that would make the line width
|
|
* deviate the least from the optimal line width, and then distributes the lines
|
|
* evenly among the thickness available.
|
|
*/
|
|
class DistributedBeadingStrategy : public BeadingStrategy
|
|
{
|
|
protected:
|
|
float one_over_distribution_radius_squared; // (1 / distribution_radius)^2
|
|
|
|
public:
|
|
/*!
|
|
* \param distribution_radius the radius (in number of beads) over which to distribute the discrepancy between the feature size and the optimal thickness
|
|
*/
|
|
DistributedBeadingStrategy(coord_t optimal_width,
|
|
coord_t default_transition_length,
|
|
double transitioning_angle,
|
|
double wall_split_middle_threshold,
|
|
double wall_add_middle_threshold,
|
|
int distribution_radius);
|
|
|
|
~DistributedBeadingStrategy() override = default;
|
|
|
|
Beading compute(coord_t thickness, coord_t bead_count) const override;
|
|
coord_t getOptimalBeadCount(coord_t thickness) const override;
|
|
};
|
|
|
|
} // namespace Slic3r::Arachne
|
|
#endif // DISTRIBUTED_BEADING_STRATEGY_H
|