ENH: filament map params switch to global param

1.Add more filament map modes
2.Filament map and mode are set as project config
3.Plate filament map is only valid when plate filament mode is
manual

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I33b2f853e0b77b9d605be1f2f1172b44df43da15
(cherry picked from commit e45f8c6dc2146e1e31a1c21e8aaada540af112d0)
This commit is contained in:
xun.zhang
2025-09-06 23:49:11 +08:00
committed by Noisyfox
parent 66814d687e
commit 05bf5c114b
20 changed files with 218 additions and 115 deletions
+13 -11
View File
@@ -105,7 +105,6 @@ private:
bool m_slice_result_valid;
bool m_apply_invalid {false};
float m_slice_percent;
bool m_has_auto_filament_map_result{false};
Print *m_print; //Print reference, not own it, no need to serialize
GCodeProcessorResult *m_gcode_result;
@@ -246,6 +245,19 @@ public:
// @return PrintSequence::{ByLayer,ByObject}
PrintSequence get_real_print_seq(bool* plate_same_as_global=nullptr) const;
std::vector<int> get_real_filament_maps(const DynamicConfig& g_config, bool* use_global_param = nullptr)const;
FilamentMapMode get_real_filament_map_mode(const DynamicConfig& g_config,bool * use_global_param = nullptr) const;
FilamentMapMode get_filament_map_mode() const;
void set_filament_map_mode(const FilamentMapMode& mode);
// get filament map, 0 based filament ids, 1 based extruder ids
std::vector<int> get_filament_maps() const;
void set_filament_maps(const std::vector<int>& f_maps);
// remove filament map and map mode in profiles
void clear_filament_map_info();
bool has_spiral_mode_config() const;
bool get_spiral_vase_mode() const;
void set_spiral_vase_mode(bool spiral_mode, bool as_global);
@@ -492,16 +504,6 @@ public:
void print() const;
FilamentMapMode get_filament_map_mode();
void set_filament_map_mode(const FilamentMapMode& mode);
bool has_auto_filament_map_reslut();
void set_auto_filament_map_result(bool has_result);
// get filament map, 0 based filament ids, 1 based extruder ids
std::vector<int> get_filament_maps();
void set_filament_maps(const std::vector<int>& f_maps);
const std::vector<std::vector<int>> &get_unprintable_filament_ids();
void set_unprintable_filament_ids(const std::vector<std::vector<int>> &filament_ids);