forked from viewit/OrcaSlicer-KX
Add Ellis' pattern method for pressure advance calibration (#1547)
* Add pattern method to Pressure Advance dialog * Convert calib_pressure_advance to more unique calib_pressure_advance_line * Share move_to function with PA lines and patterns * Add PA pattern to calib.hpp * Implement move_to(Vec3d). Combine with Vec2d version * Add call to PA pattern in GCode.cpp * Add helper functions * Add directionality to draw_digit * Extract shared number drawing variables * Extract convert_number_to_string function * Use in-class initializers for pattern variables * Add max_numbering_height function * Add helper functions * Extract shared delta helper functions * Add pattern generate_test() and associated helpers * Clarify use of math functions * Remove unused move_to overload, accept move_to comments * Add get_distance() and draw_line() * Extract set_nozzle_diameter() * Clean up and simplify * Rearrange and clean up * Start work on print_pa_pattern * Complete basic draw_box function * Add more helper functions * Add struct for pattern config, more helpers * Rearrange * Add encroachment member variable * Add structs to manage optional arguments * Simplify optional arguments structs * Update opt args usage. Finish draw_box function * Complete print_pa_pattern function * Reuse PA Line STL * Fix forward declaration error * Fix invalid comparison * Fixing complier errors * Make DrawDigitMode options more clear * More compilation error fixes * Yet more compile error fixes * Fix incorrect default step value * Handle top-level dialog changes, consolidate params definitions * Add layer change G-code, set more print variables * Simplify optArgs constructors * Fix pattern drawing, minor misc. clean up * Make draw_box() G-code comments more helpful * Make more of draw_line() const * Fix sequential number draw direction * Extract shared e_per_mm function * Fix misplaced decimal in PA Line * Move short constructor into .hpp * Fix inverted Y direction in pattern digit drawing * Use placeholder STL to create needed layers * Rearrange and clean up * Proof of concept: Adding custom G-Code at layer * Use new scaling method * Reorganize Plater::calib_pa() * Restructure calib * New strategy for adding custom G-code * Remove redundant invocation * Use cube primitive as positioning handle * Move logic to Plater Modifications to model in GCode cancelled _do_export from within itself * Consolidate m_starting_point and pattern_start functions * Replace bed_center() with m_starting_point * Fix and consolidate number tab creation * Fix off by one layer bug * Use correct bounding box * Use Vec3d instead of Vec2d for m_starting_point and m_last_pos * Add translate_starting_point function * Vec3d fix * Store CalibPressureAdvancePattern with model * Formatting adjustments * Move pattern when handle moves * Improve const correctness * Improve/fix pattern writer and config * Fix speed setting bug * Pass model into generate_gcodes to improve consistency * Re-generate pattern on reslice * Make pattern actually move with handle * Fix overzealous m_last_pos initialization * Use clearer function names * Use correct model * Remove unused member variable * Don't hard-code print config settings * Remove unused lines, formatting clean up * Make sure set_key_value operates on existing keys * Remove asserts which limited life of key/value set * Update Calibration.md * Update licensing info * Actually use speed in draw_line * Don't speed_adjust twice * doc: Make width and speed settings used more clear * Bugfix: Shouldn't need to move handle to see pattern * Clean up * Move mp_gcodegen into line method alone * Fix wrong number thickness in PA Line * Remove unnecessary middleman PatternSettings * Give value of config to const m_initial_config, not ref * Fix incorrect DrawBoxOptArg default * Use line_width_anchor() for all of initial layer * Use clearer function name * Replace "anchor" with "first_layer" for better consistency * Update Calibration.md * Update Calibration.md * Make number tab infill explanation more clear * (Hopefully) fix missing origin * Add GCodeProcessor tags * Fully refresh config * Don't store is_bbl_printer * Move set_starting_point to private * Don't constantly recreate GCodeWriter * Use different step value for pattern test * Remove redundant processor tags * Label glyph G-code * Fix comparison typo * Set number print speed * Fix mixed up draw_number parameter * Don't use line_width_first_layer for pattern * (Hopefully) fix temp tower generating PA pattern * Start with pattern centered on plate * Add gap between pattern and handle * Fix overly persistent pattern * Revert "(Hopefully) fix temp tower generating PA pattern" This reverts commit 0aa1206886d57820799beaf62dc28b9b8e02545b. --------- Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
@ -11,7 +11,6 @@
|
||||
#include "Print.hpp"
|
||||
#include "Utils.hpp"
|
||||
#include "ClipperUtils.hpp"
|
||||
#include "libslic3r.h"
|
||||
#include "LocalesUtils.hpp"
|
||||
#include "libslic3r/format.hpp"
|
||||
#include "Time.hpp"
|
||||
@ -1056,7 +1055,6 @@ void GCode::do_export(Print* print, const char* path, GCodeProcessorResult* resu
|
||||
GCodeProcessor::s_IsBBLPrinter = print->is_BBL_printer();
|
||||
print->set_started(psGCodeExport);
|
||||
|
||||
|
||||
// check if any custom gcode contains keywords used by the gcode processor to
|
||||
// produce time estimation and gcode toolpaths
|
||||
std::vector<std::pair<std::string, std::string>> validation_res = DoExport::validate_custom_gcode(*print);
|
||||
@ -1886,14 +1884,18 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
|
||||
gcode += m_writer.set_jerk_xy(jerk);
|
||||
}
|
||||
|
||||
calib_pressure_advance pa_test(this);
|
||||
auto params = print.calib_params();
|
||||
|
||||
CalibPressureAdvanceLine pa_test(this);
|
||||
|
||||
double filament_max_volumetric_speed = m_config.option<ConfigOptionFloats>("filament_max_volumetric_speed")->get_at(initial_extruder_id);
|
||||
Flow pattern_line = Flow(pa_test.line_width(), 0.2, m_config.nozzle_diameter.get_at(0));
|
||||
auto fast_speed = std::min(print.default_region_config().outer_wall_speed.value, filament_max_volumetric_speed / pattern_line.mm3_per_mm());
|
||||
auto slow_speed = std::max(20.0, fast_speed / 10.0);
|
||||
|
||||
pa_test.set_speed(fast_speed, slow_speed);
|
||||
pa_test.draw_numbers() = print.calib_params().print_numbers;
|
||||
auto params = print.calib_params();
|
||||
|
||||
gcode += pa_test.generate_test(params.start, params.step, std::llround(std::ceil((params.end - params.start) / params.step)));
|
||||
|
||||
file.write(gcode);
|
||||
|
||||
Reference in New Issue
Block a user