Fix setting AMS calib profile

ENH: calib support multi_extruder

1. backend support multi_extrude data structure
2. Compatible with third-party calibration

(cherry picked from commit bambulab/BambuStudio@21e6271e59)

Co-authored-by: zhimin.zeng <zhimin.zeng@bambulab.com>
This commit is contained in:
Noisyfox
2025-05-06 22:58:57 +08:00
parent 9b9c9ba569
commit dad7320f4b
9 changed files with 148 additions and 52 deletions

View File

@@ -32,6 +32,7 @@ enum class CalibState { Start = 0, Preset, Calibration, CoarseSave, FineCalibrat
struct Calib_Params
{
Calib_Params() : mode(CalibMode::Calib_None){};
int extruder_id = 0;
double start, end, step;
bool print_numbers;
double freqStartX, freqEndX, freqStartY, freqEndY;
@@ -52,8 +53,12 @@ class X1CCalibInfos
public:
struct X1CCalibInfo
{
int extruder_id = -1;
int tray_id;
int ams_id = 0;
int slot_id = 0;
int bed_temp;
NozzleVolumeType nozzle_volume_type = NozzleVolumeType::nvtNormal;
int nozzle_temp;
float nozzle_diameter;
std::string filament_id;
@@ -102,7 +107,11 @@ public:
CALI_RESULT_PROBLEM = 1,
CALI_RESULT_FAILED = 2,
};
int tray_id;
int extruder_id = -1;
NozzleVolumeType nozzle_volume_type;
int tray_id = 0;
int ams_id = 0;
int slot_id = 0;
int cali_idx = -1;
float nozzle_diameter;
std::string filament_id;
@@ -115,12 +124,31 @@ public:
struct PACalibIndexInfo
{
int tray_id;
int extruder_id = -1;
NozzleVolumeType nozzle_volume_type;
int tray_id = 0;
int ams_id = 0;
int slot_id = 0;
int cali_idx;
float nozzle_diameter;
std::string filament_id;
};
struct PACalibExtruderInfo
{
int extruder_id;
NozzleVolumeType nozzle_volume_type;
float nozzle_diameter;
std::string filament_id = "";
};
struct PACalibTabInfo
{
float pa_calib_tab_nozzle_dia;
int extruder_id;
NozzleVolumeType nozzle_volume_type;
};
class FlowRatioCalibResult
{
public: