fixes on build

This commit is contained in:
supermerill 2020-06-01 19:13:20 +02:00
parent 0e6950ab25
commit 07fa80304d
7 changed files with 30 additions and 21 deletions

View File

@ -287,8 +287,10 @@ std::string ExtrusionEntity::role_to_string(ExtrusionRole role)
}
return "";
}void ExtrusionPrinter::use(const ExtrusionPath &path) {
ss << "ExtrusionPath{";
}
void ExtrusionPrinter::use(const ExtrusionPath &path) {
ss << "ExtrusionPath:" << (uint16_t)path.role() << "{";
for (int i = 0; i < path.polyline.points.size(); i++) {
if (i != 0) ss << ",";
double x = (mult * (path.polyline.points[i].x()));
@ -298,7 +300,7 @@ std::string ExtrusionEntity::role_to_string(ExtrusionRole role)
ss << "}";
}
void ExtrusionPrinter::use(const ExtrusionPath3D &path3D) {
ss << "ExtrusionPath3D{";
ss << "ExtrusionPath3D:" << (uint16_t)path3D.role() << "{";
for (int i = 0; i < path3D.polyline.points.size();i++){
if (i != 0) ss << ",";
double x = (mult * (path3D.polyline.points[i].x()));
@ -309,7 +311,7 @@ void ExtrusionPrinter::use(const ExtrusionPath3D &path3D) {
ss << "}";
}
void ExtrusionPrinter::use(const ExtrusionMultiPath &multipath) {
ss << "ExtrusionMultiPath{";
ss << "ExtrusionMultiPath:" << (uint16_t)multipath.role() << "{";
for (int i = 0; i < multipath.paths.size(); i++) {
if (i != 0) ss << ",";
multipath.paths[i].visit(*this);
@ -317,7 +319,7 @@ void ExtrusionPrinter::use(const ExtrusionMultiPath &multipath) {
ss << "}";
}
void ExtrusionPrinter::use(const ExtrusionMultiPath3D &multipath3D) {
ss << "multipath3D{";
ss << "multipath3D:" << (uint16_t)multipath3D.role() << "{";
for (int i = 0; i < multipath3D.paths.size(); i++) {
if (i != 0) ss << ",";
multipath3D.paths[i].visit(*this);
@ -325,7 +327,7 @@ void ExtrusionPrinter::use(const ExtrusionMultiPath3D &multipath3D) {
ss << "}";
}
void ExtrusionPrinter::use(const ExtrusionLoop &loop) {
ss << "ExtrusionLoop{";
ss << "ExtrusionLoop:" << (uint16_t)loop.role()<<":" <<(uint16_t)loop.loop_role()<<"{";
for (int i = 0; i < loop.paths.size(); i++) {
if (i != 0) ss << ",";
loop.paths[i].visit(*this);
@ -333,7 +335,7 @@ void ExtrusionPrinter::use(const ExtrusionLoop &loop) {
ss << "}";
}
void ExtrusionPrinter::use(const ExtrusionEntityCollection &collection) {
ss << "ExtrusionEntityCollection{";
ss << "ExtrusionEntityCollection:" << (uint16_t)collection.role() << "{";
for (int i = 0; i < collection.entities.size(); i++) {
if (i != 0) ss << ",";
collection.entities[i]->visit(*this);

View File

@ -46,9 +46,9 @@ enum ExtrusionLoopRole : uint16_t {
elrInternal = 1 << 1, //2
elrSkirt = 1 << 2, //4
//it's a modifier that indicate that the loop is around a hole, not around the infill
elrHole = 1 << 3, // 16
elrHole = 1 << 3, // 8
//it's a modifier that indicate that the loop should be printed as vase
elrVase = 1 << 4, //32
elrVase = 1 << 4, //16
};

View File

@ -167,7 +167,6 @@ void init_print(std::vector<TriangleMesh> &&meshes, Slic3r::Print &print, Slic3r
object->add_volume(std::move(t));
object->add_instance();
}
model.arrange_objects(PrintConfig::min_object_distance(&config));
model.center_instances_around_point(Slic3r::Vec2d(100, 100));
for (ModelObject *mo : model.objects) {
mo->ensure_on_bed();
@ -175,6 +174,8 @@ void init_print(std::vector<TriangleMesh> &&meshes, Slic3r::Print &print, Slic3r
}
print.apply(model, config);
model.arrange_objects(print);
print.apply(model, config);
print.validate();
print.set_status_silent();
}

View File

@ -41,7 +41,8 @@ SCENARIO("Model construction", "[Model]") {
}
}
model_object->add_instance();
model.arrange_objects(PrintConfig::min_object_distance(&config));
print.apply(model, config); // apply config for arrange_objects
model.arrange_objects(print);
model.center_instances_around_point(Slic3r::Vec2d(100, 100));
model_object->ensure_on_bed();
print.auto_assign_extruders(model_object);

View File

@ -75,19 +75,19 @@ SCENARIO("Complete objects separatly") {
THEN("complete objects") {
config.set_key_value("complete_objects", new ConfigOptionBool(true));
result = init_print_with_dist(config, 22)->validate();
REQUIRE(result.first == PrintBase::PrintValidationError::WrongPosition);
REQUIRE(result.first == PrintBase::PrintValidationError::pveWrongPosition);
}
}
WHEN("at the limit (~30 mm)") {
config.set_key_value("complete_objects", new ConfigOptionBool(true));
THEN("(too near)") {
result = init_print_with_dist(config, 29.9)->validate();
REQUIRE(result.first == PrintBase::PrintValidationError::WrongPosition);
REQUIRE(result.first == PrintBase::PrintValidationError::pveWrongPosition);
}
THEN("(ok far)") {
result = init_print_with_dist(config, 30.1)->validate();
REQUIRE(result.second == "");
REQUIRE(result.first == PrintBase::PrintValidationError::None);
REQUIRE(result.first == PrintBase::PrintValidationError::pveNone);
}
}
WHEN("with a 10 mm brim, so the dist should be 40mm ") {
@ -95,12 +95,12 @@ SCENARIO("Complete objects separatly") {
config.set_deserialize("brim_width", "10");
THEN("(too near)") {
result = init_print_with_dist(config, 39.9)->validate();
REQUIRE(result.first == PrintBase::PrintValidationError::WrongPosition);
REQUIRE(result.first == PrintBase::PrintValidationError::pveWrongPosition);
}
THEN("(ok far)") {
result = init_print_with_dist(config, 40.1)->validate();
REQUIRE(result.second == "");
REQUIRE(result.first == PrintBase::PrintValidationError::None);
REQUIRE(result.first == PrintBase::PrintValidationError::pveNone);
}
}
WHEN("with a 10 mm dist short skirt, so the dist should be 40mm +extrusionwidth") {
@ -112,12 +112,12 @@ SCENARIO("Complete objects separatly") {
THEN("(too near)") {
result = init_print_with_dist(config, 40)->validate();
REQUIRE(result.first == PrintBase::PrintValidationError::WrongPosition);
REQUIRE(result.first == PrintBase::PrintValidationError::pveWrongPosition);
}
THEN("(ok far)") {
result = init_print_with_dist(config, 40.8)->validate();
REQUIRE(result.second == "");
REQUIRE(result.first == PrintBase::PrintValidationError::None);
REQUIRE(result.first == PrintBase::PrintValidationError::pveNone);
}
}
}

View File

@ -286,6 +286,7 @@ void init_print(Print& print, std::initializer_list<TestMesh> meshes, Slic3r::Mo
inst->set_scaling_factor(Vec3d(1, 1, 1));
}
print.apply(model, config); // apply config for the arrange_objects
model.arrange_objects(print);
model.center_instances_around_point(Slic3r::Vec2d(100,100));
for (auto* mo : model.objects) {
@ -298,7 +299,8 @@ void init_print(Print& print, std::initializer_list<TestMesh> meshes, Slic3r::Mo
//std::cout << "validate result : " << err << ", mempty print? " << print.empty() << "\n";
}
void init_print(Print& print, std::initializer_list<TriangleMesh> meshes, Slic3r::Model& model, DynamicPrintConfig* _config, bool comments) {
void init_print(Print& print, std::vector<TriangleMesh> meshes, Slic3r::Model& model, DynamicPrintConfig* _config, bool comments) {
DynamicPrintConfig &config = Slic3r::DynamicPrintConfig::full_print_config();
config.apply(*_config);
@ -308,7 +310,9 @@ void init_print(Print& print, std::initializer_list<TriangleMesh> meshes, Slic3r
//if (tests_gcode != ""s)
//config->set_key_value("gcode_comments", new ConfigOptionBool(true));
for (const TriangleMesh& t : meshes) {
for (TriangleMesh& t : meshes) {
if(!t.repaired)
t.repair();
ModelObject* object {model.add_object()};
object->name += "object.stl"s;
object->add_volume(t);
@ -318,6 +322,7 @@ void init_print(Print& print, std::initializer_list<TriangleMesh> meshes, Slic3r
inst->set_scaling_factor(Vec3d(1, 1, 1));
}
print.apply(model, config); // apply config for the arrange_objects
model.arrange_objects(print);
model.center_instances_around_point(Slic3r::Vec2d(100,100));
print.apply(model, config);

View File

@ -69,7 +69,7 @@ bool _equiv(const T& a, const T& b, double epsilon) { return abs(a - b) < epsilo
Slic3r::Model model(const std::string& model_name, TriangleMesh&& _mesh);
void init_print(Print& print, std::initializer_list<TestMesh> meshes, Slic3r::Model& model, DynamicPrintConfig* _config, bool comments = false);
void init_print(Print& print, std::initializer_list<TriangleMesh> meshes, Slic3r::Model& model, DynamicPrintConfig* _config, bool comments = false);
void init_print(Print& print, std::vector<TriangleMesh> meshes, Slic3r::Model& model, DynamicPrintConfig* _config, bool comments = false);
void gcode(std::string& gcode, Print& print);