diff options
author | Lukas Matena <lukasmatena@seznam.cz> | 2018-06-07 17:19:57 +0300 |
---|---|---|
committer | Lukas Matena <lukasmatena@seznam.cz> | 2018-06-07 17:19:57 +0300 |
commit | b6455b66bd7894b8d575ba91524aa93dc306888d (patch) | |
tree | 88041b9b448b9786a8b0664a657cbe347975e52a /xs/src/libslic3r/GCode.cpp | |
parent | 73452fd79db41286e6c04658edf6b0e15ce8f008 (diff) |
Wiping into infill/objects - invalidation of the wipe tower, bugfixes
Diffstat (limited to 'xs/src/libslic3r/GCode.cpp')
-rw-r--r-- | xs/src/libslic3r/GCode.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/xs/src/libslic3r/GCode.cpp b/xs/src/libslic3r/GCode.cpp index 92898c820..ce63a374c 100644 --- a/xs/src/libslic3r/GCode.cpp +++ b/xs/src/libslic3r/GCode.cpp @@ -1357,7 +1357,7 @@ void GCode::process_layer( m_avoid_crossing_perimeters.disable_once = true; } - if (print.config.wipe_into_infill.value) { + { gcode += "; INFILL WIPING STARTS\n"; if (extruder_id != layer_tools.extruders.front()) { // if this is the first extruder on this layer, there was no toolchange for (const auto& layer_to_print : layers) { // iterate through all objects @@ -1373,12 +1373,12 @@ void GCode::process_layer( overridden.push_back(new_region); for (ExtrusionEntity *ee : (*layer_to_print.object_layer).regions[region_id]->fills.entities) { auto *fill = dynamic_cast<ExtrusionEntityCollection*>(ee); - if (fill->get_extruder_override(copy_id) == (unsigned int)extruder_id) + if (fill->get_extruder_override(copy_id) == (int)extruder_id) overridden.back().infills.append(*fill); } for (ExtrusionEntity *ee : (*layer_to_print.object_layer).regions[region_id]->perimeters.entities) { auto *fill = dynamic_cast<ExtrusionEntityCollection*>(ee); - if (fill->get_extruder_override(copy_id) == (unsigned int)extruder_id) + if (fill->get_extruder_override(copy_id) == (int)extruder_id) overridden.back().perimeters.append((*fill).entities); } } @@ -2527,12 +2527,13 @@ const std::vector<GCode::ObjectByExtruder::Island::Region>& GCode::ObjectByExtru by_region_per_copy_cache.push_back(ObjectByExtruder::Island::Region()); //out.back().perimeters.append(reg.perimeters); // we will print all perimeters there are - if (!reg.infills_per_copy_ids.empty()) { + if (!reg.infills_per_copy_ids.empty()) for (unsigned int i=0; i<reg.infills_per_copy_ids[copy].size(); ++i) by_region_per_copy_cache.back().infills.append(*(reg.infills.entities[reg.infills_per_copy_ids[copy][i]])); + + if (!reg.perimeters_per_copy_ids.empty()) for (unsigned int i=0; i<reg.perimeters_per_copy_ids[copy].size(); ++i) by_region_per_copy_cache.back().perimeters.append(*(reg.perimeters.entities[reg.perimeters_per_copy_ids[copy][i]])); - } } return by_region_per_copy_cache; } |