Fix pattern drawing, minor misc. clean up

This commit is contained in:
thewildmage
2023-06-08 16:48:34 -06:00
parent a5e3d528db
commit 3aab4dacc6
2 changed files with 18 additions and 16 deletions

View File

@@ -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));
}

View File

@@ -655,11 +655,6 @@ std::vector<std::string> CalibPressureAdvancePattern::print_pa_pattern(PatternCa
std::stringstream gcode;
std::vector<std::string> 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<std::string> 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<std::string> 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<std::string> 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<std::string> 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<std::string> 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<std::string> 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;