mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-17 05:45:55 +08:00
perimeter_round_corners: keep clipper::mitter for first perimeter
supermerill/superslicer#2046
This commit is contained in:
parent
b9e384519d
commit
773e059c39
@ -492,15 +492,15 @@ void PerimeterGenerator::process()
|
|||||||
next_onion = offset_ex(
|
next_onion = offset_ex(
|
||||||
last,
|
last,
|
||||||
-(float)(ext_perimeter_width / 2),
|
-(float)(ext_perimeter_width / 2),
|
||||||
(round_peri ? ClipperLib::JoinType::jtRound : ClipperLib::JoinType::jtMiter),
|
ClipperLib::JoinType::jtMiter,
|
||||||
(round_peri ? min_round_spacing : 3));
|
3);
|
||||||
else
|
else
|
||||||
next_onion = offset2_ex(
|
next_onion = offset2_ex(
|
||||||
last,
|
last,
|
||||||
-(float)(ext_perimeter_width / 2 + ext_min_spacing / 2 - 1),
|
-(float)(ext_perimeter_width / 2 + ext_min_spacing / 2 - 1),
|
||||||
+(float)(ext_min_spacing / 2 - 1),
|
+(float)(ext_min_spacing / 2 - 1),
|
||||||
(round_peri ? ClipperLib::JoinType::jtRound : ClipperLib::JoinType::jtMiter),
|
ClipperLib::JoinType::jtMiter,
|
||||||
(round_peri ? min_round_spacing : 3));
|
3);
|
||||||
|
|
||||||
// look for thin walls
|
// look for thin walls
|
||||||
if (this->config->thin_walls) {
|
if (this->config->thin_walls) {
|
||||||
@ -569,20 +569,20 @@ void PerimeterGenerator::process()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// use perimeters to extrude area that can't be printed by thin walls
|
// use perimeters to extrude area that can't be printed by thin walls
|
||||||
// it's a bit like re-add thin area in to perimeter area.
|
// it's a bit like re-add thin area into perimeter area.
|
||||||
// it can over-extrude a bit, but it's for a better good.
|
// it can over-extrude a bit, but it's for a better good.
|
||||||
{
|
{
|
||||||
if (thin_perimeter)
|
if (thin_perimeter)
|
||||||
next_onion = union_ex(next_onion, offset_ex(diff_ex(last, thins, true),
|
next_onion = union_ex(next_onion, offset_ex(diff_ex(last, thins, true),
|
||||||
-(float)(ext_perimeter_width / 2),
|
-(float)(ext_perimeter_width / 2),
|
||||||
(round_peri ? ClipperLib::JoinType::jtRound : ClipperLib::JoinType::jtMiter),
|
ClipperLib::JoinType::jtMiter,
|
||||||
(round_peri ? min_round_spacing : 3)));
|
3));
|
||||||
else
|
else
|
||||||
next_onion = union_ex(next_onion, offset2_ex(diff_ex(last, thins, true),
|
next_onion = union_ex(next_onion, offset2_ex(diff_ex(last, thins, true),
|
||||||
-(float)((ext_perimeter_width / 2) + (ext_min_spacing / 4)),
|
-(float)((ext_perimeter_width / 2) + (ext_min_spacing / 4)),
|
||||||
(float)(ext_min_spacing / 4),
|
(float)(ext_min_spacing / 4),
|
||||||
(round_peri ? ClipperLib::JoinType::jtRound : ClipperLib::JoinType::jtMiter),
|
ClipperLib::JoinType::jtMiter,
|
||||||
(round_peri ? min_round_spacing : 3)));
|
3));
|
||||||
|
|
||||||
next_onion = intersection_ex(next_onion, last);
|
next_onion = intersection_ex(next_onion, last);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user