Skip to content
Open
32 changes: 31 additions & 1 deletion localization/i18n/zh_CN/Snapmaker_Orca_zh_CN.po
Original file line number Diff line number Diff line change
Expand Up @@ -15332,6 +15332,15 @@ msgstr "检测到高温材料与低温材料同时使用。混合打印可能导
msgid "Detected both high and low temperature materials. Mixed printing may result in extruder clogging, nozzle damage, or layer adhesion issues. To continue printing, enable \"Allow mixed printing of high and low temperature materials\" in Preferences."
msgstr "检测到高温材料与低温材料同时使用。混合打印可能导致挤出机堵塞、喷嘴损坏或层间粘附问题。如需继续打印,请在「偏好设置」中开启 \"允许高/低温材料混合打印\"。"

msgid "Flow ratio is 0%, resulting in zero extrusion and no valid toolpath. "
msgstr "流量比例为 0%,挤出量为零,无法生成有效打印路径。"

msgid "Filament(s):"
msgstr "耗材:"

msgid "Please set the flow ratio to a value greater than 0."
msgstr "请将其设置为大于 0 的值。"

msgid "This material combination may cause risks. Do you want to continue?"
msgstr "此材料组合可能存在风险,是否继续?"

Expand All @@ -15348,4 +15357,25 @@ msgid "Other Colors"
msgstr "其他颜色"

msgid "Multiple Color"
msgstr "多色"
msgstr "多色"

msgid "High temperature:"
msgstr "高温耗材:"

msgid "Low temperature:"
msgstr "低温耗材:"

msgid "The following plates contain mixed high and low temperature materials:"
msgstr "以下盘存在高温与低温耗材混用:"

msgid "unknown"
msgstr "未知"

msgid "does not exist."
msgstr "不存在。"

msgid ""
"To continue printing, enable \"Allow mixed printing of high and low "
"temperature materials\" in Preferences."
msgstr ""
"如需继续打印,请在「偏好设置」中开启「允许高低温耗材混打」。"
2 changes: 1 addition & 1 deletion src/Snapmaker_Orca.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5028,7 +5028,7 @@ int CLI::run(int argc, char **argv)
case STRING_EXCEPT_FILAMENT_NOT_MATCH_BED_TYPE:
validate_error = CLI_FILAMENT_NOT_MATCH_BED_TYPE;
break;
case STRING_EXCEPT_FILAMENTS_DIFFERENT_TEMP:
case STRING_EXCEPT_FILAMENTS_MIXING_TEMP:
validate_error = CLI_FILAMENTS_DIFFERENT_TEMP;
break;
case STRING_EXCEPT_OBJECT_COLLISION_IN_SEQ_PRINT:
Expand Down
8 changes: 8 additions & 0 deletions src/libslic3r/GCodeReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,14 @@ template<typename ParseLineCallback, typename LineEndCallback>
bool GCodeReader::parse_file_raw_internal(const std::string &filename, ParseLineCallback parse_line_callback, LineEndCallback line_end_callback)
{
FilePtr in{ boost::nowide::fopen(filename.c_str(), "rb") };
if (in.f == nullptr) {
// fopen failed — file missing, inaccessible, or path invalid.
// Returning false here prevents ::fread(buffer.data(), 1, ..., NULL)
// below, which would otherwise trigger a CRT invalid-parameter crash.
BOOST_LOG_TRIVIAL(error) << "GCodeReader::parse_file_raw_internal: "
<< "failed to open file '" << filename << "'";
return false;
}

// Read the input stream 64kB at a time, extract lines and process them.
std::vector<char> buffer(65536 * 10, 0);
Expand Down
3 changes: 2 additions & 1 deletion src/libslic3r/PrintBase.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,11 @@ namespace Slic3r {
enum StringExceptionType {
STRING_EXCEPT_NOT_DEFINED = 0,
STRING_EXCEPT_FILAMENT_NOT_MATCH_BED_TYPE = 1,
STRING_EXCEPT_FILAMENTS_DIFFERENT_TEMP = 2,
STRING_EXCEPT_FILAMENTS_MIXING_TEMP = 2,
STRING_EXCEPT_OBJECT_COLLISION_IN_SEQ_PRINT = 3,
STRING_EXCEPT_OBJECT_COLLISION_IN_LAYER_PRINT = 4,
STRING_EXCEPT_LAYER_HEIGHT_EXCEEDS_LIMIT = 5,
STRING_EXCEPT_FLOW_RATIO_ZERO = 6,
STRING_EXCEPT_COUNT
};

Expand Down
4 changes: 3 additions & 1 deletion src/slic3r/GUI/GLCanvas3D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7922,7 +7922,9 @@ void GLCanvas3D::_render_imgui_select_plate_toolbar()
m_sel_plate_toolbar.m_items[i]->slice_state = IMToolbarItem::SliceState::SLICE_FAILED;
}
else {
if (!plate_list.get_plate(i)->can_slice())
if (!plate_list.get_plate(i)->can_slice() ||
wxGetApp().plater()->is_plate_blocked_by_filament_temp_mixing(i) ||
wxGetApp().plater()->is_plate_blocked_by_flow_ratio_zero(i))
m_sel_plate_toolbar.m_items[i]->slice_state = IMToolbarItem::SliceState::SLICE_FAILED;
else {
if (plate_list.get_plate(i)->get_slicing_percent() < 0.0f)
Expand Down
4 changes: 4 additions & 0 deletions src/slic3r/GUI/MainFrame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1923,6 +1923,10 @@ bool MainFrame::get_enable_slice_status()
{
enable = false;
}
else if (m_plater->is_plate_blocked_by_flow_ratio_zero(part_plate_list.get_curr_plate_index()))
{
enable = false;
}
}

BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": m_slice_select %1%, enable= %2% ")%m_slice_select %enable;
Expand Down
Loading
Loading