mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2026-02-15 17:09:43 -07:00
FIX: update check extruder type and diameter on sending to print; update trans
jira: [STUDIO-8650] [STUDIO-9220] [STUDIO-9392] Change-Id: Ib543b8043d517ce312e7489cbee72e93bf0d9757 (cherry picked from commit 77abf5ad6e57cf392b868d38e65610e4d0716977)
This commit is contained in:
parent
4600a38554
commit
b297ab18ee
3 changed files with 34 additions and 16 deletions
|
|
@ -40,6 +40,7 @@ src/slic3r/GUI/Widgets/SideTools.cpp
|
|||
src/slic3r/GUI/Widgets/AMSControl.cpp
|
||||
src/slic3r/GUI/Widgets/FanControl.cpp
|
||||
src/slic3r/GUI/Widgets/FilamentLoad.cpp
|
||||
src/slic3r/GUI/Widgets/TempInput.cpp
|
||||
src/slic3r/GUI/ImGuiWrapper.cpp
|
||||
src/slic3r/GUI/Jobs/ArrangeJob.cpp
|
||||
src/slic3r/GUI/Jobs/OrientJob.cpp
|
||||
|
|
|
|||
|
|
@ -1912,7 +1912,7 @@ bool SelectMachineDialog::is_blocking_printing(MachineObject* obj_)
|
|||
* @param tag_nozzle_diameter -- return the target nozzle_diameter but mismatch
|
||||
* @return is same or not
|
||||
/*************************************************************/
|
||||
bool SelectMachineDialog::is_same_nozzle_diameters(float &tag_nozzle_diameter) const
|
||||
bool SelectMachineDialog::is_same_nozzle_diameters(float& tag_nozzle_diameter) const
|
||||
{
|
||||
DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
|
||||
if (!dev) return false;
|
||||
|
|
@ -1929,11 +1929,22 @@ bool SelectMachineDialog::is_same_nozzle_diameters(float &tag_nozzle_diameter) c
|
|||
|
||||
try
|
||||
{
|
||||
auto extruders = wxGetApp().plater()->get_partplate_list().get_curr_plate()->get_used_extruders();
|
||||
for (auto i = 0; i < extruders.size(); i++) {
|
||||
auto extruder = extruders[i] - 1;
|
||||
tag_nozzle_diameter = float(opt_nozzle_diameters->get_at(extruder));
|
||||
if (tag_nozzle_diameter != obj_->m_extder_data.extders[0].current_nozzle_diameter) {
|
||||
auto used_extruder_idxs = wxGetApp().plater()->get_partplate_list().get_curr_plate()->get_used_extruders();/*the index is started from 1*/
|
||||
for (int extruder_idx : used_extruder_idxs)
|
||||
{
|
||||
if (opt_nozzle_diameters->size() < extruder_idx)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
tag_nozzle_diameter = float(opt_nozzle_diameters->get_at(extruder_idx));
|
||||
if (obj_->m_extder_data.extders.size() < extruder_idx)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (tag_nozzle_diameter != obj_->m_extder_data.extders[extruder_idx - 1].current_nozzle_diameter)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -2163,18 +2174,24 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event)
|
|||
+ "\n " + nozzle_in_printer
|
||||
+ "\n", ConfirmBeforeSendInfo::InfoLevel::Warning));
|
||||
}
|
||||
|
||||
std::string filament_type;
|
||||
if (!is_same_nozzle_type(obj_->m_extder_data.extders[0], filament_type))
|
||||
{
|
||||
has_slice_warnings = true;
|
||||
is_printing_block = true;
|
||||
|
||||
wxString nozzle_in_preset = wxString::Format(_L("Printing high temperature material (%s material) with %s may cause nozzle damage"), filament_type, format_steel_name(obj_->m_extder_data.extders[0].current_nozzle_type));
|
||||
confirm_text.push_back(ConfirmBeforeSendInfo(nozzle_in_preset, ConfirmBeforeSendInfo::InfoLevel::Warning));
|
||||
/*check nozzle type*/
|
||||
DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
|
||||
MachineObject* obj = dev ? dev->get_selected_machine() : nullptr;
|
||||
const std::vector<Extder>& extders = obj ? obj->m_extder_data.extders : std::vector<Extder>();
|
||||
for (const auto& extder : extders)
|
||||
{
|
||||
std::string filament_type;
|
||||
if (!is_same_nozzle_type(extder, filament_type))
|
||||
{
|
||||
has_slice_warnings = true;
|
||||
is_printing_block = true;
|
||||
wxString nozzle_in_preset = wxString::Format(_L("Printing high temperature material(%s material) with %s may cause nozzle damage"),
|
||||
filament_type, format_steel_name(obj_->m_extder_data.extders[0].current_nozzle_type));
|
||||
confirm_text.push_back(ConfirmBeforeSendInfo(nozzle_in_preset, ConfirmBeforeSendInfo::InfoLevel::Warning));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (has_slice_warnings) {
|
||||
wxString confirm_title = _L("Warning");
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ void TempInput::Warning(bool warn, WarningType type)
|
|||
|
||||
wxString warning_string;
|
||||
if (type == WarningType::WARNING_TOO_HIGH)
|
||||
warning_string = _L("The maximum temperature cannot exceed" + wxString::Format("%d", max_temp));
|
||||
warning_string = _L("The maximum temperature cannot exceed " + wxString::Format("%d", max_temp));
|
||||
else if (type == WarningType::WARNING_TOO_LOW)
|
||||
warning_string = _L("The minmum temperature should not be less than " + wxString::Format("%d", max_temp));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue