From 60286bb03259d2cff1ae4593b421b7dcfde22b96 Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Fri, 27 Jul 2018 19:51:08 -0500 Subject: [PATCH] Actually make brim, and fix tests so that math is correct. --- src/test/libslic3r/test_print.cpp | 7 ++----- xs/src/libslic3r/Print.cpp | 5 ++++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/test/libslic3r/test_print.cpp b/src/test/libslic3r/test_print.cpp index c376dea59..14981cfaa 100644 --- a/src/test/libslic3r/test_print.cpp +++ b/src/test/libslic3r/test_print.cpp @@ -75,26 +75,23 @@ SCENARIO("Print: Brim generation") { print->make_brim(); THEN("Brim Extrusion collection has 3 loops in it") { REQUIRE(print->brim.items_count() == 3); - REQUIRE(print->brim.flatten().entities.size() == 3); } } WHEN("Brim is set to 6mm") { - config->set("brim_width", 3); + config->set("brim_width", 6); auto print {Slic3r::Test::init_print({m}, model, config)}; print->make_brim(); THEN("Brim Extrusion collection has 6 loops in it") { REQUIRE(print->brim.items_count() == 6); - REQUIRE(print->brim.flatten().entities.size() == 6); } } WHEN("Brim is set to 6mm, extrusion width 0.5mm") { - config->set("brim_width", 3); + config->set("brim_width", 6); config->set("first_layer_extrusion_width", 0.5); auto print {Slic3r::Test::init_print({m}, model, config)}; print->make_brim(); THEN("Brim Extrusion collection has 12 loops in it") { REQUIRE(print->brim.items_count() == 12); - REQUIRE(print->brim.flatten().entities.size() == 12); } } } diff --git a/xs/src/libslic3r/Print.cpp b/xs/src/libslic3r/Print.cpp index b9dfb0059..838d0c84f 100644 --- a/xs/src/libslic3r/Print.cpp +++ b/xs/src/libslic3r/Print.cpp @@ -114,15 +114,18 @@ Print::process() void Print::make_brim() { + if (this->state.is_done(psBrim)) return; // prereqs for(auto& obj: this->objects) { obj->make_perimeters(); obj->infill(); obj->generate_support_material(); } - + this->state.set_started(psBrim); if (this->status_cb != nullptr) this->status_cb(88, "Generating brim"); + this->_make_brim(); + this->state.set_done(psBrim); } void