diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000000..e21ee45935 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**3mf File for This Bug** +If it is related to slicing, please append the 3mf file. It could be extremely helpful to solve the issue. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS, Windows] + - Version [e.g. 22] diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md new file mode 100644 index 0000000000..50b6debdab --- /dev/null +++ b/.github/ISSUE_TEMPLATE/custom.md @@ -0,0 +1,10 @@ +--- +name: Custom issue template +about: For generic ideas such as enhancement of a feature, some questions, and etc. +title: '' +labels: '' +assignees: '' + +--- + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000..4fe86d5ec8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: feature +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/resources/web/guide/3/index.html b/resources/web/guide/3/index.html index 62ae67cafc..4ddcc3101b 100644 --- a/resources/web/guide/3/index.html +++ b/resources/web/guide/3/index.html @@ -26,7 +26,7 @@
- + Allow sending anonymous data
diff --git a/resources/web/guide/31/index.html b/resources/web/guide/31/index.html index c5a386d176..b76a445b85 100644 --- a/resources/web/guide/31/index.html +++ b/resources/web/guide/31/index.html @@ -26,7 +26,7 @@
- + Allow sending anonymous data
diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index a47f2d36e9..78c1b17ae9 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2092,40 +2092,45 @@ static bool custom_gcode_sets_temperature(const std::string &gcode, const int mc // Do not process this piece of G-code by the time estimator, it already knows the values through another sources. void GCode::print_machine_envelope(GCodeOutputStream &file, Print &print) { - if (print.config().gcode_flavor.value == gcfMarlinLegacy || print.config().gcode_flavor.value == gcfMarlinFirmware) { + const auto flavor = print.config().gcode_flavor.value; + if (flavor == gcfMarlinLegacy || flavor == gcfMarlinFirmware) { + int factor = flavor == gcfRepRapFirmware ? 60 : 1; // RRF M203 and M566 are in mm/min file.write_format("M201 X%d Y%d Z%d E%d\n", int(print.config().machine_max_acceleration_x.values.front() + 0.5), int(print.config().machine_max_acceleration_y.values.front() + 0.5), int(print.config().machine_max_acceleration_z.values.front() + 0.5), int(print.config().machine_max_acceleration_e.values.front() + 0.5)); file.write_format("M203 X%d Y%d Z%d E%d\n", - int(print.config().machine_max_speed_x.values.front() + 0.5), - int(print.config().machine_max_speed_y.values.front() + 0.5), - int(print.config().machine_max_speed_z.values.front() + 0.5), - int(print.config().machine_max_speed_e.values.front() + 0.5)); + int(print.config().machine_max_speed_x.values.front() * factor + 0.5), + int(print.config().machine_max_speed_y.values.front() * factor + 0.5), + int(print.config().machine_max_speed_z.values.front() * factor + 0.5), + int(print.config().machine_max_speed_e.values.front() * factor + 0.5)); // Now M204 - acceleration. This one is quite hairy thanks to how Marlin guys care about // Legacy Marlin should export travel acceleration the same as printing acceleration. // MarlinFirmware has the two separated. - int travel_acc = print.config().gcode_flavor == gcfMarlinLegacy + int travel_acc = flavor == gcfMarlinLegacy ? int(print.config().machine_max_acceleration_extruding.values.front() + 0.5) : int(print.config().machine_max_acceleration_travel.values.front() + 0.5); - file.write_format("M204 P%d R%d T%d\n", - int(print.config().machine_max_acceleration_extruding.values.front() + 0.5), - int(print.config().machine_max_acceleration_retracting.values.front() + 0.5), - travel_acc); - + if (flavor == gcfRepRapFirmware) + file.write_format("M204 P%d T%d ; sets acceleration (P, T), mm/sec^2\n", + int(print.config().machine_max_acceleration_extruding.values.front() + 0.5), + travel_acc); + else + file.write_format("M204 P%d R%d T%d\n", + int(print.config().machine_max_acceleration_extruding.values.front() + 0.5), + int(print.config().machine_max_acceleration_retracting.values.front() + 0.5), + travel_acc); assert(is_decimal_separator_point()); - file.write_format("M205 X%.2lf Y%.2lf Z%.2lf E%.2lf\n", - print.config().machine_max_jerk_x.values.front(), - print.config().machine_max_jerk_y.values.front(), - print.config().machine_max_jerk_z.values.front(), - print.config().machine_max_jerk_e.values.front()); - //BBS: don't support M205 Sx Tx - //file.write_format("M205 S%d T%d\n", - // int(print.config().machine_min_extruding_rate.values.front() + 0.5), - // int(print.config().machine_min_travel_rate.values.front() + 0.5)); + file.write_format(flavor == gcfRepRapFirmware + ? "M566 X%.2lf Y%.2lf Z%.2lf E%.2lf ; sets the jerk limits, mm/min\n" + : "M205 X%.2lf Y%.2lf Z%.2lf E%.2lf ; sets the jerk limits, mm/sec\n", + print.config().machine_max_jerk_x.values.front() * factor, + print.config().machine_max_jerk_y.values.front() * factor, + print.config().machine_max_jerk_z.values.front() * factor, + print.config().machine_max_jerk_e.values.front() * factor); + } } diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 06931a27c0..a1bd906b6d 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -911,12 +911,17 @@ void GCodeProcessor::apply_config(const PrintConfig& config) m_result.filament_vitrification_temperature[i] = static_cast(config.temperature_vitrification.get_at(i)); } - if (m_flavor == gcfMarlinLegacy || m_flavor == gcfMarlinFirmware || m_flavor == gcfKlipper) { + if (m_flavor == gcfMarlinLegacy || m_flavor == gcfMarlinFirmware || m_flavor == gcfKlipper || m_flavor == gcfRepRapFirmware) { m_time_processor.machine_limits = reinterpret_cast(config); if (m_flavor == gcfMarlinLegacy) { // Legacy Marlin does not have separate travel acceleration, it uses the 'extruding' value instead. m_time_processor.machine_limits.machine_max_acceleration_travel = m_time_processor.machine_limits.machine_max_acceleration_extruding; } + if (m_flavor == gcfRepRapFirmware) { + // RRF does not support setting min feedrates. Set them to zero. + m_time_processor.machine_limits.machine_min_travel_rate.values.assign(m_time_processor.machine_limits.machine_min_travel_rate.size(), 0.); + m_time_processor.machine_limits.machine_min_extruding_rate.values.assign(m_time_processor.machine_limits.machine_min_extruding_rate.size(), 0.); + } } // Filament load / unload times are not specific to a firmware flavor. Let anybody use it if they find it useful. diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index b87b6af672..cbdca7e928 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -99,8 +99,13 @@ public: } WipeTowerWriter& disable_linear_advance() { - m_gcode += (m_gcode_flavor == gcfKlipper ? (std::string("SET_PRESSURE_ADVANCE ADVANCE=0\n")) - : std::string("M900 K0\n")); + if(m_gcode_flavor == gcfKlipper) + m_gcode += "SET_PRESSURE_ADVANCE ADVANCE=0\n"; + else if(m_gcode_flavor == gcfRepRapFirmware) + m_gcode += std::string("M572 D") + std::to_string(m_current_tool) + " S0\n"; + else + m_gcode += "M900 K0\n"; + return *this; } diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index 5876f9fdd0..fe5ddbecfd 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -22,9 +22,12 @@ void GCodeWriter::apply_print_config(const PrintConfig &print_config) { this->config.apply(print_config, true); m_single_extruder_multi_material = print_config.single_extruder_multi_material.value; - bool is_marlin = print_config.gcode_flavor.value == gcfMarlinLegacy || print_config.gcode_flavor.value == gcfMarlinFirmware || print_config.gcode_flavor.value == gcfKlipper; - m_max_acceleration = std::lrint(is_marlin ? print_config.machine_max_acceleration_extruding.values.front() : 0); - m_max_jerk = std::lrint(is_marlin ? std::min(print_config.machine_max_jerk_x.values.front(), print_config.machine_max_jerk_y.values.front()) : 0); + bool use_mach_limits = print_config.gcode_flavor.value == gcfMarlinLegacy || + print_config.gcode_flavor.value == gcfMarlinFirmware || + print_config.gcode_flavor.value == gcfKlipper || + print_config.gcode_flavor.value == gcfRepRapFirmware; + m_max_acceleration = std::lrint(use_mach_limits ? print_config.machine_max_acceleration_extruding.values.front() : 0); + m_max_jerk = std::lrint(use_mach_limits ? std::min(print_config.machine_max_jerk_x.values.front(), print_config.machine_max_jerk_y.values.front()) : 0); } void GCodeWriter::set_extruders(std::vector extruder_ids) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index b36b47d4c1..b9d0dea647 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1570,7 +1570,7 @@ void PrintConfigDef::init_fff_params() def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); def->enum_values.push_back("marlin"); def->enum_values.push_back("klipper"); - //def->enum_values.push_back("reprapfirmware"); + def->enum_values.push_back("reprapfirmware"); //def->enum_values.push_back("repetier"); //def->enum_values.push_back("teacup"); //def->enum_values.push_back("makerware"); @@ -1581,8 +1581,9 @@ void PrintConfigDef::init_fff_params() //def->enum_values.push_back("smoothie"); //def->enum_values.push_back("no-extrusion"); def->enum_labels.push_back("Marlin(legacy)"); + def->enum_labels.push_back(L("Klipper")); + def->enum_labels.push_back("RepRapFirmware"); //def->enum_labels.push_back("RepRap/Sprinter"); - //def->enum_labels.push_back("RepRapFirmware"); //def->enum_labels.push_back("Repetier"); //def->enum_labels.push_back("Teacup"); //def->enum_labels.push_back("MakerWare (MakerBot)"); @@ -1592,7 +1593,6 @@ void PrintConfigDef::init_fff_params() //def->enum_labels.push_back("Machinekit"); //def->enum_labels.push_back("Smoothie"); //def->enum_labels.push_back(L("No extrusion")); - def->enum_labels.push_back(L("Klipper")); def->mode = comAdvanced; def->readonly = false; def->set_default_value(new ConfigOptionEnum(gcfMarlinLegacy)); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 9e009f7e31..637c12a294 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -32,7 +32,7 @@ namespace Slic3r { enum GCodeFlavor : unsigned char { - gcfMarlinLegacy, gcfKlipper, gcfRepRapSprinter, gcfRepRapFirmware, gcfRepetier, gcfTeacup, gcfMakerWare, gcfMarlinFirmware, gcfSailfish, gcfMach3, gcfMachinekit, + gcfMarlinLegacy, gcfKlipper, gcfRepRapFirmware, gcfRepRapSprinter, gcfRepetier, gcfTeacup, gcfMakerWare, gcfMarlinFirmware, gcfSailfish, gcfMach3, gcfMachinekit, gcfSmoothie, gcfNoExtrusion }; diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 94c6621b46..d195402015 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1097,10 +1097,11 @@ void GUI_App::post_init() std::string http_url = get_http_url(app_config->get_country_code()); std::string language = GUI::into_u8(current_language_code()); - this->preset_updater->sync(http_url, language, preset_bundle); + std::string network_ver = Slic3r::NetworkAgent::get_version(); + this->preset_updater->sync(http_url, language, network_ver, preset_bundle); //BBS: check new version - this->check_new_version(); + //this->check_new_version(); }); } @@ -2225,6 +2226,7 @@ bool GUI_App::on_init_inner() Bind(EVT_USER_LOGIN, &GUI_App::on_user_login, this); + copy_network_if_available(); on_init_network(); //BBS if load user preset failed @@ -2386,6 +2388,59 @@ bool GUI_App::on_init_inner() return true; } +void GUI_App::copy_network_if_available() +{ + std::string network_library, player_library, network_library_dst, player_library_dst; + std::string data_dir_str = data_dir(); + boost::filesystem::path data_dir_path(data_dir_str); + auto plugin_folder = data_dir_path / "plugins"; + auto cache_folder = data_dir_path / "ota"; +#if defined(_MSC_VER) || defined(_WIN32) + network_library = cache_folder.string() + "/bambu_networking.dll"; + player_library = cache_folder.string() + "/BambuSource.dll"; + network_library_dst = plugin_folder.string() + "/bambu_networking.dll"; + player_library_dst = plugin_folder.string() + "/BambuSource.dll"; +#elif defined(__WXMAC__) + network_library = cache_folder.string() + "/libbambu_networking.dylib"; + player_library = cache_folder.string() + "/libBambuSource.dylib"; + network_library_dst = plugin_folder.string() + "/libbambu_networking.dylib"; + player_library_dst = plugin_folder.string() + "/libBambuSource.dylib"; +#else + network_library = cache_folder.string() + "/libbambu_networking.so"; + player_library = cache_folder.string() + "/libBambuSource.so"; + network_library_dst = plugin_folder.string() + "/libbambu_networking.so"; + player_library_dst = plugin_folder.string() + "/libBambuSource.so"; +#endif + + BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< ": checking network_library " << network_library << ", player_library " << player_library; + std::string error_message; + if (boost::filesystem::exists(network_library)) { + CopyFileResult cfr = copy_file(network_library, network_library_dst, error_message, false); + if (cfr != CopyFileResult::SUCCESS) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__<< ": Copying failed(" << cfr << "): " << error_message; + return; + } + + static constexpr const auto perms = fs::owner_read | fs::owner_write | fs::group_read | fs::others_read; + fs::permissions(network_library_dst, perms); + fs::remove(network_library); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< ": Copying network library from" << network_library << " to " << network_library_dst<<" successfully."; + } + + if (boost::filesystem::exists(player_library)) { + CopyFileResult cfr = copy_file(player_library, player_library_dst, error_message, false); + if (cfr != CopyFileResult::SUCCESS) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__<< ": Copying failed(" << cfr << "): " << error_message; + return; + } + + static constexpr const auto perms = fs::owner_read | fs::owner_write | fs::group_read | fs::others_read; + fs::permissions(player_library_dst, perms); + fs::remove(player_library); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< ": Copying player library from" << player_library << " to " << player_library_dst<<" successfully."; + } +} + bool GUI_App::on_init_network(bool try_backup) { int load_agent_dll = Slic3r::NetworkAgent::initialize_network_module(); diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 561c609db7..7c83ed45c7 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -538,6 +538,7 @@ public: private: int updating_bambu_networking(); bool on_init_inner(); + void copy_network_if_available(); bool on_init_network(bool try_backup = false); void init_networking_callbacks(); void init_app_config(); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 6094c2119e..68099d351a 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1889,6 +1889,7 @@ void TabPrint::build() optgroup->append_single_option_line("tree_support_wall_count"); optgroup->append_single_option_line("tree_support_with_infill"); optgroup->append_single_option_line("support_top_z_distance", "support#top-z-distance"); + optgroup->append_single_option_line("support_bottom_z_distance", "support#bottom-z-distance"); optgroup->append_single_option_line("support_base_pattern", "support#base-pattern"); optgroup->append_single_option_line("support_base_pattern_spacing", "support#base-pattern"); //optgroup->append_single_option_line("support_angle"); @@ -3449,8 +3450,8 @@ void TabPrinter::toggle_options() // Disable silent mode for non-marlin firmwares. toggle_option("silent_mode", is_marlin_flavor); //BBS: extruder clearance of BBL printer can't be edited. - for (auto el : { "extruder_clearance_radius", "extruder_clearance_height_to_rod", "extruder_clearance_height_to_lid" }) - toggle_option(el, !is_BBL_printer); + //for (auto el : { "extruder_clearance_radius", "extruder_clearance_height_to_rod", "extruder_clearance_height_to_lid" }) + // toggle_option(el, !is_BBL_printer); // SoftFever: hide BBL specific settings for (auto el : diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index d4eafae624..8399fb2936 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -230,9 +230,10 @@ struct PresetUpdater::priv void prune_tmps() const; void sync_version() const; void parse_version_string(const std::string& body) const; - void sync_resources(std::string http_url, std::map &resources); + void sync_resources(std::string http_url, std::map &resources, bool check_patch = false, std::string current_version=""); void sync_config(std::string http_url, const VendorMap vendors); void sync_tooltip(std::string http_url, std::string language); + void sync_plugins(std::string http_url, std::string plugin_version); //BBS: refine preset update logic bool install_bundles_rsrc(std::vector bundles, bool snapshot) const; @@ -349,6 +350,7 @@ bool PresetUpdater::priv::extract_file(const fs::path &source_path, const fs::pa close_zip_reader(&archive); return res; } + BOOST_LOG_TRIVIAL(info) << "[BBL Updater]successfully extract file " << stat.m_file_index << " to "< &resources) +void PresetUpdater::priv::sync_resources(std::string http_url, std::map &resources, bool check_patch, std::string current_version_str) { std::map resource_list; - BOOST_LOG_TRIVIAL(info) << boost::format("[BBL Updater]: sync_resources get preferred setting version for app version %1%, url: %2%")%SLIC3R_APP_NAME%http_url; + BOOST_LOG_TRIVIAL(info) << boost::format("[BBL Updater]: sync_resources get preferred setting version for app version %1%, url: %2%, current_version_str %3%, check_patch %4%")%SLIC3R_APP_NAME%http_url%current_version_str%check_patch; std::string query_params = "?"; bool first = true; @@ -545,7 +547,7 @@ void PresetUpdater::priv::sync_resources(std::string http_url, std::mapsecond; } + else { + BOOST_LOG_TRIVIAL(warning) << boost::format("[BBL Updater]: online version=%1%, current_version=%2%, no need to download") % online_version.to_string() % current_version.to_string(); + } } } @@ -830,6 +849,28 @@ void PresetUpdater::priv::sync_tooltip(std::string http_url, std::string languag } } +void PresetUpdater::priv::sync_plugins(std::string http_url, std::string plugin_version) +{ + if (plugin_version == "00.00.00.00") { + BOOST_LOG_TRIVIAL(info) << "non need to sync plugins for there is no plugins currently."; + return; + } + std::string curr_version = SLIC3R_VERSION; + std::string using_version = curr_version.substr(0, 9) + "00"; + + try { + std::map resources + { + {"slicer/plugins/cloud", { using_version, "", "", cache_path.string(), {"plugins"}}} + }; + sync_resources(http_url, resources, true, plugin_version); + } + catch (std::exception& e) { + BOOST_LOG_TRIVIAL(warning) << format("[BBL Updater] sync_plugins: %1%", e.what()); + } +} + + bool PresetUpdater::priv::install_bundles_rsrc(std::vector bundles, bool snapshot) const { Updates updates; @@ -1092,7 +1133,7 @@ PresetUpdater::~PresetUpdater() //BBS: change directories by design //BBS: refine the preset updater logic -void PresetUpdater::sync(std::string http_url, std::string language, PresetBundle *preset_bundle) +void PresetUpdater::sync(std::string http_url, std::string language, std::string plugin_version, PresetBundle *preset_bundle) { //p->set_download_prefs(GUI::wxGetApp().app_config); if (!p->enabled_version_check && !p->enabled_config_update) { return; } @@ -1102,7 +1143,7 @@ void PresetUpdater::sync(std::string http_url, std::string language, PresetBundl // into the closure (but perhaps the compiler can elide this). VendorMap vendors = preset_bundle->vendors; - p->thread = std::thread([this, vendors, http_url, language]() { + p->thread = std::thread([this, vendors, http_url, language, plugin_version]() { this->p->prune_tmps(); if (p->cancel) return; @@ -1112,8 +1153,12 @@ void PresetUpdater::sync(std::string http_url, std::string language, PresetBundl this->p->sync_config(http_url, std::move(vendors)); if (p->cancel) return; - this->p->sync_tooltip(http_url, language); - }); + this->p->sync_plugins(http_url, plugin_version); + //if (p->cancel) + // return; + //remove the tooltip currently + //this->p->sync_tooltip(http_url, language); + }); } void PresetUpdater::slic3r_update_notify() diff --git a/src/slic3r/Utils/PresetUpdater.hpp b/src/slic3r/Utils/PresetUpdater.hpp index 4db6772849..306c0549fa 100644 --- a/src/slic3r/Utils/PresetUpdater.hpp +++ b/src/slic3r/Utils/PresetUpdater.hpp @@ -26,7 +26,7 @@ public: ~PresetUpdater(); // If either version check or config updating is enabled, get the appropriate data in the background and cache it. - void sync(std::string http_url, std::string language, PresetBundle *preset_bundle); + void sync(std::string http_url, std::string language, std::string plugin_version, PresetBundle *preset_bundle); // If version check is enabled, check if chaced online slic3r version is newer, notify if so. void slic3r_update_notify(); diff --git a/src/slic3r/Utils/bambu_networking.hpp b/src/slic3r/Utils/bambu_networking.hpp index 90abd50800..8d5be9c52b 100644 --- a/src/slic3r/Utils/bambu_networking.hpp +++ b/src/slic3r/Utils/bambu_networking.hpp @@ -36,7 +36,7 @@ namespace BBL { #define BAMBU_NETWORK_LIBRARY "bambu_networking" #define BAMBU_NETWORK_AGENT_NAME "bambu_network_agent" -#define BAMBU_NETWORK_AGENT_VERSION "01.03.00.02" +#define BAMBU_NETWORK_AGENT_VERSION "01.03.01.02" //iot preset type strings diff --git a/version.inc b/version.inc index e83442474d..747143168c 100644 --- a/version.inc +++ b/version.inc @@ -10,5 +10,5 @@ endif() if(NOT DEFINED BBL_INTERNAL_TESTING) set(BBL_INTERNAL_TESTING "1") endif() -set(SLIC3R_VERSION "01.03.00.25") -set(SoftFever_VERSION "1.3.3") +set(SLIC3R_VERSION "01.03.01.01") +set(SoftFever_VERSION "1.3.3.2")