mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-14 13:16:00 +08:00
fixes on build
This commit is contained in:
parent
0e6950ab25
commit
07fa80304d
@ -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);
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user