Input shaping & JunctionDeviatio wiki + improvements (#9256)
* VFA-Calibs Wiki images * Calib Code Fixes Improve Settings JD Set Precision to 3 Change damp default Recommend 0 Fixes * IS JD Wiki * Updated with 9234 * IS Verbose
|
@ -187,17 +187,31 @@ Ussualy the recommended values modes are ``MZV`` or ``EI`` for Delta printers.
|
||||||
```
|
```
|
||||||
SET_VELOCITY_LIMIT MINIMUM_CRUISE_RATIO=0
|
SET_VELOCITY_LIMIT MINIMUM_CRUISE_RATIO=0
|
||||||
```
|
```
|
||||||
3. Use a high gloss filament to make the ringing more visible.
|
3. Use an opaque, high-gloss filament to make the ringing more visible.
|
||||||
2. Print the Input Shaping Frequency test with a range of frequencies.
|
2. Print the Input Shaping Frequency test with a range of frequencies.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
1. Measure the X and Y heights and read the frequency set at that point in Orca Slicer.
|
1. Measure the X and Y heights and read the frequency set at that point in Orca Slicer.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
2. If not a clear result, you can measure a X and Y min and max acceptable heights and repeat the test with that min and max value.
|
2. If not a clear result, you can measure a X and Y min and max acceptable heights and repeat the test with that min and max value.
|
||||||
|
|
||||||
**Note**: There is a chance you will need to set higher than 60Hz frequencies. Some printers with very rigid frames and excellent mechanics may exhibit frequencies exceeding 100Hz.
|
**Note**: There is a chance you will need to set higher than 60Hz frequencies. Some printers with very rigid frames and excellent mechanics may exhibit frequencies exceeding 100Hz.
|
||||||
3. Print the Damping test setting your X and Y frequency to the value you found in the previous step.
|
3. Print the Damping test setting your X and Y frequency to the value you found in the previous step.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
1. Measure the X and Y heights and read the damping set at that point in Orca Slicer.
|
1. Measure the X and Y heights and read the damping set at that point in Orca Slicer.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
**Note**: Not all Resonance Compensation modes support damping
|
**Note**: Not all Resonance Compensation modes support damping
|
||||||
1. Restore your 3D Printer settings to avoid keep using high acceleration and jerk values.
|
4. Restore your 3D Printer settings to avoid keep using high acceleration and jerk values.
|
||||||
2. Save the settings
|
5. Save the settings
|
||||||
1. You need to go to the printer settings and set the X and Y frequency and damp to the value you found in the previous step.
|
1. You need to go to the printer settings and set the X and Y frequency and damp to the value you found in the previous step.
|
||||||
|
|
||||||
### Marlin
|
### Marlin
|
||||||
|
@ -213,14 +227,28 @@ ZV Input Shaping introduces an anti-vibration signal into the stepper motion for
|
||||||
3. Jerk
|
3. Jerk
|
||||||
1. If using [Classic Jerk](https://marlinfw.org/docs/configuration/configuration.html#jerk-) use a high value (e.g., 20).
|
1. If using [Classic Jerk](https://marlinfw.org/docs/configuration/configuration.html#jerk-) use a high value (e.g., 20).
|
||||||
2. If using [Junction Deviation](https://marlinfw.org/docs/features/junction_deviation.html) (new Marlin default mode) this test will use 0.25 (high enough to most printers).
|
2. If using [Junction Deviation](https://marlinfw.org/docs/features/junction_deviation.html) (new Marlin default mode) this test will use 0.25 (high enough to most printers).
|
||||||
2. Use a high gloss filament to make the ringing more visible.
|
2. Use an opaque, high-gloss filament to make the ringing more visible.
|
||||||
2. Print the Input Shaping Frequency test with a range of frequencies.
|
2. Print the Input Shaping Frequency test with a range of frequencies.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
1. Measure the X and Y heights and read the frequency set at that point in Orca Slicer.
|
1. Measure the X and Y heights and read the frequency set at that point in Orca Slicer.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
2. If not a clear result, you can measure a X and Y min and max acceptable heights and repeat the test with that min and max value.
|
2. If not a clear result, you can measure a X and Y min and max acceptable heights and repeat the test with that min and max value.
|
||||||
|
|
||||||
**Note**: There is a chance you will need to set higher than 60Hz frequencies. Some printers with very rigid frames and excellent mechanics may exhibit frequencies exceeding 100Hz.
|
**Note**: There is a chance you will need to set higher than 60Hz frequencies. Some printers with very rigid frames and excellent mechanics may exhibit frequencies exceeding 100Hz.
|
||||||
3. Print the Damping test setting your X and Y frequency to the value you found in the previous step.
|
3. Print the Damping test setting your X and Y frequency to the value you found in the previous step.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
1. Measure the X and Y heights and read the damping set at that point in Orca Slicer.
|
1. Measure the X and Y heights and read the damping set at that point in Orca Slicer.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
4. Restore your 3D Printer settings to avoid keep using high acceleration and jerk values.
|
4. Restore your 3D Printer settings to avoid keep using high acceleration and jerk values.
|
||||||
1. Reboot your printer.
|
1. Reboot your printer.
|
||||||
2. Use the following G-code to restore your printer settings:
|
2. Use the following G-code to restore your printer settings:
|
||||||
|
@ -244,7 +272,7 @@ ZV Input Shaping introduces an anti-vibration signal into the stepper motion for
|
||||||
|
|
||||||
#### Fixed-Time Motion
|
#### Fixed-Time Motion
|
||||||
|
|
||||||
TODO This calibration test is currently under development.
|
TODO This calibration test is currently under development. See the [Marlin documentation](https://marlinfw.org/docs/gcode/M493.html) for more information.
|
||||||
|
|
||||||
### Junction Deviation
|
### Junction Deviation
|
||||||
|
|
||||||
|
@ -257,22 +285,45 @@ The default value in Marlin is typically set to 0.08mm, which may be too high fo
|
||||||
2. In OrcaSlicer, set:
|
2. In OrcaSlicer, set:
|
||||||
1. Acceleration high enough to trigger ringing (e.g., 2000 mm/s²).
|
1. Acceleration high enough to trigger ringing (e.g., 2000 mm/s²).
|
||||||
2. Speed high enough to trigger ringing (e.g., 100 mm/s).
|
2. Speed high enough to trigger ringing (e.g., 100 mm/s).
|
||||||
3. Use a high gloss filament to make the ringing more visible.
|
3. Use an opaque, high-gloss filament to make the ringing more visible.
|
||||||
2. You need to print the Junction Deviation test.
|
2. You need to print the Junction Deviation test.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
1. Measure the X and Y heights and read the frequency set at that point in Orca Slicer.
|
1. Measure the X and Y heights and read the frequency set at that point in Orca Slicer.
|
||||||
2. If not a clear result, you can measure a X and Y min and max acceptable heights and repeat the test with that min and max value.
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
2. It’s very likely that you’ll need to set values lower than 0.08 mm, as shown in the previous example. To determine a more accurate maximum JD value, you can print a new calibration tower with a maximum value set at the point where the corners start losing sharpness.
|
||||||
|
3.
|
||||||
|

|
||||||
|
|
||||||
|
4. Measure the X and Y heights and read the frequency set at that point in Orca Slicer.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
3. Save the settings
|
3. Save the settings
|
||||||
1. Use the following G-code to set the frequency:
|
1. Set your Maximun Junction Deviation value in [Printer settings/Motion ability/Jerk limitation].
|
||||||
|
2. Use the following G-code to set the mm:
|
||||||
```gcode
|
```gcode
|
||||||
M205 J#JunctionDeviationValue
|
M205 J#JunctionDeviationValue
|
||||||
M500
|
M500
|
||||||
```
|
```
|
||||||
Example
|
Example
|
||||||
```gcode
|
```gcode
|
||||||
M205 J0.013
|
M205 J0.012
|
||||||
M500
|
M500
|
||||||
```
|
```
|
||||||
2. Set it in your Marlin Compilation.
|
3. Recompile four MarlinFW
|
||||||
|
1. In Configuration.h set:
|
||||||
|
```cpp
|
||||||
|
#define JUNCTION_DEVIATION_MM 0.012 // (mm) Distance from real junction edge
|
||||||
|
```
|
||||||
|
2. Check Classic Jerk is disabled (commented).
|
||||||
|
```cpp
|
||||||
|
//#define CLASSIC_JERK
|
||||||
|
```
|
||||||
|
|
||||||
## VFA
|
## VFA
|
||||||
|
|
||||||
|
|
BIN
doc/images/InputShaping/IS_damp_klipper_print_measure.jpg
Normal file
After Width: | Height: | Size: 5.5 MiB |
BIN
doc/images/InputShaping/IS_damp_klipper_slicer_measure.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
doc/images/InputShaping/IS_damp_marlin_print_measure.jpg
Normal file
After Width: | Height: | Size: 2.4 MiB |
BIN
doc/images/InputShaping/IS_damp_marlin_slicer_measure.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
doc/images/InputShaping/IS_damp_menu.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
doc/images/InputShaping/IS_freq_klipper_print_measure.jpg
Normal file
After Width: | Height: | Size: 4 MiB |
BIN
doc/images/InputShaping/IS_freq_klipper_slicer_measure.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
doc/images/InputShaping/IS_freq_marlin_print_measure.jpg
Normal file
After Width: | Height: | Size: 151 KiB |
BIN
doc/images/InputShaping/IS_freq_marlin_slicer_measure.png
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
doc/images/InputShaping/IS_freq_menu.png.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
doc/images/JunctionDeviation/jd_first_menu.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
doc/images/JunctionDeviation/jd_first_print_measure.jpg
Normal file
After Width: | Height: | Size: 537 KiB |
BIN
doc/images/JunctionDeviation/jd_first_slicer_measure.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
doc/images/JunctionDeviation/jd_second_menu.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
doc/images/JunctionDeviation/jd_second_print_measure.jpg
Normal file
After Width: | Height: | Size: 589 KiB |
BIN
doc/images/JunctionDeviation/jd_second_slicer_measure.png
Normal file
After Width: | Height: | Size: 30 KiB |
|
@ -318,7 +318,7 @@ std::string GCodeWriter::set_junction_deviation(double junction_deviation){
|
||||||
if (FLAVOR_IS_NOT(gcfMarlinFirmware)) {
|
if (FLAVOR_IS_NOT(gcfMarlinFirmware)) {
|
||||||
throw std::runtime_error("Junction deviation is only supported by Marlin firmware");
|
throw std::runtime_error("Junction deviation is only supported by Marlin firmware");
|
||||||
}
|
}
|
||||||
gcode << "M205 J" << junction_deviation << " ; Junction Deviation\n";
|
gcode << "M205 J" << std::fixed << std::setprecision(3) << junction_deviation << " ; Junction Deviation\n";
|
||||||
return gcode.str();
|
return gcode.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -365,7 +365,7 @@ std::string GCodeWriter::set_input_shaping(char axis, float damp, float freq) co
|
||||||
gcode << " SHAPER_FREQ_X=" << std::fixed << std::setprecision(2) << freq << " SHAPER_FREQ_Y=" << std::fixed << std::setprecision(2) << freq;
|
gcode << " SHAPER_FREQ_X=" << std::fixed << std::setprecision(2) << freq << " SHAPER_FREQ_Y=" << std::fixed << std::setprecision(2) << freq;
|
||||||
}
|
}
|
||||||
if (damp > 0.0f) {
|
if (damp > 0.0f) {
|
||||||
gcode << " DAMPING_RATIO_X=" << damp << " DAMPING_RATIO_Y=" << damp;
|
gcode << " DAMPING_RATIO_X=" << std::fixed << std::setprecision(3) << damp << " DAMPING_RATIO_Y=" << std::fixed << std::setprecision(3) << damp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -380,10 +380,13 @@ std::string GCodeWriter::set_input_shaping(char axis, float damp, float freq) co
|
||||||
}
|
}
|
||||||
if (damp > 0.0f)
|
if (damp > 0.0f)
|
||||||
{
|
{
|
||||||
gcode << " D" << std::fixed << std::setprecision(2) << damp;
|
gcode << " D" << std::fixed << std::setprecision(3) << damp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gcode << "; Override input shaping value\n";
|
if (GCodeWriter::full_gcode_comment){
|
||||||
|
gcode << " ; Override input shaping";
|
||||||
|
}
|
||||||
|
gcode << "\n";
|
||||||
return gcode.str();
|
return gcode.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10201,7 +10201,7 @@ void Plater::calib_input_shaping_freq(const Calib_Params& params)
|
||||||
if (params.mode != CalibMode::Calib_Input_shaping_freq)
|
if (params.mode != CalibMode::Calib_Input_shaping_freq)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_input_shaping_test.stl"));
|
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_tower_test.stl"));
|
||||||
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||||
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
|
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
|
||||||
filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats { 0.0 });
|
filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats { 0.0 });
|
||||||
|
@ -10210,6 +10210,7 @@ void Plater::calib_input_shaping_freq(const Calib_Params& params)
|
||||||
filament_config->set_key_value("filament_max_volumetric_speed", new ConfigOptionFloats { 200 });
|
filament_config->set_key_value("filament_max_volumetric_speed", new ConfigOptionFloats { 200 });
|
||||||
filament_config->set_key_value("enable_pressure_advance", new ConfigOptionBools {false });
|
filament_config->set_key_value("enable_pressure_advance", new ConfigOptionBools {false });
|
||||||
filament_config->set_key_value("pressure_advance", new ConfigOptionFloats { 0.0 });
|
filament_config->set_key_value("pressure_advance", new ConfigOptionFloats { 0.0 });
|
||||||
|
print_config->set_key_value("layer_height", new ConfigOptionFloat(0.2));
|
||||||
print_config->set_key_value("enable_overhang_speed", new ConfigOptionBool { false });
|
print_config->set_key_value("enable_overhang_speed", new ConfigOptionBool { false });
|
||||||
print_config->set_key_value("timelapse_type", new ConfigOptionEnum<TimelapseType>(tlTraditional));
|
print_config->set_key_value("timelapse_type", new ConfigOptionEnum<TimelapseType>(tlTraditional));
|
||||||
print_config->set_key_value("wall_loops", new ConfigOptionInt(1));
|
print_config->set_key_value("wall_loops", new ConfigOptionInt(1));
|
||||||
|
@ -10219,6 +10220,10 @@ void Plater::calib_input_shaping_freq(const Calib_Params& params)
|
||||||
print_config->set_key_value("detect_thin_wall", new ConfigOptionBool(false));
|
print_config->set_key_value("detect_thin_wall", new ConfigOptionBool(false));
|
||||||
print_config->set_key_value("spiral_mode", new ConfigOptionBool(true));
|
print_config->set_key_value("spiral_mode", new ConfigOptionBool(true));
|
||||||
print_config->set_key_value("spiral_mode_smooth", new ConfigOptionBool(true));
|
print_config->set_key_value("spiral_mode_smooth", new ConfigOptionBool(true));
|
||||||
|
print_config->set_key_value("bottom_surface_pattern", new ConfigOptionEnum<InfillPattern>(ipRectilinear));
|
||||||
|
print_config->set_key_value("outer_wall_speed", new ConfigOptionFloat(200));
|
||||||
|
print_config->set_key_value("default_acceleration", new ConfigOptionFloat(2000));
|
||||||
|
print_config->set_key_value("outer_wall_acceleration", new ConfigOptionFloat(2000));
|
||||||
model().objects[0]->config.set_key_value("brim_type", new ConfigOptionEnum<BrimType>(btOuterOnly));
|
model().objects[0]->config.set_key_value("brim_type", new ConfigOptionEnum<BrimType>(btOuterOnly));
|
||||||
model().objects[0]->config.set_key_value("brim_width", new ConfigOptionFloat(3.0));
|
model().objects[0]->config.set_key_value("brim_width", new ConfigOptionFloat(3.0));
|
||||||
model().objects[0]->config.set_key_value("brim_object_gap", new ConfigOptionFloat(0.0));
|
model().objects[0]->config.set_key_value("brim_object_gap", new ConfigOptionFloat(0.0));
|
||||||
|
@ -10240,7 +10245,7 @@ void Plater::calib_input_shaping_damp(const Calib_Params& params)
|
||||||
if (params.mode != CalibMode::Calib_Input_shaping_damp)
|
if (params.mode != CalibMode::Calib_Input_shaping_damp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_input_shaping_test.stl"));
|
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_tower_test.stl"));
|
||||||
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||||
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
|
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
|
||||||
filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats { 0.0 });
|
filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats { 0.0 });
|
||||||
|
@ -10249,6 +10254,7 @@ void Plater::calib_input_shaping_damp(const Calib_Params& params)
|
||||||
filament_config->set_key_value("filament_max_volumetric_speed", new ConfigOptionFloats { 200 });
|
filament_config->set_key_value("filament_max_volumetric_speed", new ConfigOptionFloats { 200 });
|
||||||
filament_config->set_key_value("enable_pressure_advance", new ConfigOptionBools{false});
|
filament_config->set_key_value("enable_pressure_advance", new ConfigOptionBools{false});
|
||||||
filament_config->set_key_value("pressure_advance", new ConfigOptionFloats{0.0});
|
filament_config->set_key_value("pressure_advance", new ConfigOptionFloats{0.0});
|
||||||
|
print_config->set_key_value("layer_height", new ConfigOptionFloat(0.2));
|
||||||
print_config->set_key_value("enable_overhang_speed", new ConfigOptionBool{false});
|
print_config->set_key_value("enable_overhang_speed", new ConfigOptionBool{false});
|
||||||
print_config->set_key_value("timelapse_type", new ConfigOptionEnum<TimelapseType>(tlTraditional));
|
print_config->set_key_value("timelapse_type", new ConfigOptionEnum<TimelapseType>(tlTraditional));
|
||||||
print_config->set_key_value("wall_loops", new ConfigOptionInt(1));
|
print_config->set_key_value("wall_loops", new ConfigOptionInt(1));
|
||||||
|
@ -10258,6 +10264,10 @@ void Plater::calib_input_shaping_damp(const Calib_Params& params)
|
||||||
print_config->set_key_value("detect_thin_wall", new ConfigOptionBool(false));
|
print_config->set_key_value("detect_thin_wall", new ConfigOptionBool(false));
|
||||||
print_config->set_key_value("spiral_mode", new ConfigOptionBool(true));
|
print_config->set_key_value("spiral_mode", new ConfigOptionBool(true));
|
||||||
print_config->set_key_value("spiral_mode_smooth", new ConfigOptionBool(true));
|
print_config->set_key_value("spiral_mode_smooth", new ConfigOptionBool(true));
|
||||||
|
print_config->set_key_value("bottom_surface_pattern", new ConfigOptionEnum<InfillPattern>(ipRectilinear));
|
||||||
|
print_config->set_key_value("outer_wall_speed", new ConfigOptionFloat(200));
|
||||||
|
print_config->set_key_value("default_acceleration", new ConfigOptionFloat(2000));
|
||||||
|
print_config->set_key_value("outer_wall_acceleration", new ConfigOptionFloat(2000));
|
||||||
model().objects[0]->config.set_key_value("brim_type", new ConfigOptionEnum<BrimType>(btOuterOnly));
|
model().objects[0]->config.set_key_value("brim_type", new ConfigOptionEnum<BrimType>(btOuterOnly));
|
||||||
model().objects[0]->config.set_key_value("brim_width", new ConfigOptionFloat(3.0));
|
model().objects[0]->config.set_key_value("brim_width", new ConfigOptionFloat(3.0));
|
||||||
model().objects[0]->config.set_key_value("brim_object_gap", new ConfigOptionFloat(0.0));
|
model().objects[0]->config.set_key_value("brim_object_gap", new ConfigOptionFloat(0.0));
|
||||||
|
@ -10279,7 +10289,7 @@ void Plater::calib_junction_deviation(const Calib_Params& params)
|
||||||
if (params.mode != CalibMode::Calib_Junction_Deviation)
|
if (params.mode != CalibMode::Calib_Junction_Deviation)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_input_shaping_test.stl"));
|
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_tower_test.stl"));
|
||||||
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||||
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
|
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
|
||||||
filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats { 0.0 });
|
filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats { 0.0 });
|
||||||
|
@ -10288,6 +10298,7 @@ void Plater::calib_junction_deviation(const Calib_Params& params)
|
||||||
filament_config->set_key_value("filament_max_volumetric_speed", new ConfigOptionFloats{200});
|
filament_config->set_key_value("filament_max_volumetric_speed", new ConfigOptionFloats{200});
|
||||||
filament_config->set_key_value("enable_pressure_advance", new ConfigOptionBools{false});
|
filament_config->set_key_value("enable_pressure_advance", new ConfigOptionBools{false});
|
||||||
filament_config->set_key_value("pressure_advance", new ConfigOptionFloats{0.0});
|
filament_config->set_key_value("pressure_advance", new ConfigOptionFloats{0.0});
|
||||||
|
print_config->set_key_value("layer_height", new ConfigOptionFloat(0.2));
|
||||||
print_config->set_key_value("enable_overhang_speed", new ConfigOptionBool{false});
|
print_config->set_key_value("enable_overhang_speed", new ConfigOptionBool{false});
|
||||||
print_config->set_key_value("timelapse_type", new ConfigOptionEnum<TimelapseType>(tlTraditional));
|
print_config->set_key_value("timelapse_type", new ConfigOptionEnum<TimelapseType>(tlTraditional));
|
||||||
print_config->set_key_value("wall_loops", new ConfigOptionInt(1));
|
print_config->set_key_value("wall_loops", new ConfigOptionInt(1));
|
||||||
|
@ -10297,6 +10308,10 @@ void Plater::calib_junction_deviation(const Calib_Params& params)
|
||||||
print_config->set_key_value("detect_thin_wall", new ConfigOptionBool(false));
|
print_config->set_key_value("detect_thin_wall", new ConfigOptionBool(false));
|
||||||
print_config->set_key_value("spiral_mode", new ConfigOptionBool(true));
|
print_config->set_key_value("spiral_mode", new ConfigOptionBool(true));
|
||||||
print_config->set_key_value("spiral_mode_smooth", new ConfigOptionBool(true));
|
print_config->set_key_value("spiral_mode_smooth", new ConfigOptionBool(true));
|
||||||
|
print_config->set_key_value("bottom_surface_pattern", new ConfigOptionEnum<InfillPattern>(ipRectilinear));
|
||||||
|
print_config->set_key_value("outer_wall_speed", new ConfigOptionFloat(200));
|
||||||
|
print_config->set_key_value("default_acceleration", new ConfigOptionFloat(2000));
|
||||||
|
print_config->set_key_value("outer_wall_acceleration", new ConfigOptionFloat(2000));
|
||||||
model().objects[0]->config.set_key_value("brim_type", new ConfigOptionEnum<BrimType>(btOuterOnly));
|
model().objects[0]->config.set_key_value("brim_type", new ConfigOptionEnum<BrimType>(btOuterOnly));
|
||||||
model().objects[0]->config.set_key_value("brim_width", new ConfigOptionFloat(3.0));
|
model().objects[0]->config.set_key_value("brim_width", new ConfigOptionFloat(3.0));
|
||||||
model().objects[0]->config.set_key_value("brim_object_gap", new ConfigOptionFloat(0.0));
|
model().objects[0]->config.set_key_value("brim_object_gap", new ConfigOptionFloat(0.0));
|
||||||
|
|
|
@ -827,7 +827,7 @@ Input_Shaping_Freq_Test_Dlg::Input_Shaping_Freq_Test_Dlg(wxWindow* parent, wxWin
|
||||||
m_tiFreqStartX = new TextInput(this, std::to_string(15), _L("HZ"), "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
m_tiFreqStartX = new TextInput(this, std::to_string(15), _L("HZ"), "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
||||||
m_tiFreqStartX->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
m_tiFreqStartX->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
||||||
auto end_x_text = new wxStaticText(this, wxID_ANY, end_x_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
|
auto end_x_text = new wxStaticText(this, wxID_ANY, end_x_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
|
||||||
m_tiFreqEndX = new TextInput(this, std::to_string(60), _L("HZ"), "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
m_tiFreqEndX = new TextInput(this, std::to_string(110), _L("HZ"), "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
||||||
m_tiFreqEndX->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
m_tiFreqEndX->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
||||||
|
|
||||||
x_freq_sizer->Add(start_x_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, 2);
|
x_freq_sizer->Add(start_x_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, 2);
|
||||||
|
@ -842,7 +842,7 @@ Input_Shaping_Freq_Test_Dlg::Input_Shaping_Freq_Test_Dlg(wxWindow* parent, wxWin
|
||||||
m_tiFreqStartY = new TextInput(this, std::to_string(15), _L("HZ"), "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
m_tiFreqStartY = new TextInput(this, std::to_string(15), _L("HZ"), "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
||||||
m_tiFreqStartY->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
m_tiFreqStartY->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
||||||
auto end_y_text = new wxStaticText(this, wxID_ANY, end_y_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
|
auto end_y_text = new wxStaticText(this, wxID_ANY, end_y_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
|
||||||
m_tiFreqEndY = new TextInput(this, std::to_string(60), _L("HZ"), "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
m_tiFreqEndY = new TextInput(this, std::to_string(110), _L("HZ"), "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
||||||
m_tiFreqEndY->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
m_tiFreqEndY->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
||||||
|
|
||||||
y_freq_sizer->Add(start_y_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, 2);
|
y_freq_sizer->Add(start_y_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, 2);
|
||||||
|
@ -855,7 +855,7 @@ Input_Shaping_Freq_Test_Dlg::Input_Shaping_Freq_Test_Dlg(wxWindow* parent, wxWin
|
||||||
wxString damping_factor_str = _L("Damp: ");
|
wxString damping_factor_str = _L("Damp: ");
|
||||||
auto damping_factor_sizer = new wxBoxSizer(wxHORIZONTAL);
|
auto damping_factor_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
auto damping_factor_text = new wxStaticText(this, wxID_ANY, damping_factor_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
|
auto damping_factor_text = new wxStaticText(this, wxID_ANY, damping_factor_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
|
||||||
m_tiDampingFactor = new TextInput(this, wxString::Format("%.2f", 0.35), "", "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
m_tiDampingFactor = new TextInput(this, wxString::Format("%.3f", 0.15), "", "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
||||||
m_tiDampingFactor->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
m_tiDampingFactor->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
||||||
|
|
||||||
damping_factor_sizer->Add(damping_factor_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, 2);
|
damping_factor_sizer->Add(damping_factor_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, 2);
|
||||||
|
@ -863,7 +863,7 @@ Input_Shaping_Freq_Test_Dlg::Input_Shaping_Freq_Test_Dlg(wxWindow* parent, wxWin
|
||||||
settings_sizer->Add(damping_factor_sizer);
|
settings_sizer->Add(damping_factor_sizer);
|
||||||
|
|
||||||
// Add a note explaining that 0 means use default value
|
// Add a note explaining that 0 means use default value
|
||||||
auto note_text = new wxStaticText(this, wxID_ANY, _L("Note: 0 Damp = Printer default."), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
|
auto note_text = new wxStaticText(this, wxID_ANY, _L("Recommended: Set Damp to 0.\nThis will use the printer's default or the last saved value."), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
|
||||||
note_text->SetForegroundColour(wxColour(128, 128, 128));
|
note_text->SetForegroundColour(wxColour(128, 128, 128));
|
||||||
settings_sizer->Add(note_text, 0, wxALL, 5);
|
settings_sizer->Add(note_text, 0, wxALL, 5);
|
||||||
|
|
||||||
|
@ -983,10 +983,10 @@ Input_Shaping_Damp_Test_Dlg::Input_Shaping_Damp_Test_Dlg(wxWindow* parent, wxWin
|
||||||
// Damping Factor Start and End
|
// Damping Factor Start and End
|
||||||
auto damp_sizer = new wxBoxSizer(wxHORIZONTAL);
|
auto damp_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
auto damp_start_text = new wxStaticText(this, wxID_ANY, damp_start_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
|
auto damp_start_text = new wxStaticText(this, wxID_ANY, damp_start_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
|
||||||
m_tiDampingFactorStart = new TextInput(this, wxString::Format("%.2f", 0.00), "", "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
m_tiDampingFactorStart = new TextInput(this, wxString::Format("%.3f", 0.00), "", "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
||||||
m_tiDampingFactorStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
m_tiDampingFactorStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
||||||
auto damp_end_text = new wxStaticText(this, wxID_ANY, damp_end_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
|
auto damp_end_text = new wxStaticText(this, wxID_ANY, damp_end_str, wxDefaultPosition, st_size, wxALIGN_LEFT);
|
||||||
m_tiDampingFactorEnd = new TextInput(this, wxString::Format("%.2f", 0.40), "", "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
m_tiDampingFactorEnd = new TextInput(this, wxString::Format("%.3f", 0.40), "", "", wxDefaultPosition, ti_size, wxTE_CENTRE);
|
||||||
m_tiDampingFactorEnd->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
m_tiDampingFactorEnd->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
||||||
|
|
||||||
damp_sizer->Add(damp_start_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, 2);
|
damp_sizer->Add(damp_start_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, 2);
|
||||||
|
|