move model

This commit is contained in:
SoftFever 2022-12-27 00:55:57 +08:00
parent 72f23ed5a8
commit a5891fa097

View file

@ -7874,38 +7874,6 @@ void Plater::calib_pa(bool bowden) {
p->background_process.fff_print()->is_calib_mode() = bowden ? Calib_PA_Bowden : Calib_PA_DDE; p->background_process.fff_print()->is_calib_mode() = bowden ? Calib_PA_Bowden : Calib_PA_DDE;
} }
//
//void Plater::calib_flowrate(int pass) {
// if (pass != 1 && pass != 2)
// return;
// const auto calib_name = "Flowrate Test";
// new_project(false, false, calib_name);
// if (pass == 1) {
// std::vector<size_t> res = load_files(std::vector<std::string>{
// Slic3r::resources_dir() + "/calib/flowrate_0.stl",
// Slic3r::resources_dir() + "/calib/flowrate_5.stl",
// Slic3r::resources_dir() + "/calib/flowrate_15.stl",
// Slic3r::resources_dir() + "/calib/flowrate_20.stl",
// Slic3r::resources_dir() + "/calib/flowrate_m5.stl",
// Slic3r::resources_dir() + "/calib/flowrate_m10.stl",
// Slic3r::resources_dir() + "/calib/flowrate_m15.stl",
// Slic3r::resources_dir() + "/calib/flowrate_m20.stl"
// }, LoadStrategy::LoadModel | LoadStrategy::Silence);
// //add_model(false, Slic3r::resources_dir() + "/calib/flowrate_0.stl" );
// //add_model(false, Slic3r::resources_dir() + "/calib/flowrate_5.stl" );
// //add_model(false, Slic3r::resources_dir() + "/calib/flowrate_15.stl" );
// //add_model(false, Slic3r::resources_dir() + "/calib/flowrate_20.stl" );
// //add_model(false, Slic3r::resources_dir() + "/calib/flowrate_m5.stl" );
// //add_model(false, Slic3r::resources_dir() + "/calib/flowrate_m10.stl");
// //add_model(false, Slic3r::resources_dir() + "/calib/flowrate_m15.stl");
// //add_model(false, Slic3r::resources_dir() + "/calib/flowrate_m20.stl");
//
// }
// wxGetApp().mainframe->select_tab(size_t(MainFrame::tp3DEditor));
// CallAfter([this] {this->arrange(); });
//
//
//}
ModelObject* Plater::add_part(ModelObject* model_object, std::string input_file, Vec3d move, Vec3d scale) { ModelObject* Plater::add_part(ModelObject* model_object, std::string input_file, Vec3d move, Vec3d scale) {
Model model; Model model;
@ -7937,7 +7905,7 @@ ModelObject* Plater::add_part(ModelObject* model_object, std::string input_file,
//volumes_info.push_back(std::make_pair(from_u8(new_volume->name), new_volume->get_mesh_errors_count() > 0)); //volumes_info.push_back(std::make_pair(from_u8(new_volume->name), new_volume->get_mesh_errors_count() > 0));
// set a default extruder value, since user can't add it manually // set a default extruder value, since user can't add it manually
// new_volume->config.set_key_value("extruder", new ConfigOptionInt(0)); new_volume->config.set_key_value("extruder", new ConfigOptionInt(0));
// new_volume->config.set_key_value("first_layer_extruder", new ConfigOptionInt(0)); // new_volume->config.set_key_value("first_layer_extruder", new ConfigOptionInt(0));
//move to bed //move to bed
@ -7960,7 +7928,7 @@ void Plater::calib_flowrate(int pass) {
const auto calib_name = "Flowrate Test"; const auto calib_name = "Flowrate Test";
new_project(false, false, calib_name); new_project(false, false, calib_name);
wxGetApp().mainframe->select_tab(size_t(MainFrame::tp3DEditor)); //wxGetApp().mainframe->select_tab(size_t(MainFrame::tp3DEditor));
float start = 80.0f; float start = 80.0f;
float delta = 10.f; float delta = 10.f;
if (pass == 1) { if (pass == 1) {
@ -7977,7 +7945,7 @@ void Plater::calib_flowrate(int pass) {
(boost::filesystem::path(Slic3r::resources_dir()) / "calib" / "filament_flow" / "filament_flow_test_cube.amf").string(), (boost::filesystem::path(Slic3r::resources_dir()) / "calib" / "filament_flow" / "filament_flow_test_cube.amf").string(),
(boost::filesystem::path(Slic3r::resources_dir()) / "calib" / "filament_flow" / "filament_flow_test_cube.amf").string(), (boost::filesystem::path(Slic3r::resources_dir()) / "calib" / "filament_flow" / "filament_flow_test_cube.amf").string(),
(boost::filesystem::path(Slic3r::resources_dir()) / "calib" / "filament_flow" / "filament_flow_test_cube.amf").string(), (boost::filesystem::path(Slic3r::resources_dir()) / "calib" / "filament_flow" / "filament_flow_test_cube.amf").string(),
(boost::filesystem::path(Slic3r::resources_dir()) / "calib" / "filament_flow" / "filament_flow_test_cube.amf").string()}, LoadStrategy::LoadModel | LoadStrategy::Silence); (boost::filesystem::path(Slic3r::resources_dir()) / "calib" / "filament_flow" / "filament_flow_test_cube.amf").string()}, LoadStrategy::LoadModel);
assert(objs_idx.size() == 5); assert(objs_idx.size() == 5);
@ -8034,20 +8002,20 @@ void Plater::calib_flowrate(int pass) {
/// --- translate ---; /// --- translate ---;
bool has_to_arrange = false; bool has_to_arrange = false;
////const ConfigOptionFloat* extruder_clearance_radius = print_config->option<ConfigOptionFloat>("extruder_clearance_radius"); //const ConfigOptionFloat* extruder_clearance_radius = print_config->option<ConfigOptionFloat>("extruder_clearance_radius");
//float extruder_clearance_radius = 0.0f; float extruder_clearance_radius = 0.0f;
////const ConfigOptionPoints* bed_shape = printerConfig->option<ConfigOptionPoints>("printable_area"); //const ConfigOptionPoints* bed_shape = printerConfig->option<ConfigOptionPoints>("printable_area");
//auto bed_area = printerConfig->option<ConfigOptionPoints>("printable_area")->values; auto bed_area = printerConfig->option<ConfigOptionPoints>("printable_area")->values;
//const double brim_width = nozzle_diameter * 3.5; const double brim_width = nozzle_diameter * 3.5;
//Vec2d bed_size = BoundingBoxf(bed_area).size(); Vec2d bed_size = BoundingBoxf(bed_area).size();
//Vec2d bed_min = BoundingBoxf(bed_area).min; Vec2d bed_min = BoundingBoxf(bed_area).min;
//float offsetx = 3 + 20 * xyScale + extruder_clearance_radius + brim_width + (brim_width > extruder_clearance_radius ? brim_width - extruder_clearance_radius : 0); float offsetx = 3 + 20 * xyScale + extruder_clearance_radius + brim_width + (brim_width > extruder_clearance_radius ? brim_width - extruder_clearance_radius : 0);
//float offsety = 3 + 20 * xyScale + extruder_clearance_radius+ brim_width + (brim_width > extruder_clearance_radius ? brim_width - extruder_clearance_radius : 0); float offsety = 3 + 20 * xyScale + extruder_clearance_radius+ brim_width + (brim_width > extruder_clearance_radius ? brim_width - extruder_clearance_radius : 0);
//model().objects[objs_idx[0]]->translate({ bed_min.x() + bed_size.x() / 2 - offsetx / 2, bed_min.y() + bed_size.y() / 2 - offsety, zscale / 2 }); model().objects[objs_idx[0]]->translate({ bed_min.x() + bed_size.x() / 2 - offsetx / 2, bed_min.y() + bed_size.y() / 2 - offsety, zscale / 2 });
//model().objects[objs_idx[1]]->translate({ bed_min.x() + bed_size.x() / 2 - offsetx / 2, bed_min.y() + bed_size.y() / 2 , zscale / 2 }); model().objects[objs_idx[1]]->translate({ bed_min.x() + bed_size.x() / 2 - offsetx / 2, bed_min.y() + bed_size.y() / 2 , zscale / 2 });
//model().objects[objs_idx[2]]->translate({ bed_min.x() + bed_size.x() / 2 - offsetx / 2, bed_min.y() + bed_size.y() / 2 + offsety, zscale / 2 }); model().objects[objs_idx[2]]->translate({ bed_min.x() + bed_size.x() / 2 - offsetx / 2, bed_min.y() + bed_size.y() / 2 + offsety, zscale / 2 });
//model().objects[objs_idx[3]]->translate({ bed_min.x() + bed_size.x() / 2 + offsetx / 2, bed_min.y() + bed_size.y() / 2 - offsety, zscale / 2 }); model().objects[objs_idx[3]]->translate({ bed_min.x() + bed_size.x() / 2 + offsetx / 2, bed_min.y() + bed_size.y() / 2 - offsety, zscale / 2 });
//model().objects[objs_idx[4]]->translate({ bed_min.x() + bed_size.x() / 2 + offsetx / 2, bed_min.y() + bed_size.y() / 2 + offsety, zscale / 2 }); model().objects[objs_idx[4]]->translate({ bed_min.x() + bed_size.x() / 2 + offsetx / 2, bed_min.y() + bed_size.y() / 2 + offsety, zscale / 2 });
/// --- custom config --- /// --- custom config ---
for (size_t i = 0; i < 5; i++) { for (size_t i = 0; i < 5; i++) {
@ -8069,15 +8037,9 @@ void Plater::calib_flowrate(int pass) {
model().objects[objs_idx[i]]->config.set_key_value("print_flow_ratio", new ConfigOptionPercent(start + (float)i * delta)); model().objects[objs_idx[i]]->config.set_key_value("print_flow_ratio", new ConfigOptionPercent(start + (float)i * delta));
} }
//update plater
//GLCanvas3D::set_warning_freeze(false);
//wxGetApp().get_tab(Preset::TYPE_PRINT)->load_config(new_print_config);
//on_config_change(new_print_config);
changed_objects(objs_idx); changed_objects(objs_idx);
wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty(); wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty();
//update everything, easier to code.
//ObjectList* obj = wxGetApp().obj_list();
//obj->update_after_undo_redo();
// automatic selection of added objects // automatic selection of added objects
if (!objs_idx.empty() && p->view3D != nullptr) { if (!objs_idx.empty() && p->view3D != nullptr) {
// update printable state for new volumes on canvas3D // update printable state for new volumes on canvas3D
@ -8091,26 +8053,13 @@ void Plater::calib_flowrate(int pass) {
// BBS: update object list selection // BBS: update object list selection
p->sidebar->obj_list()->update_selections(); p->sidebar->obj_list()->update_selections();
selection.notify_instance_update(-1, -1);
if (p->view3D->get_canvas3d()->get_gizmos_manager().is_enabled()) if (p->view3D->get_canvas3d()->get_gizmos_manager().is_enabled())
// this is required because the selected object changed and the flatten on face an sla support gizmos need to be updated accordingly // this is required because the selected object changed and the flatten on face an sla support gizmos need to be updated accordingly
p->view3D->get_canvas3d()->update_gizmos_on_off_state(); p->view3D->get_canvas3d()->update_gizmos_on_off_state();
} }
// arrange if needed, after new settings, to take them into account
if (has_to_arrange) {
//update print config (done at reslice but we need it here)
if (printer_technology() == ptFFF)
fff_print().apply(model(), *config());
arrange();
}
//reslice(); wxGetApp().mainframe->select_tab(size_t(MainFrame::tp3DEditor));
//if (autocenter) {
// //re-enable auto-center after this calibration.
// wxGetApp().app_config->set("autocenter", "1");
//}
//
} }