FIX: fix the crash issue when change setting after .gcode.3mf loaded

Change-Id: I47ae6c6b14f94858ff9789ef3ed927930b611203
(cherry picked from commit ad548cdc7491fd432603c80ea2fcf151115efd10)
This commit is contained in:
lane.wei 2023-06-15 20:19:49 +08:00 committed by Lane.Wei
parent f96e60a14a
commit 0fcc235e14
2 changed files with 13 additions and 8 deletions

View File

@ -1484,6 +1484,8 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
for (auto layer : object->support_layers())
zs.push_back(layer->print_z);
}
if (!zs.empty())
{
std::sort(zs.begin(), zs.end());
//BBS: merge numerically very close Z values.
auto end_it = std::unique(zs.begin(), zs.end());
@ -1493,6 +1495,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
m_layer_count--;
}
}
}
print.throw_if_canceled();
m_enable_cooling_markers = true;

View File

@ -4716,6 +4716,7 @@ void Plater::priv::export_gcode(fs::path output_path, bool output_path_on_remova
unsigned int Plater::priv::update_restart_background_process(bool force_update_scene, bool force_update_preview)
{
bool switch_print = true;
//BBS: judge whether can switch print or not
if ((partplate_list.get_plate_count() > 1) && !this->background_process.can_switch_print())
{
@ -11199,7 +11200,8 @@ int Plater::select_plate(int plate_index, bool need_slice)
{
if (need_slice) { //from preview's thumbnail
if ((invalidated & PrintBase::APPLY_STATUS_INVALIDATED) || (gcode_result->moves.empty())){
//part_plate->update_slice_result_valid_state(false);
if (invalidated & PrintBase::APPLY_STATUS_INVALIDATED)
part_plate->update_slice_result_valid_state(false);
p->process_completed_with_error = -1;
p->m_slice_all = false;
reset_gcode_toolpaths();