FIX: update the extruder image in status panel

jira: [STUDIO-10732]
Change-Id: I5437c4ef1538f0022f97c7ef7fb40ec2242328ed
This commit is contained in:
xin.zhang 2025-03-06 19:43:59 +08:00 committed by lane.wei
parent 609a4c0e52
commit f5c49c89a8
9 changed files with 97 additions and 12 deletions

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,52 @@
<svg width="35" height="51" viewBox="0 0 35 51" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.4459 7.11328C5.19561 7.11328 0.939453 11.3694 0.939453 16.6197V46.9109H34.3864V16.6197C34.3864 11.3694 30.1302 7.11328 24.88 7.11328H10.4459ZM17.6635 34.2098C21.5216 34.2098 24.6492 31.0822 24.6492 27.224C24.6492 23.3659 21.5216 20.2383 17.6635 20.2383C13.8054 20.2383 10.6777 23.3659 10.6777 27.224C10.6777 31.0822 13.8054 34.2098 17.6635 34.2098Z" fill="#888888"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.8798 10.5039C7.94212 10.5039 4.75 13.696 4.75 17.6337V43.1041H30.5761V17.6337C30.5761 13.696 27.384 10.5039 23.4463 10.5039H11.8798ZM17.6635 34.2098C21.5216 34.2098 24.6492 31.0822 24.6492 27.224C24.6492 23.3659 21.5216 20.2383 17.6635 20.2383C13.8054 20.2383 10.6777 23.3659 10.6777 27.224C10.6777 31.0822 13.8054 34.2098 17.6635 34.2098Z" fill="#A5A5A5"/>
<path d="M14.0645 46.9102H21.6853L21.0502 49.4504H14.6995L14.0645 46.9102Z" fill="#838383"/>
<path d="M16.6055 49.4492H18.7224L18.546 50.296H16.7819L16.6055 49.4492Z" fill="#AFAFAF"/>
<path d="M0.939453 42.2539H8.1369V49.028H4.53818L0.939453 47.2453V42.2539Z" fill="#A4A4A4"/>
<path d="M34.3867 42.2539H27.1893V49.028H30.788L34.3867 47.2453V42.2539Z" fill="#A4A4A4"/>
<rect x="4.75" y="42.2539" width="25.8261" height="5.08055" fill="#D0D0D0"/>
<rect x="4.75" y="43.5234" width="25.8261" height="3.81041" fill="#C2C2C2"/>
<ellipse cx="17.6642" cy="7.74835" rx="4.44548" ry="0.635069" fill="#8C8C8C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M21.2604 0.339844H14.4863V7.53644V7.53729H14.4863C14.49 7.77072 16.005 7.95982 17.8734 7.95982C19.7417 7.95982 21.2567 7.77072 21.2604 7.53729H21.2604V7.53644V0.339844Z" fill="#9F9F9F"/>
<rect x="15.9316" y="1.62109" width="4.07726" height="4.89271" rx="0.915493" fill="#C5C5C5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.6631 34.7559C21.8122 34.7559 25.1758 31.3923 25.1758 27.2432C25.1758 23.094 21.8122 19.7305 17.6631 19.7305C13.5139 19.7305 10.1504 23.094 10.1504 27.2432C10.1504 31.3923 13.5139 34.7559 17.6631 34.7559ZM17.6631 38.2559C23.7452 38.2559 28.6758 33.3253 28.6758 27.2432C28.6758 21.161 23.7452 16.2305 17.6631 16.2305C11.5809 16.2305 6.65039 21.161 6.65039 27.2432C6.65039 33.3253 11.5809 38.2559 17.6631 38.2559Z" fill="#CDCDCD"/>
<g opacity="0.35">
<path d="M17.665 19.7871L18.1327 16.2422H17.2031L17.665 19.7871Z" fill="#818181"/>
<path d="M16.3727 19.898L16.2168 16.3242L15.2988 16.4859L16.3727 19.898Z" fill="#818181"/>
<path d="M15.118 20.239L14.3386 16.7461L13.4668 17.0636L15.118 20.239Z" fill="#818181"/>
<path d="M13.9403 20.7829L12.5662 17.4805L11.7637 17.9481L13.9403 20.7829Z" fill="#818181"/>
<path d="M12.8729 21.5255L10.9504 18.5117L10.2402 19.1122L12.8729 21.5255Z" fill="#818181"/>
<path d="M11.9552 22.4452L9.54185 19.8125L8.94141 20.5226L11.9552 22.4452Z" fill="#818181"/>
<path d="M11.2106 23.5164L8.37585 21.3398L7.9082 22.1424L11.2106 23.5164Z" fill="#818181"/>
<path d="M10.659 24.6942L7.48356 23.043L7.16602 23.9148L10.659 24.6942Z" fill="#818181"/>
<path d="M10.3257 25.945L6.91361 24.8711L6.75195 25.7891L10.3257 25.945Z" fill="#818181"/>
<path d="M10.2109 27.2392L6.66602 26.7773V27.7069L10.2109 27.2392Z" fill="#818181"/>
<path d="M10.3257 28.5352L6.75195 28.6968L6.91361 29.609L10.3257 28.5352Z" fill="#818181"/>
<path d="M10.659 29.793L7.16602 30.5666L7.48356 31.4442L10.659 29.793Z" fill="#818181"/>
<path d="M11.2106 30.9688L7.9082 32.3371L8.37585 33.1453L11.2106 30.9688Z" fill="#818181"/>
<path d="M11.9552 32.0352L8.94141 33.9577L9.54185 34.6736L11.9552 32.0352Z" fill="#818181"/>
<path d="M12.8729 32.9453L10.2402 35.3644L10.9504 35.9648L12.8729 32.9453Z" fill="#818181"/>
<path d="M13.9403 33.6953L11.7637 36.5359L12.5662 36.9977L13.9403 33.6953Z" fill="#818181"/>
<path d="M15.118 34.2383L13.4668 37.4137L14.3386 37.7312L15.118 34.2383Z" fill="#818181"/>
<path d="M16.3727 34.582L15.2988 37.9884L16.2168 38.15L16.3727 34.582Z" fill="#818181"/>
<path d="M17.665 34.6992L17.2031 38.2441H18.1327L17.665 34.6992Z" fill="#818181"/>
<path d="M18.957 34.582L19.1187 38.15L20.0309 37.9884L18.957 34.582Z" fill="#818181"/>
<path d="M20.2168 34.2383L20.9904 37.7312L21.868 37.4137L20.2168 34.2383Z" fill="#818181"/>
<path d="M21.3945 33.6953L22.7628 36.9977L23.5711 36.5359L21.3945 33.6953Z" fill="#818181"/>
<path d="M22.457 32.9453L24.3796 35.9648L25.0955 35.3644L22.457 32.9453Z" fill="#818181"/>
<path d="M23.373 32.0352L25.7921 34.6736L26.3926 33.9577L23.373 32.0352Z" fill="#818181"/>
<path d="M24.1191 30.9688L26.9597 33.1453L27.4216 32.3371L24.1191 30.9688Z" fill="#818181"/>
<path d="M24.668 29.793L27.8434 31.4442L28.1609 30.5666L24.668 29.793Z" fill="#818181"/>
<path d="M25.0078 28.5352L28.4142 29.609L28.5758 28.6968L25.0078 28.5352Z" fill="#818181"/>
<path d="M25.1172 27.2392L28.6621 27.7069V26.7773L25.1172 27.2392Z" fill="#818181"/>
<path d="M25.0078 25.945L28.5758 25.7891L28.4142 24.8711L25.0078 25.945Z" fill="#818181"/>
<path d="M24.668 24.6942L28.1609 23.9148L27.8434 23.043L24.668 24.6942Z" fill="#818181"/>
<path d="M24.1191 23.5164L27.4216 22.1424L26.9597 21.3398L24.1191 23.5164Z" fill="#818181"/>
<path d="M23.373 22.4452L26.3926 20.5226L25.7921 19.8125L23.373 22.4452Z" fill="#818181"/>
<path d="M22.457 21.5255L25.0955 19.1122L24.3796 18.5117L22.457 21.5255Z" fill="#818181"/>
<path d="M21.3945 20.7829L23.5711 17.9481L22.7628 17.4805L21.3945 20.7829Z" fill="#818181"/>
<path d="M20.2168 20.239L21.868 17.0636L20.9904 16.7461L20.2168 20.239Z" fill="#818181"/>
<path d="M18.957 19.898L20.0309 16.4859L19.1187 16.3242L18.957 19.898Z" fill="#818181"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -615,10 +615,17 @@ bool MachineObject::get_printer_is_enclosed() const
return DeviceManager::get_printer_is_enclosed(printer_type);
}
bool MachineObject::is_series_n() const { return DeviceManager::get_printer_series(printer_type) == "series_n"; };
bool MachineObject::is_series_p() const { return DeviceManager::get_printer_series(printer_type) == "series_p1p"; };
bool MachineObject::is_series_x() const { return DeviceManager::get_printer_series(printer_type) == "series_x1"; };
bool MachineObject::is_series_o() const { return DeviceManager::get_printer_series(printer_type) == "series_o"; };
bool MachineObject::is_series_n(const std::string& series_str) { return series_str == "series_n"; }
bool MachineObject::is_series_p(const std::string& series_str) { return series_str == "series_p1p";}
bool MachineObject::is_series_x(const std::string& series_str) { return series_str == "series_x1"; }
bool MachineObject::is_series_o(const std::string& series_str) { return series_str == "series_o"; }
bool MachineObject::is_series_n() const { return is_series_n(DeviceManager::get_printer_series(printer_type)); }
bool MachineObject::is_series_p() const { return is_series_p(DeviceManager::get_printer_series(printer_type)); }
bool MachineObject::is_series_x() const { return is_series_x(DeviceManager::get_printer_series(printer_type)); }
bool MachineObject::is_series_o() const { return is_series_o(DeviceManager::get_printer_series(printer_type)); }
std::string MachineObject::get_printer_series_str() const{ return DeviceManager::get_printer_series(printer_type);};
void MachineObject::reload_printer_settings()
{

View File

@ -629,11 +629,18 @@ public:
bool get_printer_is_enclosed() const;
// check printer device series
static bool is_series_n(const std::string& series_str);
static bool is_series_p(const std::string& series_str);
static bool is_series_x(const std::string& series_str);
static bool is_series_o(const std::string& series_str);
bool is_series_n() const;
bool is_series_p() const;
bool is_series_x() const;
bool is_series_o() const;
std::string get_printer_series_str() const;
void reload_printer_settings();
std::string printer_thumbnail_img;

View File

@ -3227,7 +3227,7 @@ void StatusPanel::update_ams(MachineObject *obj)
ExtderData data = obj->m_extder_data;
// must select a current can
m_ams_control->UpdateAms(ams_info, ext_info, data, dev_id, false);
m_ams_control->UpdateAms(obj->get_printer_series_str(), ams_info, ext_info, data, dev_id, false);
last_tray_exist_bits = obj->tray_exist_bits;
last_ams_exist_bits = obj->ams_exist_bits;

View File

@ -3310,7 +3310,7 @@ std::vector<AMSinfo> AMSControl::GenerateSimulateData() {
}
void AMSControl::UpdateAms(std::vector<AMSinfo> ams_info, std::vector<AMSinfo>ext_info, ExtderData data, std::string dev_id, bool is_reset, bool test)
void AMSControl::UpdateAms(const std::string& series_name, std::vector<AMSinfo> ams_info, std::vector<AMSinfo>ext_info, ExtderData data, std::string dev_id, bool is_reset, bool test)
{
if (!test){
// update item
@ -3479,6 +3479,9 @@ void AMSControl::UpdateAms(std::vector<AMSinfo> ams_info, std::vector<AMSinfo>ex
}
}
}
/*update ams extruder*/
m_extruder->updateNozzleNum(m_extder_data.total_extder_count, series_name);
}
void AMSControl::AddAmsPreview(AMSinfo info, AMSModel type)

View File

@ -152,7 +152,7 @@ public:
void CreateAmsDoubleNozzle();
void CreateAmsSingleNozzle();
void ClearAms();
void UpdateAms(std::vector<AMSinfo> ams_info, std::vector<AMSinfo> ext_info, ExtderData data, std::string dev_id, bool is_reset = true, bool test = false);
void UpdateAms(const std::string& series_name, std::vector<AMSinfo> ams_info, std::vector<AMSinfo> ext_info, ExtderData data, std::string dev_id, bool is_reset = true, bool test = false);
std::vector<AMSinfo> GenerateSimulateData();
void AddAms(AMSinfo info, AMSPanelPos pos = AMSPanelPos::LEFT_PANEL);

View File

@ -766,9 +766,10 @@ void AMSextruder::OnAmsLoading(bool load, int nozzle_id, wxColour col /*= AMS_CO
}
}
void AMSextruder::updateNozzleNum(int nozzle_num)
void AMSextruder::updateNozzleNum(int nozzle_num, const string& series_name)
{
if (m_nozzle_num == nozzle_num) return;
if (m_nozzle_num == nozzle_num && m_series_name == series_name) return;
m_series_name = series_name;
m_nozzle_num = nozzle_num;
this->DestroyChildren();
@ -786,7 +787,19 @@ void AMSextruder::updateNozzleNum(int nozzle_num)
}
else
{
m_left_extruder = new AMSextruderImage(this, wxID_ANY, "single_nozzle", AMS_EXTRUDER_SINGLE_NOZZLE_BITMAP_SIZE);
if (MachineObject::is_series_n(m_series_name))
{
m_left_extruder = new AMSextruderImage(this, wxID_ANY, "single_nozzle_n", AMS_EXTRUDER_SINGLE_NOZZLE_BITMAP_SIZE);
}
else if(MachineObject::is_series_x(m_series_name) || MachineObject::is_series_p(m_series_name))
{
m_left_extruder = new AMSextruderImage(this, wxID_ANY, "single_nozzle_xp", AMS_EXTRUDER_SINGLE_NOZZLE_BITMAP_SIZE);
}
else
{
m_left_extruder = new AMSextruderImage(this, wxID_ANY, "single_nozzle_xp", AMS_EXTRUDER_SINGLE_NOZZLE_BITMAP_SIZE);
}
m_left_extruder->setShowState(true);
m_right_extruder->setShowState(false);
m_bitmap_sizer->Add(m_left_extruder, 0, wxALIGN_LEFT | wxALIGN_TOP, 0);
@ -794,6 +807,7 @@ void AMSextruder::updateNozzleNum(int nozzle_num)
}
SetSizer(m_bitmap_sizer);
Layout();
Refresh();
}

View File

@ -398,7 +398,9 @@ private:
class AMSextruder : public wxWindow
{
private:
int m_nozzle_num = -1;
int m_nozzle_num = -1;
string m_series_name;
public:
void TurnOn(wxColour col);
void TurnOff();
@ -407,7 +409,7 @@ public:
void msw_rescale();
void has_ams(bool hams) {m_has_vams = hams; Refresh();};
void no_ams_mode(bool mode) {m_none_ams_mode = mode; Refresh();};
void updateNozzleNum(int nozzle_num);
void updateNozzleNum(int nozzle_num, const std::string& series_name = string());
bool m_none_ams_mode{true};
bool m_has_vams{false};