ENH:optimized the loadl/unload steps of multiple nozzles

jira:[STUDIO-9098 ]

Change-Id: Id2d5770aaefb61d688d7e8023146a34952ff1211
This commit is contained in:
tao wang 2024-12-12 16:39:25 +08:00 committed by lane.wei
parent d1932d8c98
commit 23832a823c
3 changed files with 94 additions and 106 deletions

View File

@ -1312,6 +1312,7 @@ wxBoxSizer *StatusBasePanel::create_machine_control_page(wxWindow *parent)
bSizer_control->Add(temp_axis_ctrl_sizer, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, FromDIP(8));
bSizer_control->Add(0, 0, 0, wxTOP, FromDIP(6));
bSizer_control->Add(m_ams_ctrl_sizer, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, FromDIP(8));
bSizer_control->Add(0, 0, 0, wxTOP, FromDIP(6));
bSizer_control->Add(m_filament_load_sizer, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, FromDIP(8));
bSizer_control->Add(0, 0, 0, wxTOP, FromDIP(4));
@ -1976,8 +1977,8 @@ wxBoxSizer* StatusBasePanel::create_filament_group(wxWindow* parent)
m_filament_step = new FilamentLoad(m_filament_load_box, wxID_ANY);
m_filament_step->SetDoubleBuffered(true);
m_filament_step->set_min_size(wxSize(wxSize(FromDIP(586), FromDIP(215))));
m_filament_step->set_max_size(wxSize(wxSize(FromDIP(586), FromDIP(215))));
m_filament_step->set_min_size(wxSize(wxSize(FromDIP(576), FromDIP(215))));
m_filament_step->set_max_size(wxSize(wxSize(FromDIP(576), FromDIP(215))));
m_filament_step->SetBackgroundColour(*wxWHITE);
StateColor btn_bd_white(std::pair<wxColour, int>(wxColour(255, 255, 254), StateColor::Disabled), std::pair<wxColour, int>(wxColour(38, 46, 48), StateColor::Enabled));
@ -2000,7 +2001,7 @@ wxBoxSizer* StatusBasePanel::create_filament_group(wxWindow* parent)
});
sizer_box->Add(m_filament_step, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP|wxLEFT|wxRIGHT, FromDIP(10));
sizer_box->Add(m_filament_step, 0, wxALIGN_CENTER|wxTOP, FromDIP(10));
sizer_box->Add(0, 0, 0, wxTOP, FromDIP(5));
sizer_box->Add(m_button_retry, 0, wxLEFT, FromDIP(28));
sizer_box->Add(0, 0, 0, wxTOP, FromDIP(10));
@ -2008,7 +2009,7 @@ wxBoxSizer* StatusBasePanel::create_filament_group(wxWindow* parent)
m_filament_load_box->SetSizer(sizer_box);
m_filament_load_box->Layout();
m_filament_load_box->Fit();
sizer->Add(m_filament_load_box, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, FromDIP(10));
sizer->Add(m_filament_load_box, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 0);
return sizer;
}
@ -2017,26 +2018,30 @@ void StatusBasePanel::show_ams_group(bool show)
if (m_ams_control->IsShown() != show) {
m_ams_control->Show(show);
m_ams_control->show_noams_mode();
}
if (m_ams_control_box->IsShown() != show) {
m_ams_control_box->Show(show);
}
if (m_show_ams_group != show)
{
m_show_ams_group = show;
m_ams_control->Layout();
m_ams_control->Fit();
Layout();
Fit();
}
if (m_ams_control_box->IsShown() != show) {
m_ams_control_box->Show(show);
m_ams_control->Layout();
m_ams_control->Fit();
Layout();
Fit();
}
//if (m_show_ams_group != show){
// m_show_ams_group = show;
//}
}
void StatusBasePanel::show_filament_load_group(bool show)
{
if (m_filament_load_box->IsShown() != show) {
m_filament_load_box->Show(show);
m_button_retry->Show(show);
}
if (m_filament_step->IsShown() != show) {
@ -3032,15 +3037,15 @@ void StatusPanel::update_ams(MachineObject *obj)
if (obj && (obj->last_cali_version != obj->cali_version)) {
last_cali_version = obj->cali_version;
PACalibExtruderInfo cali_info;
cali_info.nozzle_diameter = obj->m_extder_data.extders[0].current_nozzle_diameter;
cali_info.use_extruder_id = false;
cali_info.nozzle_diameter = obj->m_extder_data.extders[0].current_nozzle_diameter;
cali_info.use_extruder_id = false;
cali_info.use_nozzle_volume_type = false;
CalibUtils::emit_get_PA_calib_infos(cali_info);
}
bool is_support_virtual_tray = obj->ams_support_virtual_tray;
bool is_support_filament_backup = obj->is_support_filament_backup;
AMSModel ams_mode = AMSModel::GENERIC_AMS;
bool is_support_virtual_tray = obj->ams_support_virtual_tray;
bool is_support_filament_backup = obj->is_support_filament_backup;
AMSModel ams_mode = AMSModel::GENERIC_AMS;
if (obj) {
if (obj->get_printer_ams_type() == "f1") { ams_mode = AMSModel::AMS_LITE; }
@ -3062,8 +3067,7 @@ void StatusPanel::update_ams(MachineObject *obj)
show_ams_group(false);
show_filament_load_group(false);
m_ams_control->show_auto_refill(false);
}
else {
} else {
m_ams_control->SetAmsModel(ams_mode, ams_mode);
m_filament_step->SetAmsModel(ams_mode, ams_mode);
show_ams_group(true);
@ -3088,9 +3092,7 @@ void StatusPanel::update_ams(MachineObject *obj)
AMSinfo info;
info.ams_id = ams->first;
if (ams->second->is_exists && info.parse_ams_info(obj, ams->second, obj->ams_calibrate_remain_flag, obj->is_support_ams_humidity)) {
if (ams_mode == AMSModel::AMS_LITE) {
info.ams_type = AMSModel::AMS_LITE;
}
if (ams_mode == AMSModel::AMS_LITE) { info.ams_type = AMSModel::AMS_LITE; }
ams_info.push_back(info);
}
}
@ -3103,7 +3105,7 @@ void StatusPanel::update_ams(MachineObject *obj)
ext_info.push_back(info);
}
std::string dev_id = obj->dev_id;
ExtderData data = obj->m_extder_data;
ExtderData data = obj->m_extder_data;
// must select a current can
m_ams_control->UpdateAms(ams_info, ext_info, data, dev_id, false);
@ -3115,16 +3117,13 @@ void StatusPanel::update_ams(MachineObject *obj)
last_reading_bits = obj->tray_reading_bits;
last_ams_version = obj->ams_version;
std::string curr_ams_id = m_ams_control->GetCurentAms();
std::string curr_can_id = m_ams_control->GetCurrentCan(curr_ams_id);
bool is_vt_tray = false;
if (obj->m_tray_tar == std::to_string(VIRTUAL_TRAY_MAIN_ID))
is_vt_tray = true;
bool is_vt_tray = false;
if (obj->m_tray_tar == std::to_string(VIRTUAL_TRAY_MAIN_ID)) is_vt_tray = true;
// set segment 1, 2
if (!obj->is_enable_np) {
if (obj->m_tray_now == std::to_string(255) || obj->m_tray_now == std::to_string(254)) {
m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
} else {
@ -3142,9 +3141,7 @@ void StatusPanel::update_ams(MachineObject *obj)
} else {
m_ams_control->SetExtruder(obj->is_filament_at_extruder(), false, obj->m_ams_id, m_ams_control->GetCanColour(obj->m_ams_id, obj->m_tray_id));
}
}
else {
} else {
/*right*/
if (obj->m_extder_data.extders.size() > 0) {
auto ext = obj->m_extder_data.extders[MAIN_NOZZLE_ID];
@ -3154,10 +3151,10 @@ void StatusPanel::update_ams(MachineObject *obj)
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
}
m_ams_control->SetExtruder(true, true, ext.snow.ams_id, m_ams_control->GetCanColour(obj->m_ams_id, obj->m_tray_id));
m_ams_control->SetExtruder(true, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
m_ams_control->SetExtruder(false, true, ext.snow.ams_id, m_ams_control->GetCanColour(obj->m_ams_id, obj->m_tray_id));
m_ams_control->SetExtruder(false, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
}
}
@ -3170,16 +3167,16 @@ void StatusPanel::update_ams(MachineObject *obj)
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
}
m_ams_control->SetExtruder(true, true, ext.snow.ams_id, m_ams_control->GetCanColour(obj->m_ams_id, obj->m_tray_id));
m_ams_control->SetExtruder(true, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
m_ams_control->SetExtruder(false, true, ext.snow.ams_id, m_ams_control->GetCanColour(obj->m_ams_id, obj->m_tray_id));
m_ams_control->SetExtruder(false, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
}
}
}
bool ams_loading_state = false;
auto ams_status_sub = obj->ams_status_sub;
auto ams_status_sub = obj->ams_status_sub;
int vt_tray_id = VIRTUAL_TRAY_DEPUTY_ID;
if (obj->is_enable_np) {
@ -3198,20 +3195,16 @@ void StatusPanel::update_ams(MachineObject *obj)
if (ams_status_sub == 0x02) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_HEAT_NOZZLE, FilamentStepType::STEP_TYPE_VT_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_HEAT_NOZZLE, FilamentStepType::STEP_TYPE_VT_LOAD);
}
else if (ams_status_sub == 0x05) {
} else if (ams_status_sub == 0x05) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, FilamentStepType::STEP_TYPE_VT_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, FilamentStepType::STEP_TYPE_VT_LOAD);
}
else if (ams_status_sub == 0x06) {
} else if (ams_status_sub == 0x06) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_CONFIRM_EXTRUDED, FilamentStepType::STEP_TYPE_VT_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_CONFIRM_EXTRUDED, FilamentStepType::STEP_TYPE_VT_LOAD);
}
else if (ams_status_sub == 0x07) {
} else if (ams_status_sub == 0x07) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PURGE_OLD_FILAMENT, FilamentStepType::STEP_TYPE_VT_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PURGE_OLD_FILAMENT, FilamentStepType::STEP_TYPE_VT_LOAD);
}
else {
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_IDLE, FilamentStepType::STEP_TYPE_VT_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_IDLE, FilamentStepType::STEP_TYPE_VT_LOAD);
ams_loading_state = false;
@ -3222,8 +3215,7 @@ void StatusPanel::update_ams(MachineObject *obj)
if (!obj->is_ams_unload()) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_HEAT_NOZZLE, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_HEAT_NOZZLE, FilamentStepType::STEP_TYPE_LOAD);
}
else {
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_HEAT_NOZZLE, FilamentStepType::STEP_TYPE_UNLOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_HEAT_NOZZLE, FilamentStepType::STEP_TYPE_UNLOAD);
}
@ -3231,8 +3223,7 @@ void StatusPanel::update_ams(MachineObject *obj)
if (!obj->is_ams_unload()) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_CUT_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_CUT_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
}
else {
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_CUT_FILAMENT, FilamentStepType::STEP_TYPE_UNLOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_CUT_FILAMENT, FilamentStepType::STEP_TYPE_UNLOAD);
}
@ -3240,23 +3231,21 @@ void StatusPanel::update_ams(MachineObject *obj)
if (!obj->is_ams_unload()) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PULL_CURR_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PULL_CURR_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
}
else {
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PULL_CURR_FILAMENT, FilamentStepType::STEP_TYPE_UNLOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PULL_CURR_FILAMENT, FilamentStepType::STEP_TYPE_UNLOAD);
}
} else if (ams_status_sub == 0x05) {
if (!obj->is_ams_unload()) {
if(m_is_load_with_temp){
if (m_is_load_with_temp) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_CUT_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_CUT_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
}else{
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
}
}
else {
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, FilamentStepType::STEP_TYPE_UNLOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, FilamentStepType::STEP_TYPE_UNLOAD);
}
@ -3264,8 +3253,7 @@ void StatusPanel::update_ams(MachineObject *obj)
if (!obj->is_ams_unload()) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
}
else {
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, FilamentStepType::STEP_TYPE_UNLOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, FilamentStepType::STEP_TYPE_UNLOAD);
}
@ -3274,27 +3262,15 @@ void StatusPanel::update_ams(MachineObject *obj)
if (m_is_load_with_temp) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PULL_CURR_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PULL_CURR_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
}else{
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PURGE_OLD_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PURGE_OLD_FILAMENT, FilamentStepType::STEP_TYPE_LOAD);
}
}
else {
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_PURGE_OLD_FILAMENT, FilamentStepType::STEP_TYPE_UNLOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_PURGE_OLD_FILAMENT, FilamentStepType::STEP_TYPE_UNLOAD);
}
}
else if (ams_status_sub == 0x08) {
if (!obj->is_ams_unload()) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_LOAD);
}
else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_UNLOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_UNLOAD);
}
}
else if (ams_status_sub == 0x0B) {
} else if (ams_status_sub == 0x08) {
if (!obj->is_ams_unload()) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_LOAD);
@ -3302,8 +3278,17 @@ void StatusPanel::update_ams(MachineObject *obj)
m_ams_control->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_UNLOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_UNLOAD);
}
}
else {
} else if (ams_status_sub == 0x09) {
//just wait
} else if (ams_status_sub == 0x0B) {
if (!obj->is_ams_unload()) {
m_ams_control->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_LOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_LOAD);
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_UNLOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_CHECK_POSITION, FilamentStepType::STEP_TYPE_UNLOAD);
}
} else {
m_ams_control->SetFilamentStep(FilamentStep::STEP_IDLE, FilamentStepType::STEP_TYPE_UNLOAD);
m_filament_step->SetFilamentStep(FilamentStep::STEP_IDLE, FilamentStepType::STEP_TYPE_UNLOAD);
ams_loading_state = false;

View File

@ -4353,37 +4353,24 @@ void AMSControl::SetExtruder(bool on_off, bool is_vams, std::string ams_now, wxC
}
else {
m_extruder->TurnOn(col);
if (item){
/*if (ams_now != GetCurentShowAms()) {
m_extruder->OnAmsLoading(false, item->m_info.nozzle_id, col);
}
else {
m_extruder->OnAmsLoading(true, item->m_info.nozzle_id, col);
}*/
}
}
/*if (is_vams && on_off) {
m_extruder->OnAmsLoading(false);
m_vams_extra_road->OnVamsLoading(true, col);
m_extruder->OnVamsLoading(true, col);
m_vams_road->OnVamsLoading(true, col);
}
else {
m_vams_extra_road->OnVamsLoading(false);
m_extruder->OnVamsLoading(false);
m_vams_road->OnVamsLoading(false);
}*/
}
else if (m_ams_model == AMSModel::AMS_LITE || m_ext_model == AMSModel::AMS_LITE) {
if (!on_off) {
m_extruder->TurnOff();
m_extruder->OnAmsLoading(false);
/*m_vams_extra_road->OnVamsLoading(false);
m_vams_road->OnVamsLoading(false);*/
}
else {
if (item) {
m_extruder->TurnOn(col);
m_extruder->OnAmsLoading(true, item->m_info.nozzle_id, col);
}
}
} else if (m_ams_model == AMSModel::N3F_AMS || m_ams_model == AMSModel::N3S_AMS) {
if (!on_off) {
m_extruder->TurnOff();
m_extruder->OnAmsLoading(false);
} else {
if (item) {
m_extruder->TurnOn(col);
m_extruder->OnAmsLoading(true, item->m_info.nozzle_id, col);
@ -4473,7 +4460,8 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
{
AmsItem* ams = nullptr;
auto amsit = m_ams_item_list.find(ams_id);
bool notfound = false;
bool notfound = false;
bool in_same_page = false;
if (amsit != m_ams_item_list.end()) {
ams = amsit->second;
@ -4490,6 +4478,21 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
int can_index = atoi(canid.c_str());
std::string ams_id_left = GetCurentShowAms(AMSPanelPos::LEFT_PANEL);
std::string ams_id_right = GetCurentShowAms(AMSPanelPos::RIGHT_PANEL);
/*check if in same page*/
for (auto it : pair_id) {
if ( (it.first == ams_id_left && it.second == ams_id) || (it.first == ams_id || it.second == ams_id_left)) {
in_same_page = true;
continue;
}
if ((it.first == ams_id_right && it.second == ams_id) || (it.first == ams_id || it.second == ams_id_right)) {
in_same_page = true;
continue;
}
}
auto model = AMSModel::AMS_LITE;
bool left = !IsAmsInRightPanel(ams_id);
@ -4505,11 +4508,11 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
else if (ams->m_info.cans.size() == 1){
for (auto it : pair_id){
if (it.first == ams_id){
length = left ? 145 : 45;
length = left ? 145 : 124;
break;
}
else if (it.second == ams_id){
length = left ? 45 : 145;
length = left ? 124 : 232;
break;
}
}
@ -4558,7 +4561,7 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
if (step == AMSPassRoadSTEP::AMS_ROAD_STEP_NONE) {
//cans->SetAmsStep(canid, type, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
ams->SetAmsStep(ams_id, canid, type, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
if (ams_id_left == ams_id || ams_id_right == ams_id) {
if (ams_id_left == ams_id || ams_id_right == ams_id || in_same_page) {
m_down_road->UpdatePassRoad(canid, pos, -1, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
m_extruder->OnAmsLoading(false, ams->m_info.nozzle_id);
}
@ -4566,7 +4569,7 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
if (step == AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP1) {
ams->SetAmsStep(ams_id, canid, type, AMSPassRoadSTEP::AMS_ROAD_STEP_1);
if (ams_id_left == ams_id || ams_id_right == ams_id) {
if (ams_id_left == ams_id || ams_id_right == ams_id || in_same_page) {
m_down_road->UpdatePassRoad(canid, pos, length, AMSPassRoadSTEP::AMS_ROAD_STEP_1);
m_extruder->OnAmsLoading(false, ams->m_info.nozzle_id);
}
@ -4578,7 +4581,7 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
if (step == AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2) {
ams->SetAmsStep(ams_id, canid, type, AMSPassRoadSTEP::AMS_ROAD_STEP_2);
if (ams_id_left == ams_id || ams_id_right == ams_id) {
if (ams_id_left == ams_id || ams_id_right == ams_id || in_same_page) {
m_down_road->UpdatePassRoad(canid, pos, length, AMSPassRoadSTEP::AMS_ROAD_STEP_2);
m_extruder->OnAmsLoading(true, ams->m_info.nozzle_id, ams->GetTagColr(canid));
}
@ -4589,7 +4592,7 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
}
if (step == AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3) {
ams->SetAmsStep(ams_id, canid, type, AMSPassRoadSTEP::AMS_ROAD_STEP_3);
if (ams_id_left == ams_id || ams_id_right == ams_id)
if (ams_id_left == ams_id || ams_id_right == ams_id || in_same_page)
{
m_down_road->UpdatePassRoad(canid, pos, length, AMSPassRoadSTEP::AMS_ROAD_STEP_3);
m_extruder->OnAmsLoading(true, ams->m_info.nozzle_id, ams->GetTagColr(canid));

View File

@ -499,7 +499,7 @@ void AMSextruderImage::doRender(wxDC &dc)
if (m_ams_loading) {
dc.SetPen(*wxTRANSPARENT_PEN);
dc.SetBrush(m_colour);
dc.DrawRectangle(FromDIP(3), FromDIP(10), size.x - FromDIP(6), size.y - FromDIP(20));
dc.DrawRectangle(FromDIP(2), FromDIP(10), size.x - FromDIP(3), size.y - FromDIP(20));
}
else{
dc.SetPen(*wxTRANSPARENT_PEN);
@ -957,7 +957,7 @@ void AMSLib::on_left_down(wxMouseEvent &evt)
auto top = 0;
auto bottom = 0;
if (m_ams_model == AMSModel::GENERIC_AMS || m_ams_model == AMSModel::N3F_AMS || m_ams_model == AMSModel::EXT_AMS) {
if (m_ams_model == AMSModel::GENERIC_AMS || m_ams_model == AMSModel::N3F_AMS || m_ams_model == AMSModel::N3S_AMS || m_ams_model == AMSModel::EXT_AMS) {
top = (size.y - FromDIP(15) - m_bitmap_editable_light.GetBmpSize().y);
bottom = size.y - FromDIP(15);
}