From 3aab4dacc63cc78e05d4d4362699886ae1dc4b40 Mon Sep 17 00:00:00 2001 From: thewildmage Date: Thu, 8 Jun 2023 16:48:34 -0600 Subject: [PATCH] Fix pattern drawing, minor misc. clean up --- src/libslic3r/GCode.cpp | 10 +++------- src/libslic3r/calib.cpp | 24 +++++++++++++++--------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 2160ceadb8..e68868d53b 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1904,8 +1904,9 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato coordf_t print_z; bool first_layer; - for (int i = 0; i < gcode_layers.size(); ++i) { - print_z = pa_test.layer_z()[i]; + for (auto i = 0; i < gcode_layers.size(); ++i) { + m_nominal_z = pa_test.layer_z()[i]; + print_z = m_nominal_z; first_layer = (i == 0); m_writer.set_is_first_layer(first_layer); @@ -1939,15 +1940,11 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato } gcode += m_writer.update_progress(++ m_layer_index, m_layer_count); - m_nominal_z = print_z; if (! print.config().layer_change_gcode.value.empty()) { - std::cout << "layer_change_gcode found" << std::endl; - DynamicConfig config; config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index)); config.set_key_value("layer_z", new ConfigOptionFloat(print_z)); - std::cout << "DynamicConfig updated successfully" << std::endl; gcode += this->placeholder_parser_process( "layer_change_gcode", @@ -1955,7 +1952,6 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato m_writer.extruder()->id(), &config ) + "\n"; - std::cout << "returned from placeholder_parser_process" << std::endl; config.set_key_value("max_layer_z", new ConfigOptionFloat(m_max_layer_z)); } diff --git a/src/libslic3r/calib.cpp b/src/libslic3r/calib.cpp index e214ef35e8..0ac5a988e5 100644 --- a/src/libslic3r/calib.cpp +++ b/src/libslic3r/calib.cpp @@ -655,11 +655,6 @@ std::vector CalibPressureAdvancePattern::print_pa_pattern(PatternCa std::stringstream gcode; std::vector gcode_layers; - const DrawLineOptArgs draw_line_basic_settings; - DrawLineOptArgs draw_line_opt_args; - const DrawBoxOptArgs draw_box_basic_settings; - DrawBoxOptArgs draw_box_opt_args; - gcode << writer.travel_to_xyz( Vec3d(calc.pattern_start_x, calc.pattern_start_y, m_height_first_layer), "Move to start position" @@ -667,7 +662,10 @@ std::vector CalibPressureAdvancePattern::print_pa_pattern(PatternCa gcode << writer.set_pressure_advance(calc.start_pa); - // create anchor and line numbering frame + const DrawBoxOptArgs draw_box_basic_settings; + DrawBoxOptArgs draw_box_opt_args; + + // create anchor frame gcode << draw_box( calc.pattern_start_x, calc.pattern_start_y, @@ -679,6 +677,7 @@ std::vector CalibPressureAdvancePattern::print_pa_pattern(PatternCa // create tab for numbers draw_box_opt_args = draw_box_basic_settings; draw_box_opt_args.is_filled = true; + draw_box_opt_args.num_perimeters = m_anchor_perimeters; gcode << draw_box( calc.pattern_start_x, calc.pattern_start_y + calc.frame_size_y + line_spacing_anchor(), @@ -696,7 +695,7 @@ std::vector CalibPressureAdvancePattern::print_pa_pattern(PatternCa if (i > 0) { gcode_layers.push_back(gcode.str()); - std::stringstream().swap(gcode); // reset for next layer contents + gcode = std::stringstream(); // reset for next layer contents Point last_pos = mp_gcodegen->last_pos(); std::stringstream comment; @@ -737,6 +736,9 @@ std::vector CalibPressureAdvancePattern::print_pa_pattern(PatternCa } } + const DrawLineOptArgs draw_line_basic_settings; + DrawLineOptArgs draw_line_opt_args; + double to_x = calc.pattern_start_x + pattern_shift(calc.num_patterns, calc.center_x); double to_y = calc.pattern_start_y; double side_length = m_wall_side_length; @@ -750,7 +752,7 @@ std::vector CalibPressureAdvancePattern::print_pa_pattern(PatternCa ) / std::sin(to_radians(m_corner_angle) / 2) ; side_length = m_wall_side_length - shrink; - to_x += shrink + std::sin(to_radians(90) - to_radians(m_corner_angle) / 2); + to_x += shrink * std::sin(to_radians(90) - to_radians(m_corner_angle) / 2); to_y += line_spacing_anchor() * (m_anchor_perimeters - 1) + (line_width_anchor() * (1 - m_encroachment)) @@ -774,7 +776,11 @@ std::vector CalibPressureAdvancePattern::print_pa_pattern(PatternCa draw_line_opt_args.height = i == 0 ? m_height_first_layer : m_height_layer; draw_line_opt_args.speed = i == 0 ? m_speed_first_layer : m_speed_perimeter; draw_line_opt_args.comment = "Print pattern wall"; - + gcode << draw_line(to_x, to_y, draw_line_opt_args); + + to_x -= std::cos(to_radians(m_corner_angle) / 2) * side_length; + to_y += std::sin(to_radians(m_corner_angle) / 2) * side_length; + gcode << draw_line(to_x, to_y, draw_line_opt_args); to_y = initial_y;