mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-19 19:33:47 +00: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:
@@ -40,6 +40,7 @@ src/slic3r/GUI/Widgets/SideTools.cpp
|
|||||||
src/slic3r/GUI/Widgets/AMSControl.cpp
|
src/slic3r/GUI/Widgets/AMSControl.cpp
|
||||||
src/slic3r/GUI/Widgets/FanControl.cpp
|
src/slic3r/GUI/Widgets/FanControl.cpp
|
||||||
src/slic3r/GUI/Widgets/FilamentLoad.cpp
|
src/slic3r/GUI/Widgets/FilamentLoad.cpp
|
||||||
|
src/slic3r/GUI/Widgets/TempInput.cpp
|
||||||
src/slic3r/GUI/ImGuiWrapper.cpp
|
src/slic3r/GUI/ImGuiWrapper.cpp
|
||||||
src/slic3r/GUI/Jobs/ArrangeJob.cpp
|
src/slic3r/GUI/Jobs/ArrangeJob.cpp
|
||||||
src/slic3r/GUI/Jobs/OrientJob.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
|
* @param tag_nozzle_diameter -- return the target nozzle_diameter but mismatch
|
||||||
* @return is same or not
|
* @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();
|
DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
|
||||||
if (!dev) return false;
|
if (!dev) return false;
|
||||||
@@ -1929,11 +1929,22 @@ bool SelectMachineDialog::is_same_nozzle_diameters(float &tag_nozzle_diameter) c
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
auto extruders = wxGetApp().plater()->get_partplate_list().get_curr_plate()->get_used_extruders();
|
auto used_extruder_idxs = wxGetApp().plater()->get_partplate_list().get_curr_plate()->get_used_extruders();/*the index is started from 1*/
|
||||||
for (auto i = 0; i < extruders.size(); i++) {
|
for (int extruder_idx : used_extruder_idxs)
|
||||||
auto extruder = extruders[i] - 1;
|
{
|
||||||
tag_nozzle_diameter = float(opt_nozzle_diameters->get_at(extruder));
|
if (opt_nozzle_diameters->size() < extruder_idx)
|
||||||
if (tag_nozzle_diameter != obj_->m_extder_data.extders[0].current_nozzle_diameter) {
|
{
|
||||||
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2163,18 +2174,24 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event)
|
|||||||
+ "\n " + nozzle_in_printer
|
+ "\n " + nozzle_in_printer
|
||||||
+ "\n", ConfirmBeforeSendInfo::InfoLevel::Warning));
|
+ "\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));
|
/*check nozzle type*/
|
||||||
confirm_text.push_back(ConfirmBeforeSendInfo(nozzle_in_preset, ConfirmBeforeSendInfo::InfoLevel::Warning));
|
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) {
|
if (has_slice_warnings) {
|
||||||
wxString confirm_title = _L("Warning");
|
wxString confirm_title = _L("Warning");
|
||||||
|
|||||||
@@ -251,7 +251,7 @@ void TempInput::Warning(bool warn, WarningType type)
|
|||||||
|
|
||||||
wxString warning_string;
|
wxString warning_string;
|
||||||
if (type == WarningType::WARNING_TOO_HIGH)
|
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)
|
else if (type == WarningType::WARNING_TOO_LOW)
|
||||||
warning_string = _L("The minmum temperature should not be less than " + wxString::Format("%d", max_temp));
|
warning_string = _L("The minmum temperature should not be less than " + wxString::Format("%d", max_temp));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user