mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-25 22:25:21 +00:00
Preparing for AMS drying support
This commit is contained in:
@@ -2598,7 +2598,7 @@ void StatusPanel::update_ams(MachineObject *obj)
|
||||
AMSModel ams_mode = AMSModel::GENERIC_AMS;
|
||||
|
||||
if (obj) {
|
||||
if (obj->get_printer_ams_type() == "f1") { ams_mode = AMSModel::EXTRA_AMS; }
|
||||
if (obj->get_printer_ams_type() == "f1") { ams_mode = AMSModel::AMS_LITE; }
|
||||
else if(obj->get_printer_ams_type() == "generic") { ams_mode = AMSModel::GENERIC_AMS; }
|
||||
obj->check_ams_filament_valid();
|
||||
}
|
||||
@@ -2618,7 +2618,7 @@ void StatusPanel::update_ams(MachineObject *obj)
|
||||
}
|
||||
|
||||
|
||||
m_ams_control->SetAmsModel(AMSModel::NO_AMS, ams_mode);
|
||||
m_ams_control->SetAmsModel(AMSModel::EXT_AMS, ams_mode);
|
||||
show_ams_group(false);
|
||||
|
||||
m_ams_control->show_auto_refill(false);
|
||||
|
||||
@@ -641,7 +641,7 @@ void AMSControl::SetActionState(bool button_status[])
|
||||
void AMSControl::EnterNoneAMSMode()
|
||||
{
|
||||
m_vams_lib->m_ams_model = m_ext_model;
|
||||
if(m_is_none_ams_mode == AMSModel::NO_AMS) return;
|
||||
if(m_is_none_ams_mode == AMSModel::EXT_AMS) return;
|
||||
m_panel_top->Hide();
|
||||
m_simplebook_amsitems->Hide();
|
||||
m_simplebook_amsitems->SetSelection(0);
|
||||
@@ -657,7 +657,7 @@ void AMSControl::EnterNoneAMSMode()
|
||||
m_amswin->Layout();
|
||||
m_amswin->Fit();
|
||||
Layout();
|
||||
m_is_none_ams_mode = AMSModel::NO_AMS;
|
||||
m_is_none_ams_mode = AMSModel::EXT_AMS;
|
||||
}
|
||||
|
||||
void AMSControl::EnterGenericAMSMode()
|
||||
@@ -692,13 +692,13 @@ void AMSControl::EnterGenericAMSMode()
|
||||
void AMSControl::EnterExtraAMSMode()
|
||||
{
|
||||
m_vams_lib->m_ams_model = m_ext_model;
|
||||
if(m_is_none_ams_mode == AMSModel::EXTRA_AMS) return;
|
||||
if(m_is_none_ams_mode == AMSModel::AMS_LITE) return;
|
||||
m_panel_top->Hide();
|
||||
m_simplebook_amsitems->Show();
|
||||
m_simplebook_amsitems->SetSelection(1);
|
||||
|
||||
|
||||
m_vams_lib->m_ams_model = AMSModel::EXTRA_AMS;
|
||||
m_vams_lib->m_ams_model = AMSModel::AMS_LITE;
|
||||
m_ams_tip->SetLabel(wxEmptyString);
|
||||
m_img_vams_tip->SetBitmap(create_scaled_bitmap("enable_ams_disable", this, 16));
|
||||
m_img_vams_tip->Disable();
|
||||
@@ -717,7 +717,7 @@ void AMSControl::EnterExtraAMSMode()
|
||||
m_amswin->Fit();
|
||||
Layout();
|
||||
Refresh(true);
|
||||
m_is_none_ams_mode = AMSModel::EXTRA_AMS;
|
||||
m_is_none_ams_mode = AMSModel::AMS_LITE;
|
||||
|
||||
}
|
||||
|
||||
@@ -836,7 +836,7 @@ void AMSControl::UpdateStepCtrl(bool is_extrusion)
|
||||
}
|
||||
|
||||
|
||||
if (m_ams_model == AMSModel::EXTRA_AMS || m_ext_model == AMSModel::EXTRA_AMS) {
|
||||
if (m_ams_model == AMSModel::AMS_LITE || m_ext_model == AMSModel::AMS_LITE) {
|
||||
m_filament_load_step->AppendItem(FILAMENT_CHANGE_STEP_STRING[FilamentStep::STEP_HEAT_NOZZLE]);
|
||||
m_filament_load_step->AppendItem(FILAMENT_CHANGE_STEP_STRING[FilamentStep::STEP_CHECK_POSITION]);
|
||||
m_filament_load_step->AppendItem(FILAMENT_CHANGE_STEP_STRING[FilamentStep::STEP_CUT_FILAMENT]);
|
||||
@@ -908,11 +908,11 @@ void AMSControl::show_noams_mode()
|
||||
show_vams(true);
|
||||
m_sizer_ams_tips->Show(true);
|
||||
|
||||
if (m_ams_model == AMSModel::NO_AMS) {
|
||||
if (m_ams_model == AMSModel::EXT_AMS) {
|
||||
EnterNoneAMSMode();
|
||||
} else if(m_ams_model == AMSModel::GENERIC_AMS){
|
||||
EnterGenericAMSMode();
|
||||
} else if (m_ams_model == AMSModel::EXTRA_AMS) {
|
||||
} else if (m_ams_model == AMSModel::AMS_LITE) {
|
||||
EnterExtraAMSMode();
|
||||
}
|
||||
}
|
||||
@@ -998,7 +998,7 @@ void AMSControl::UpdateAms(std::vector<AMSinfo> info, bool is_reset)
|
||||
if (m_ams_model == AMSModel::GENERIC_AMS){
|
||||
m_ams_cans_list = m_ams_generic_cans_list;
|
||||
}
|
||||
else if (m_ams_model == AMSModel::EXTRA_AMS) {
|
||||
else if (m_ams_model == AMSModel::AMS_LITE) {
|
||||
m_ams_cans_list = m_ams_extra_cans_list;
|
||||
}
|
||||
|
||||
@@ -1034,7 +1034,7 @@ void AMSControl::UpdateAms(std::vector<AMSinfo> info, bool is_reset)
|
||||
if (ifo.ams_id == cans->amsIndex) {
|
||||
cans->amsCans->m_info = ifo;
|
||||
cans->amsCans->Update(ifo);
|
||||
cans->amsCans->show_sn_value(m_ams_model == AMSModel::EXTRA_AMS?false:true);
|
||||
cans->amsCans->show_sn_value(m_ams_model == AMSModel::AMS_LITE?false:true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1045,7 +1045,7 @@ void AMSControl::UpdateAms(std::vector<AMSinfo> info, bool is_reset)
|
||||
}
|
||||
}
|
||||
|
||||
if (m_ams_model == AMSModel::NO_AMS && !m_vams_lib->is_selected()) {
|
||||
if (m_ams_model == AMSModel::EXT_AMS && !m_vams_lib->is_selected()) {
|
||||
m_vams_lib->OnSelected();
|
||||
}
|
||||
}
|
||||
@@ -1082,7 +1082,7 @@ void AMSControl::AddAms(AMSinfo info)
|
||||
void AMSControl::AddExtraAms(AMSinfo info)
|
||||
{
|
||||
AmsCansWindow* canswin = new AmsCansWindow();
|
||||
auto amscans = new AmsCans(m_simplebook_extra_cans, info, AMSModel::EXTRA_AMS);
|
||||
auto amscans = new AmsCans(m_simplebook_extra_cans, info, AMSModel::AMS_LITE);
|
||||
|
||||
canswin->amsIndex = info.ams_id;
|
||||
canswin->amsCans = amscans;
|
||||
@@ -1156,7 +1156,7 @@ void AMSControl::SwitchAms(std::string ams_id)
|
||||
if (m_ams_model == AMSModel::GENERIC_AMS) {
|
||||
m_simplebook_generic_cans->SetSelection(cans->amsCans->m_selection);
|
||||
}
|
||||
else if (m_ams_model == AMSModel::EXTRA_AMS) {
|
||||
else if (m_ams_model == AMSModel::AMS_LITE) {
|
||||
m_simplebook_extra_cans->SetSelection(cans->amsCans->m_selection);
|
||||
}
|
||||
}
|
||||
@@ -1321,7 +1321,7 @@ void AMSControl::SetExtruder(bool on_off, bool is_vams, std::string ams_now, wxC
|
||||
m_vams_road->OnVamsLoading(false);
|
||||
}
|
||||
}
|
||||
else if (m_ams_model == AMSModel::EXTRA_AMS || m_ext_model == AMSModel::EXTRA_AMS) {
|
||||
else if (m_ams_model == AMSModel::AMS_LITE || m_ext_model == AMSModel::AMS_LITE) {
|
||||
if (!is_vams && !on_off) {
|
||||
m_extruder->TurnOff();
|
||||
m_extruder->OnVamsLoading(false);
|
||||
@@ -1400,7 +1400,7 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
|
||||
m_extruder->OnAmsLoading(true, cans->amsCans->GetTagColr(canid));
|
||||
}
|
||||
}
|
||||
else if (m_ams_model == AMSModel::EXTRA_AMS) {
|
||||
else if (m_ams_model == AMSModel::AMS_LITE) {
|
||||
cans->amsCans->SetAmsStepExtra(canid, type, step);
|
||||
if (step != AMSPassRoadSTEP::AMS_ROAD_STEP_NONE) {
|
||||
m_extruder->OnAmsLoading(true, cans->amsCans->GetTagColr(canid));
|
||||
|
||||
@@ -104,9 +104,9 @@ public:
|
||||
std::string GetCurrentCan(std::string amsid);
|
||||
wxColour GetCanColour(std::string amsid, std::string canid);
|
||||
|
||||
AMSModel m_ams_model{AMSModel::NO_AMS};
|
||||
AMSModel m_ext_model{AMSModel::NO_AMS};
|
||||
AMSModel m_is_none_ams_mode{AMSModel::NO_AMS};
|
||||
AMSModel m_ams_model{AMSModel::EXT_AMS};
|
||||
AMSModel m_ext_model{AMSModel::EXT_AMS};
|
||||
AMSModel m_is_none_ams_mode{AMSModel::EXT_AMS};
|
||||
|
||||
void SetAmsModel(AMSModel mode, AMSModel ext_mode) {m_ams_model = mode; m_ext_model = ext_mode;};
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ bool AMSinfo::parse_ams_info(MachineObject *obj, Ams *ams, bool remain_flag, boo
|
||||
}
|
||||
|
||||
this->humidity_raw = ams->humidity_raw;
|
||||
this->ams_type = AMSModel(ams->type);
|
||||
|
||||
cans.clear();
|
||||
for (int i = 0; i < ams->trayList.size(); i++) {
|
||||
@@ -707,7 +708,7 @@ void AMSLib::on_left_down(wxMouseEvent &evt)
|
||||
top = (size.y - FromDIP(15) - m_bitmap_editable_light.GetBmpSize().y);
|
||||
bottom = size.y - FromDIP(15);
|
||||
}
|
||||
else if (m_ams_model == AMSModel::EXTRA_AMS) {
|
||||
else if (m_ams_model == AMSModel::AMS_LITE) {
|
||||
top = (size.y - FromDIP(20) - m_bitmap_editable_light.GetBmpSize().y);
|
||||
bottom = size.y - FromDIP(20);
|
||||
}
|
||||
@@ -759,7 +760,7 @@ void AMSLib::render(wxDC &dc)
|
||||
if (m_ams_model == AMSModel::GENERIC_AMS) {
|
||||
render_generic_text(dc);
|
||||
}
|
||||
else if (m_ams_model == AMSModel::EXTRA_AMS) {
|
||||
else if (m_ams_model == AMSModel::AMS_LITE) {
|
||||
render_extra_text(dc);
|
||||
}
|
||||
}
|
||||
@@ -977,7 +978,7 @@ void AMSLib::doRender(wxDC &dc)
|
||||
if (m_ams_model == AMSModel::GENERIC_AMS) {
|
||||
render_generic_lib(dc);
|
||||
}
|
||||
else if (m_ams_model == AMSModel::EXTRA_AMS) {
|
||||
else if (m_ams_model == AMSModel::AMS_LITE) {
|
||||
render_extra_lib(dc);
|
||||
}
|
||||
}
|
||||
@@ -1408,7 +1409,7 @@ AMSRoad::AMSRoad(wxWindow *parent, wxWindowID id, Caninfo info, int canindex, in
|
||||
for (int i = 1; i <= 5; i++) { ams_humidity_dark_imgs.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_dark", 32));}
|
||||
for (int i = 1; i <= 5; i++) { ams_humidity_no_num_imgs.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_no_num_light", 16)); }
|
||||
for (int i = 1; i <= 5; i++) { ams_humidity_no_num_dark_imgs.push_back(ScalableBitmap(this, "hum_level" + std::to_string(i) + "_no_num_dark", 16)); }
|
||||
|
||||
ams_sun_img = ScalableBitmap(this, "ams_drying", 16);
|
||||
if (m_rode_mode != AMSRoadMode::AMS_ROAD_MODE_VIRTUAL_TRAY) {
|
||||
create(parent, id, pos, size);
|
||||
}
|
||||
@@ -1701,6 +1702,7 @@ void AMSRoad::msw_rescale()
|
||||
for (auto& img : ams_humidity_dark_imgs) { img.msw_rescale(); }
|
||||
for (auto &img : ams_humidity_no_num_imgs) { img.msw_rescale(); }
|
||||
for (auto &img : ams_humidity_no_num_dark_imgs) { img.msw_rescale(); }
|
||||
ams_sun_img.msw_rescale();
|
||||
}
|
||||
|
||||
|
||||
@@ -1736,7 +1738,7 @@ void AmsCans::create(wxWindow *parent)
|
||||
}
|
||||
SetSizer(sizer_can);
|
||||
}
|
||||
else if(m_ams_model == AMSModel::EXTRA_AMS) {
|
||||
else if(m_ams_model == AMSModel::AMS_LITE) {
|
||||
sizer_can = new wxBoxSizer(wxVERTICAL);
|
||||
sizer_can_middle = new wxBoxSizer(wxHORIZONTAL);
|
||||
sizer_can_left = new wxBoxSizer(wxVERTICAL);
|
||||
@@ -1823,7 +1825,7 @@ void AmsCans::AddCan(Caninfo caninfo, int canindex, int maxcan, wxBoxSizer* size
|
||||
m_sizer_ams->Add(m_panel_lib, 1, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, FromDIP(3));
|
||||
m_sizer_ams->Add(m_panel_road, 0, wxALL, 0);
|
||||
}
|
||||
else if (m_ams_model == AMSModel::EXTRA_AMS)
|
||||
else if (m_ams_model == AMSModel::AMS_LITE)
|
||||
{
|
||||
m_sizer_ams = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_panel_road->Hide();
|
||||
@@ -1846,7 +1848,7 @@ void AmsCans::AddCan(Caninfo caninfo, int canindex, int maxcan, wxBoxSizer* size
|
||||
if (m_ams_model == AMSModel::GENERIC_AMS) {
|
||||
sizer->Add(amscan, 0, wxALL, 0);
|
||||
}
|
||||
else if (m_ams_model == AMSModel::EXTRA_AMS)
|
||||
else if (m_ams_model == AMSModel::AMS_LITE)
|
||||
{
|
||||
if (canindex > 1) {
|
||||
sizer->Prepend(amscan, 0, wxALL, 0);
|
||||
@@ -2100,7 +2102,7 @@ void AmsCans::doRender(wxDC& dc)
|
||||
dc.DrawBitmap(m_bitmap_extra_framework.bmp(), (size.x - m_bitmap_extra_framework.GetBmpSize().x) / 2, (size.y - m_bitmap_extra_framework.GetBmpSize().y) / 2);
|
||||
|
||||
//road for extra
|
||||
if (m_ams_model == AMSModel::EXTRA_AMS) {
|
||||
if (m_ams_model == AMSModel::AMS_LITE) {
|
||||
|
||||
auto end_top = size.x / 2 - FromDIP(99);
|
||||
auto passroad_width = 6;
|
||||
|
||||
@@ -36,11 +36,12 @@
|
||||
|
||||
namespace Slic3r { namespace GUI {
|
||||
|
||||
|
||||
enum AMSModel {
|
||||
NO_AMS = 0,
|
||||
EXT_AMS = 0, //ext
|
||||
GENERIC_AMS = 1,
|
||||
EXTRA_AMS = 2
|
||||
AMS_LITE = 2, //ams-lite
|
||||
N3F_AMS = 3,
|
||||
N3S_AMS = 4 //n3s single_ams
|
||||
};
|
||||
|
||||
enum ActionButton {
|
||||
@@ -160,6 +161,7 @@ public:
|
||||
int curreent_filamentstep;
|
||||
int ams_humidity = 0;
|
||||
int humidity_raw = -1;
|
||||
AMSModel ams_type = AMSModel::GENERIC_AMS;
|
||||
|
||||
bool parse_ams_info(MachineObject* obj, Ams *ams, bool remain_flag = false, bool humidity_flag = false);
|
||||
};
|
||||
@@ -396,7 +398,9 @@ public:
|
||||
|
||||
std::vector<ScalableBitmap> ams_humidity_no_num_imgs;
|
||||
std::vector<ScalableBitmap> ams_humidity_no_num_dark_imgs;
|
||||
|
||||
|
||||
ScalableBitmap ams_sun_img;
|
||||
|
||||
int m_humidity = { 0 };
|
||||
bool m_show_humidity = { false };
|
||||
bool m_vams_loading{false};
|
||||
|
||||
Reference in New Issue
Block a user