add mix_wall revert infill_overlap

This commit is contained in:
Wang YB
2024-02-27 13:51:25 +08:00
parent 2046b2f21f
commit 04b1c22cc6
3 changed files with 18 additions and 8 deletions

View File

@@ -549,7 +549,11 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
params.anchor_length_max = surface_fill.params.anchor_length_max; params.anchor_length_max = surface_fill.params.anchor_length_max;
params.resolution = resolution; params.resolution = resolution;
//w14 //w14
params.use_arachne = (perimeter_generator == PerimeterGeneratorType::Arachne && surface_fill.params.pattern == ipConcentricInternal) || surface_fill.params.pattern == ipEnsuring; //w20
if (perimeter_generator == PerimeterGeneratorType::Mix_wall)
params.use_arachne = (perimeter_generator == PerimeterGeneratorType::Arachne && surface_fill.params.pattern == ipConcentricInternal) || surface_fill.params.pattern == ipEnsuring || surface_fill.params.pattern == ipConcentricInternal;
else
params.use_arachne = (perimeter_generator == PerimeterGeneratorType::Arachne && surface_fill.params.pattern == ipConcentricInternal) || surface_fill.params.pattern == ipEnsuring ;
params.layer_height = layerm.layer()->height; params.layer_height = layerm.layer()->height;
for (ExPolygon &expoly : surface_fill.expolygons) { for (ExPolygon &expoly : surface_fill.expolygons) {
@@ -561,25 +565,25 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
try { try {
if (params.use_arachne) { if (params.use_arachne) {
//w14 //w14
if (surface_fill.params.pattern == ipConcentricInternal) { /* if (surface_fill.params.pattern == ipConcentricInternal) {
layerm.region().config().infill_overlap.percent ? layerm.region().config().infill_overlap.percent ?
f->overlap = layerm.region().config().perimeter_extrusion_width * layerm.region().config().infill_overlap.value / 100 *(-1): f->overlap = layerm.region().config().perimeter_extrusion_width * layerm.region().config().infill_overlap.value / 100 *(-1):
f->overlap = float(layerm.region().config().infill_overlap.value); f->overlap = float(layerm.region().config().infill_overlap.value);
} else } else
f->overlap = 0; f->overlap = 0;*/
thick_polylines = f->fill_surface_arachne(&surface_fill.surface, params); thick_polylines = f->fill_surface_arachne(&surface_fill.surface, params);
} }
//w14 //w14
else { else {
if (surface_fill.params.pattern == ipConcentricInternal) { /* if (surface_fill.params.pattern == ipConcentricInternal) {
layerm.region().config().infill_overlap.percent ? layerm.region().config().infill_overlap.percent ?
f->overlap = layerm.region().config().perimeter_extrusion_width * f->overlap = layerm.region().config().perimeter_extrusion_width *
layerm.region().config().infill_overlap.value / 100 * (-1) : layerm.region().config().infill_overlap.value / 100 * (-1) :
f->overlap = float(layerm.region().config().infill_overlap.value); f->overlap = float(layerm.region().config().infill_overlap.value);
} else } else
f->overlap = 0; f->overlap = 0;*/
polylines = f->fill_surface(&surface_fill.surface, params); polylines = f->fill_surface(&surface_fill.surface, params);
} }
} catch (InfillFailedException &) { } catch (InfillFailedException &) {

View File

@@ -230,9 +230,11 @@ static const t_config_enum_values s_keys_map_ForwardCompatibilitySubstitutionRul
}; };
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(ForwardCompatibilitySubstitutionRule) CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(ForwardCompatibilitySubstitutionRule)
//w20
static t_config_enum_values s_keys_map_PerimeterGeneratorType { static t_config_enum_values s_keys_map_PerimeterGeneratorType {
{ "classic", int(PerimeterGeneratorType::Classic) }, { "classic", int(PerimeterGeneratorType::Classic) },
{ "arachne", int(PerimeterGeneratorType::Arachne) } { "arachne", int(PerimeterGeneratorType::Arachne) },
{ "mix_wall", int(PerimeterGeneratorType::Mix_wall) }
}; };
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(PerimeterGeneratorType) CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(PerimeterGeneratorType)
@@ -3531,6 +3533,7 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced; def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(0)); def->set_default_value(new ConfigOptionFloat(0));
//w20
def = this->add("perimeter_generator", coEnum); def = this->add("perimeter_generator", coEnum);
def->label = L("Perimeter generator"); def->label = L("Perimeter generator");
def->category = L("Layers and Perimeters"); def->category = L("Layers and Perimeters");
@@ -3540,7 +3543,8 @@ void PrintConfigDef::init_fff_params()
"This setting also affects the Concentric infill."); "This setting also affects the Concentric infill.");
def->set_enum<PerimeterGeneratorType>({ def->set_enum<PerimeterGeneratorType>({
{ "classic", L("Classic") }, { "classic", L("Classic") },
{ "arachne", L("Arachne") } { "arachne", L("Arachne") },
{ "mix_wall", L("Mix_wall")}
}); });
def->mode = comAdvanced; def->mode = comAdvanced;
def->set_default_value(new ConfigOptionEnum<PerimeterGeneratorType>(PerimeterGeneratorType::Arachne)); def->set_default_value(new ConfigOptionEnum<PerimeterGeneratorType>(PerimeterGeneratorType::Arachne));

View File

@@ -133,13 +133,15 @@ enum DraftShield {
enum class LabelObjectsStyle { enum class LabelObjectsStyle {
Disabled, Octoprint, Firmware Disabled, Octoprint, Firmware
}; };
//w20
enum class PerimeterGeneratorType enum class PerimeterGeneratorType
{ {
// Classic perimeter generator using Clipper offsets with constant extrusion width. // Classic perimeter generator using Clipper offsets with constant extrusion width.
Classic, Classic,
// Perimeter generator with variable extrusion width based on the paper // Perimeter generator with variable extrusion width based on the paper
// "A framework for adaptive width control of dense contour-parallel toolpaths in fused deposition modeling" ported from Cura. // "A framework for adaptive width control of dense contour-parallel toolpaths in fused deposition modeling" ported from Cura.
Arachne Arachne,
Mix_wall
}; };
//B3 //B3
enum class GCodeThumbnailsFormat { QIDI,PNG, JPG, QOI }; enum class GCodeThumbnailsFormat { QIDI,PNG, JPG, QOI };