For the wipe tower to work, verify that all objects are sliced

with the same layer heights.
Also enforce layer synchronization for soluble supports.
This commit is contained in:
bubnikv 2017-06-06 11:40:35 +02:00
parent 72f348658f
commit 3e764ada0c
2 changed files with 28 additions and 0 deletions

View file

@ -573,6 +573,18 @@ std::string Print::validate() const
return "The Wipe Tower is currently only supported for the RepRap (Marlin / Sprinter) G-code flavor.";
if (! this->config.use_relative_e_distances)
return "The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1).";
for (PrintObject *object : this->objects) {
if (std::abs(object->config.first_layer_height - this->objects.front()->config.first_layer_height) > EPSILON ||
std::abs(object->config.layer_height - this->objects.front()->config.layer_height ) > EPSILON)
return "The Wipe Tower is only supported for multiple objects if they have equal layer heigths";
object->update_layer_height_profile();
if (object->layer_height_profile.size() != 8 ||
std::abs(object->layer_height_profile[1] - object->config.first_layer_height) > EPSILON ||
std::abs(object->layer_height_profile[3] - object->config.first_layer_height) > EPSILON ||
std::abs(object->layer_height_profile[5] - object->config.layer_height) > EPSILON ||
std::abs(object->layer_height_profile[7] - object->config.layer_height) > EPSILON)
return "The Wipe Tower is currently only supported with constant Z layer spacing. Layer editing is not allowed.";
}
}
{