Implementation of "XY size Compensation for first layer"

https://github.com/prusa3d/Slic3r/issues/190
This commit is contained in:
bubnikv 2017-06-26 16:28:10 +02:00
parent 32fa84c5a5
commit 8160db23cc
5 changed files with 21 additions and 2 deletions

View file

@ -160,6 +160,7 @@ bool PrintObject::invalidate_state_by_config_options(const std::vector<t_config_
}
else if (
opt_key == "clip_multipart_objects"
|| opt_key == "elefant_foot_compensation"
|| opt_key == "support_material_contact_distance"
|| opt_key == "xy_size_compensation") {
steps.emplace_back(posSlice);
@ -1164,6 +1165,8 @@ end:
Layer *layer = this->layers[layer_id];
// Apply size compensation and perform clipping of multi-part objects.
float delta = float(scale_(this->config.xy_size_compensation.value));
if (layer_id == 0)
delta -= float(scale_(this->config.elefant_foot_compensation.value));
bool scale = delta != 0.f;
bool clip = this->config.clip_multipart_objects.value || delta > 0.f;
if (layer->regions.size() == 1) {