Filament following a soluble one must be wiped on the wipe tower
This commit is contained in:
parent
3dfd6e64d9
commit
eb6936888e
3 changed files with 5 additions and 5 deletions
|
@ -440,13 +440,13 @@ bool WipingExtrusions::is_overriddable(const ExtrusionEntityCollection& eec, con
|
||||||
|
|
||||||
// Following function iterates through all extrusions on the layer, remembers those that could be used for wiping after toolchange
|
// Following function iterates through all extrusions on the layer, remembers those that could be used for wiping after toolchange
|
||||||
// and returns volume that is left to be wiped on the wipe tower.
|
// and returns volume that is left to be wiped on the wipe tower.
|
||||||
float WipingExtrusions::mark_wiping_extrusions(const Print& print, unsigned int new_extruder, float volume_to_wipe)
|
float WipingExtrusions::mark_wiping_extrusions(const Print& print, unsigned int old_extruder, unsigned int new_extruder, float volume_to_wipe)
|
||||||
{
|
{
|
||||||
const LayerTools& lt = *m_layer_tools;
|
const LayerTools& lt = *m_layer_tools;
|
||||||
const float min_infill_volume = 0.f; // ignore infill with smaller volume than this
|
const float min_infill_volume = 0.f; // ignore infill with smaller volume than this
|
||||||
|
|
||||||
if (print.config.filament_soluble.get_at(new_extruder))
|
if (print.config.filament_soluble.get_at(old_extruder) || print.config.filament_soluble.get_at(new_extruder))
|
||||||
return volume_to_wipe; // Soluble filament cannot be wiped in a random infill
|
return volume_to_wipe; // Soluble filament cannot be wiped in a random infill, neither the filament after it
|
||||||
|
|
||||||
// we will sort objects so that dedicated for wiping are at the beginning:
|
// we will sort objects so that dedicated for wiping are at the beginning:
|
||||||
PrintObjectPtrs object_list = print.objects;
|
PrintObjectPtrs object_list = print.objects;
|
||||||
|
|
|
@ -28,7 +28,7 @@ public:
|
||||||
|
|
||||||
// This function goes through all infill entities, decides which ones will be used for wiping and
|
// This function goes through all infill entities, decides which ones will be used for wiping and
|
||||||
// marks them by the extruder id. Returns volume that remains to be wiped on the wipe tower:
|
// marks them by the extruder id. Returns volume that remains to be wiped on the wipe tower:
|
||||||
float mark_wiping_extrusions(const Print& print, unsigned int new_extruder, float volume_to_wipe);
|
float mark_wiping_extrusions(const Print& print, unsigned int old_extruder, unsigned int new_extruder, float volume_to_wipe);
|
||||||
|
|
||||||
void ensure_perimeters_infills_order(const Print& print);
|
void ensure_perimeters_infills_order(const Print& print);
|
||||||
|
|
||||||
|
|
|
@ -1137,7 +1137,7 @@ void Print::_make_wipe_tower()
|
||||||
float volume_to_wipe = wipe_volumes[current_extruder_id][extruder_id]; // total volume to wipe after this toolchange
|
float volume_to_wipe = wipe_volumes[current_extruder_id][extruder_id]; // total volume to wipe after this toolchange
|
||||||
|
|
||||||
// try to assign some infills/objects for the wiping:
|
// try to assign some infills/objects for the wiping:
|
||||||
volume_to_wipe = layer_tools.wiping_extrusions().mark_wiping_extrusions(*this, extruder_id, wipe_volumes[current_extruder_id][extruder_id]);
|
volume_to_wipe = layer_tools.wiping_extrusions().mark_wiping_extrusions(*this, current_extruder_id, extruder_id, wipe_volumes[current_extruder_id][extruder_id]);
|
||||||
|
|
||||||
wipe_tower.plan_toolchange(layer_tools.print_z, layer_tools.wipe_tower_layer_height, current_extruder_id, extruder_id, first_layer && extruder_id == m_tool_ordering.all_extruders().back(), volume_to_wipe);
|
wipe_tower.plan_toolchange(layer_tools.print_z, layer_tools.wipe_tower_layer_height, current_extruder_id, extruder_id, first_layer && extruder_id == m_tool_ordering.all_extruders().back(), volume_to_wipe);
|
||||||
current_extruder_id = extruder_id;
|
current_extruder_id = extruder_id;
|
||||||
|
|
Loading…
Reference in a new issue