diff --git a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp index 8f2f0e35b..8388d1682 100644 --- a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp @@ -2214,7 +2214,7 @@ void CalibrationPresetPage::select_default_compatible_filament() Layout(); } else { - assert(false); + //assert(false); } check_filament_compatible(); @@ -2270,7 +2270,7 @@ std::vector CalibrationPresetPage::get_selected_filament_comb } } } else { - assert(false); + //assert(false); } } diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 2b2276ee1..c3c10bef0 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -6393,14 +6393,14 @@ void GLCanvas3D::render_thumbnail_legacy(ThumbnailData& thumbnail_data, unsigned bool ban_light) { // check that thumbnail size does not exceed the default framebuffer size - const Size& cnv_size = get_canvas_size(); + /*const Size& cnv_size = get_canvas_size(); unsigned int cnv_w = (unsigned int)cnv_size.get_width(); unsigned int cnv_h = (unsigned int)cnv_size.get_height(); if (w > cnv_w || h > cnv_h) { float ratio = std::min((float)cnv_w / (float)w, (float)cnv_h / (float)h); w = (unsigned int)(ratio * (float)w); h = (unsigned int)(ratio * (float)h); - } + }*/ thumbnail_data.set(w, h); if (!thumbnail_data.is_valid()) diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 4c211e3cb..85f993974 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -890,6 +890,21 @@ public: bool for_picking = false, bool ban_light = false); + // render thumbnail using the default framebuffer + static void render_thumbnail_legacy(ThumbnailData & thumbnail_data, + unsigned int w, + unsigned int h, + const ThumbnailsParams & thumbnail_params, + PartPlateList & partplate_list, + ModelObjectPtrs & model_objects, + const GLVolumeCollection & volumes, + std::vector> &extruder_colors, + GLShaderProgram * shader, + Camera::EType camera_type, + bool use_top_view = false, + bool for_picking = false, + bool ban_light = false); + //BBS use gcoder viewer render calibration thumbnails void render_calibration_thumbnail(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params); @@ -1174,20 +1189,6 @@ private: bool _render_orient_menu(float left, float right, float bottom, float top); bool _render_arrange_menu(float left, float right, float bottom, float top); void _render_3d_navigator(); - // render thumbnail using the default framebuffer - void render_thumbnail_legacy(ThumbnailData & thumbnail_data, - unsigned int w, - unsigned int h, - const ThumbnailsParams & thumbnail_params, - PartPlateList & partplate_list, - ModelObjectPtrs & model_objects, - const GLVolumeCollection & volumes, - std::vector> &extruder_colors, - GLShaderProgram * shader, - Camera::EType camera_type, - bool use_top_view = false, - bool for_picking = false, - bool ban_light = false); void _update_volumes_hover_state(); diff --git a/src/slic3r/Utils/CalibUtils.cpp b/src/slic3r/Utils/CalibUtils.cpp index 0a31c4a8e..e8c2b80a2 100644 --- a/src/slic3r/Utils/CalibUtils.cpp +++ b/src/slic3r/Utils/CalibUtils.cpp @@ -208,6 +208,40 @@ static bool check_nozzle_diameter_and_type(const DynamicPrintConfig &full_config return true; } +static void init_multi_extruder_params_for_cali(DynamicPrintConfig& config, const CalibInfo& calib_info) +{ + int extruder_count = 1; + auto nozzle_diameters_opt = dynamic_cast(config.option("nozzle_diameter")); + if (nozzle_diameters_opt != nullptr) { + extruder_count = (int)(nozzle_diameters_opt->size()); + } + std::vector& nozzle_volume_types = dynamic_cast(config.option("nozzle_volume_type", true))->values; + nozzle_volume_types.clear(); + nozzle_volume_types.resize(extruder_count, (int)calib_info.nozzle_volume_type); + + std::vector physical_extruder_maps = dynamic_cast(config.option("physical_extruder_map", true))->values; + int extruder_id = calib_info.extruder_id; + for (size_t index = 0; index < extruder_count; ++index) { + if (physical_extruder_maps[index] == extruder_id) + { + extruder_id = index + 1; + } + } + + int num_filaments = 1; + auto filament_colour_opt = dynamic_cast(config.option("filament_colour")); + if (filament_colour_opt != nullptr) { + num_filaments = (int)(filament_colour_opt->size()); + } + std::vector& filament_maps = config.option("filament_map", true)->values; + filament_maps.clear(); + filament_maps.resize(num_filaments, extruder_id); + + config.option>("filament_map_mode", true)->value = FilamentMapMode::fmmManual; + +} + + CalibMode CalibUtils::get_calib_mode_by_name(const std::string name, int& cali_stage) { if (name == "pa_line_calib_mode") { @@ -606,6 +640,8 @@ bool CalibUtils::calib_flowrate(int pass, const CalibInfo &calib_info, wxString full_config.apply(filament_config); full_config.apply(printer_config); + init_multi_extruder_params_for_cali(full_config, calib_info); + Calib_Params params; params.mode = CalibMode::Calib_Flow_Rate; if (!process_and_store_3mf(&model, full_config, params, error_message)) @@ -728,6 +764,8 @@ bool CalibUtils::calib_generic_PA(const CalibInfo &calib_info, wxString &error_m full_config.apply(filament_config); full_config.apply(printer_config); + init_multi_extruder_params_for_cali(full_config, calib_info); + if (!process_and_store_3mf(&model, full_config, params, error_message)) return false; @@ -829,6 +867,8 @@ void CalibUtils::calib_temptue(const CalibInfo &calib_info, wxString &error_mess full_config.apply(filament_config); full_config.apply(printer_config); + init_multi_extruder_params_for_cali(full_config, calib_info); + process_and_store_3mf(&model, full_config, params, error_message); if (!error_message.empty()) return; @@ -908,6 +948,8 @@ void CalibUtils::calib_max_vol_speed(const CalibInfo &calib_info, wxString &erro full_config.apply(filament_config); full_config.apply(printer_config); + init_multi_extruder_params_for_cali(full_config, calib_info); + process_and_store_3mf(&model, full_config, new_params, error_message); if (!error_message.empty()) return; @@ -966,6 +1008,8 @@ void CalibUtils::calib_VFA(const CalibInfo &calib_info, wxString &error_message) full_config.apply(filament_config); full_config.apply(printer_config); + init_multi_extruder_params_for_cali(full_config, calib_info); + process_and_store_3mf(&model, full_config, params, error_message); if (!error_message.empty()) return; @@ -1017,6 +1061,8 @@ void CalibUtils::calib_retraction(const CalibInfo &calib_info, wxString &error_m full_config.apply(filament_config); full_config.apply(printer_config); + init_multi_extruder_params_for_cali(full_config, calib_info); + process_and_store_3mf(&model, full_config, params, error_message); if (!error_message.empty()) return; @@ -1184,9 +1230,11 @@ bool CalibUtils::process_and_store_3mf(Model *model, const DynamicPrintConfig &f partplate_list, model->objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho); break; } - default: - BOOST_LOG_TRIVIAL(info) << boost::format("framebuffer_type: unknown"); + default:{ + BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< boost::format(": framebuffer_type: others"); + Slic3r::GUI::GLCanvas3D::render_thumbnail_legacy(*thumbnail_data, thumbnail_width, thumbnail_height, thumbnail_params, partplate_list, model->objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho); break; + } } thumbnails.push_back(thumbnail_data); }