mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-07-17 02:31:49 +08:00
#197 fix random seam : forgot that the '&' operator has a low priority.
This commit is contained in:
parent
66aaad2489
commit
e28213b6eb
@ -39,7 +39,7 @@ enum ExtrusionRole : uint8_t {
|
|||||||
|
|
||||||
// Special flags describing loop
|
// Special flags describing loop
|
||||||
enum ExtrusionLoopRole : uint16_t {
|
enum ExtrusionLoopRole : uint16_t {
|
||||||
elrDefault = 0,
|
elrDefault = 1 << 0, //1
|
||||||
// doesn't contains more contour: it's the most internal one
|
// doesn't contains more contour: it's the most internal one
|
||||||
elrInternal = 1 << 1, //2
|
elrInternal = 1 << 1, //2
|
||||||
elrSkirt = 1 << 2, //4
|
elrSkirt = 1 << 2, //4
|
||||||
|
@ -2664,7 +2664,7 @@ std::string GCode::extrude_loop_vase(const ExtrusionLoop &original_loop, const s
|
|||||||
|
|
||||||
// extrude all loops ccw
|
// extrude all loops ccw
|
||||||
//no! this was decided in perimeter_generator
|
//no! this was decided in perimeter_generator
|
||||||
bool is_hole_loop = loop.loop_role() & ExtrusionLoopRole::elrHole != 0;// loop.make_counter_clockwise();
|
bool is_hole_loop = (loop.loop_role() & ExtrusionLoopRole::elrHole) != 0;// loop.make_counter_clockwise();
|
||||||
bool reverse_turn = loop.polygon().is_clockwise() ^ is_hole_loop;
|
bool reverse_turn = loop.polygon().is_clockwise() ^ is_hole_loop;
|
||||||
|
|
||||||
split_at_seam_pos(loop, lower_layer_edge_grid);
|
split_at_seam_pos(loop, lower_layer_edge_grid);
|
||||||
@ -3055,7 +3055,7 @@ void GCode::split_at_seam_pos(ExtrusionLoop &loop, std::unique_ptr<EdgeGrid::Gri
|
|||||||
loop.split_at(polygon.points[idx_min], true);
|
loop.split_at(polygon.points[idx_min], true);
|
||||||
|
|
||||||
} else if (seam_position == spRandom) {
|
} else if (seam_position == spRandom) {
|
||||||
if (loop.loop_role() & elrInternal == 0) {
|
if ( (loop.loop_role() & elrInternal) == 0) {
|
||||||
// This loop does not contain any other (not-hole) loop. Set a random position.
|
// This loop does not contain any other (not-hole) loop. Set a random position.
|
||||||
// The other loops will get a seam close to the random point chosen
|
// The other loops will get a seam close to the random point chosen
|
||||||
// on the inner most contour.
|
// on the inner most contour.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user