mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-08-10 23:35:13 -06:00
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 0aa1206886
.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
parent
87f6c43784
commit
777c7c68f9
12 changed files with 1396 additions and 296 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue