mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-23 02:42:08 +00:00
more calibrations
precise wall etc Signed-off-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
@@ -636,7 +636,11 @@ void PerimeterGenerator::process_classic()
|
||||
m_ext_mm3_per_mm = this->ext_perimeter_flow.mm3_per_mm();
|
||||
coord_t ext_perimeter_width = this->ext_perimeter_flow.scaled_width();
|
||||
coord_t ext_perimeter_spacing = this->ext_perimeter_flow.scaled_spacing();
|
||||
coord_t ext_perimeter_spacing2 = scaled<coord_t>(0.5f * (this->ext_perimeter_flow.spacing() + this->perimeter_flow.spacing()));
|
||||
coord_t ext_perimeter_spacing2;
|
||||
if(config->precise_outer_wall)
|
||||
ext_perimeter_spacing2 = scaled<coord_t>(0.5f * (this->ext_perimeter_flow.width() + this->perimeter_flow.width()));
|
||||
else
|
||||
ext_perimeter_spacing2 = scaled<coord_t>(0.5f * (this->ext_perimeter_flow.spacing() + this->perimeter_flow.spacing()));
|
||||
|
||||
// overhang perimeters
|
||||
m_mm3_per_mm_overhang = this->overhang_flow.mm3_per_mm();
|
||||
@@ -954,16 +958,16 @@ void PerimeterGenerator::process_classic()
|
||||
// we continue inwards after having finished the brim
|
||||
// TODO: add test for perimeter order
|
||||
bool is_outer_wall_first =
|
||||
this->print_config->wall_infill_order == WallInfillOrder::OuterInnerInfill ||
|
||||
this->print_config->wall_infill_order == WallInfillOrder::InfillOuterInner ||
|
||||
this->print_config->wall_infill_order == WallInfillOrder::InnerOuterInnerInfill;
|
||||
this->config->wall_infill_order == WallInfillOrder::OuterInnerInfill ||
|
||||
this->config->wall_infill_order == WallInfillOrder::InfillOuterInner ||
|
||||
this->config->wall_infill_order == WallInfillOrder::InnerOuterInnerInfill;
|
||||
if (is_outer_wall_first ||
|
||||
//BBS: always print outer wall first when there indeed has brim.
|
||||
(this->layer_id == 0 &&
|
||||
this->object_config->brim_type == BrimType::btOuterOnly &&
|
||||
this->object_config->brim_width.value > 0))
|
||||
{
|
||||
if (this->print_config->wall_infill_order == WallInfillOrder::InnerOuterInnerInfill) {
|
||||
if (this->config->wall_infill_order == WallInfillOrder::InnerOuterInnerInfill) {
|
||||
if (entities.entities.size() > 1) {
|
||||
std::vector<int> extPs;
|
||||
for (int i = 0; i < entities.entities.size(); ++i) {
|
||||
@@ -1016,14 +1020,11 @@ void PerimeterGenerator::process_classic()
|
||||
++ irun;
|
||||
}
|
||||
#endif
|
||||
// SoftFever: don't filter out tiny gap fills for first and top layer. So that the print looks better :)
|
||||
if (this->layer_id != 0 && this->upper_slices != nullptr)
|
||||
{
|
||||
polylines.erase(std::remove_if(polylines.begin(), polylines.end(),
|
||||
[&](const ThickPolyline& p) {
|
||||
return p.length() < scale_(config->filter_out_gap_fill.value);
|
||||
}), polylines.end());
|
||||
}
|
||||
// SoftFever: filter out tiny gap fills
|
||||
polylines.erase(std::remove_if(polylines.begin(), polylines.end(),
|
||||
[&](const ThickPolyline& p) {
|
||||
return p.length() < scale_(config->filter_out_gap_fill.value);
|
||||
}), polylines.end());
|
||||
|
||||
|
||||
if (! polylines.empty()) {
|
||||
@@ -1183,8 +1184,8 @@ void PerimeterGenerator::process_arachne()
|
||||
int direction = -1;
|
||||
|
||||
bool is_outer_wall_first =
|
||||
this->print_config->wall_infill_order == WallInfillOrder::OuterInnerInfill ||
|
||||
this->print_config->wall_infill_order == WallInfillOrder::InfillOuterInner;
|
||||
this->config->wall_infill_order == WallInfillOrder::OuterInnerInfill ||
|
||||
this->config->wall_infill_order == WallInfillOrder::InfillOuterInner;
|
||||
if (is_outer_wall_first) {
|
||||
start_perimeter = 0;
|
||||
end_perimeter = int(perimeters.size());
|
||||
@@ -1312,7 +1313,7 @@ void PerimeterGenerator::process_arachne()
|
||||
}
|
||||
|
||||
|
||||
if (this->print_config->wall_infill_order == WallInfillOrder::InnerOuterInnerInfill) {
|
||||
if (this->config->wall_infill_order == WallInfillOrder::InnerOuterInnerInfill) {
|
||||
if (ordered_extrusions.size() > 1) {
|
||||
std::vector<int> extPs;
|
||||
for (int i = 0; i < ordered_extrusions.size(); ++i) {
|
||||
|
||||
Reference in New Issue
Block a user