From d9ceb3911ef0acc3a68fdb515c709d3dd5cdaa98 Mon Sep 17 00:00:00 2001 From: SoftFever <103989404+SoftFever@users.noreply.github.com> Date: Mon, 22 Aug 2022 16:58:03 +0800 Subject: [PATCH] add chamber temperature option for filament --- src/libslic3r/GCode.cpp | 1 + src/libslic3r/Preset.cpp | 2 +- src/libslic3r/Print.cpp | 1 + src/libslic3r/PrintConfig.cpp | 9 +++++++++ src/libslic3r/PrintConfig.hpp | 1 + src/slic3r/GUI/Tab.cpp | 4 ++++ 6 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 006b644e8a..2c2c7d57fa 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1510,6 +1510,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato m_placeholder_parser.set("bed_temperature", new ConfigOptionInts(*bed_temp_opt)); m_placeholder_parser.set("bed_temperature_initial_layer_single", new ConfigOptionInt(first_bed_temp_opt->get_at(initial_extruder_id))); m_placeholder_parser.set("bed_temperature_initial_layer_vector", new ConfigOptionString("")); + m_placeholder_parser.set("chamber_temperature",new ConfigOptionInt(m_config.chamber_temperature)); //BBS: calculate the volumetric speed of outer wall. Ignore pre-object setting and multi-filament, and just use the default setting { diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index ce10743df1..aedcc0915c 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -689,7 +689,7 @@ static std::vector s_Preset_print_options { static std::vector s_Preset_filament_options { /*"filament_colour", */"filament_diameter", "filament_type", "filament_soluble", "filament_is_support", "filament_max_volumetric_speed", "filament_flow_ratio", "filament_density", "filament_cost", "filament_minimal_purge_on_wipe_tower", - "nozzle_temperature", "nozzle_temperature_initial_layer", + "chamber_temperature", "nozzle_temperature", "nozzle_temperature_initial_layer", // BBS "cool_plate_temp", "eng_plate_temp", "hot_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", "hot_plate_temp_initial_layer", // "bed_type", diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 710c74b18d..0e06f58669 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -163,6 +163,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n } else if ( opt_key == "print_sequence" || opt_key == "filament_type" + || opt_key == "chamber_temperature" || opt_key == "nozzle_temperature_initial_layer" || opt_key == "filament_minimal_purge_on_wipe_tower" || opt_key == "filament_max_volumetric_speed" diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 5a3da2a51f..dbc70122a4 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -2476,6 +2476,15 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(false)); + def = this->add("chamber_temperature", coInt); + def->label = L("Chamber temperature"); + def->tooltip = L("Target chamber temperature"); + def->sidetext = L("°C"); + def->full_label = L("Chamber temperature"); + def->min = 0; + def->max = max_temp; + def->set_default_value(new ConfigOptionInt(0)); + def = this->add("nozzle_temperature", coInts); def->label = L("Other layers"); def->tooltip = L("Nozzle temperature for layers after the initial one"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 05d35fe063..d0b5b5618a 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -839,6 +839,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE( ((ConfigOptionBool, spiral_mode)) ((ConfigOptionInt, standby_temperature_delta)) ((ConfigOptionInts, nozzle_temperature)) + ((ConfigOptionInt , chamber_temperature)) ((ConfigOptionBools, wipe)) // BBS ((ConfigOptionInts, bed_temperature_difference)) diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index c86d66d9d5..330acc3df9 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -2413,6 +2413,10 @@ void TabFilament::build() optgroup = page->new_optgroup(L("Print temperature")); optgroup->split_multi_line = true; optgroup->option_label_at_right = true; + line = { L("Chamber"), L("Chamber temperature") }; + line.append_option(optgroup->get_option("chamber_temperature")); + optgroup->append_line(line); + line = { L("Nozzle"), L("Nozzle temperature when printing") }; line.append_option(optgroup->get_option("nozzle_temperature_initial_layer")); line.append_option(optgroup->get_option("nozzle_temperature"));