From ee1ea1c1b989620d0dab135ea464b53546a7e7df Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Mon, 11 Sep 2023 18:24:53 +0800 Subject: [PATCH] FIX: spiral vase not support timelapse for i3 structure Jira: XXXX Change-Id: I2dd5c285c4d687d72a2dfcf94d0ff75a4d5dd498 --- src/libslic3r/Format/bbs_3mf.cpp | 1 - src/libslic3r/GCode.cpp | 4 ++-- src/slic3r/GUI/ConfigManipulation.cpp | 6 ++++++ src/slic3r/GUI/Plater.cpp | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/Format/bbs_3mf.cpp b/src/libslic3r/Format/bbs_3mf.cpp index fc903d13b..53eb07d63 100644 --- a/src/libslic3r/Format/bbs_3mf.cpp +++ b/src/libslic3r/Format/bbs_3mf.cpp @@ -289,7 +289,6 @@ static constexpr const char* TIMELAPSE_TYPE_ATTR = "timelapse_type"; static constexpr const char* OUTSIDE_ATTR = "outside"; static constexpr const char* SUPPORT_USED_ATTR = "support_used"; static constexpr const char* LABEL_OBJECT_ENABLED_ATTR = "label_object_enabled"; -static constexpr const char* TIMELAPSE_TYPE_ATTR = "timelapse_type"; static constexpr const char* SKIPPED_ATTR = "skipped"; static constexpr const char* OBJECT_TYPE = "object"; diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 11239ba58..305f6159a 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2859,7 +2859,7 @@ GCode::LayerResult GCode::process_layer( PrinterStructure printer_structure = m_config.printer_structure.value; bool need_insert_timelapse_gcode_for_traditional = false; - if (printer_structure == PrinterStructure::psI3 && (!m_wipe_tower || !m_wipe_tower->enable_timelapse_print())) { + if (printer_structure == PrinterStructure::psI3 && !m_spiral_vase && (!m_wipe_tower || !m_wipe_tower->enable_timelapse_print())) { need_insert_timelapse_gcode_for_traditional = true; } bool has_insert_timelapse_gcode = false; @@ -2881,7 +2881,7 @@ GCode::LayerResult GCode::process_layer( gcode += this->change_layer(print_z); // this will increase m_layer_index m_layer = &layer; m_object_layer_over_raft = false; - if (printer_structure == PrinterStructure::psI3 && !need_insert_timelapse_gcode_for_traditional) { + if (printer_structure == PrinterStructure::psI3 && !need_insert_timelapse_gcode_for_traditional && !m_spiral_vase) { std::string timepals_gcode = insert_timelapse_gcode(); gcode += timepals_gcode; m_writer.set_current_position_clear(false); diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 06e810d5a..108ab57b7 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -282,6 +282,12 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con config->opt_enum("timelapse_type") == TimelapseType::tlTraditional)) { wxString msg_text = _(L("Spiral mode only works when wall loops is 1, support is disabled, top shell layers is 0, sparse infill density is 0 and timelapse type is traditional.")); + + auto printer_structure_opt = wxGetApp().preset_bundle->printers.get_edited_preset().config.option>("printer_structure"); + if (printer_structure_opt && printer_structure_opt->value == PrinterStructure::psI3) { + msg_text += _(L(" But machines with I3 structure will not generate timelapse videos.")); + } + if (is_global_config) msg_text += "\n\n" + _(L("Change these settings automatically? \n" "Yes - Change these settings and enable spiral mode automatically\n" diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 193802840..9ee1cf7d3 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2840,7 +2840,7 @@ wxString Plater::get_slice_warning_string(GCodeProcessorResult::SliceWarning& wa } else if (warning.msg == NOZZLE_HRC_CHECKER) { return _L("The nozzle hardness required by the filament is higher than the default nozzle hardness of the printer. Please replace the hardened nozzle or filament, otherwise, the nozzle will be attrited or damaged."); } else if (warning.msg == NOT_SUPPORT_TRADITIONAL_TIMELAPSE) { - return _L("Enable traditional timelapse will cause artifacts on this model."); + return _L("Enabling traditional timelapse photography may cause surface imperfections. It is recommended to change to smooth mode."); } else { return wxString(warning.msg); }