From d6290fdbbbdd65360f3d30509af0ae4468df302b Mon Sep 17 00:00:00 2001 From: fr3ak2402 <96239814+fr3ak2402@users.noreply.github.com> Date: Fri, 5 May 2023 17:16:41 +0200 Subject: [PATCH] Add Sovol printer profiles (#963) * Adding the Qidi X-Plus Qidi X-Plus profile Qidi X-Plus image * Revision of the pressure plate model Qidi X-Plus * Add Artillery Profiles Artillery Genius Artillery Hornet * Adds Elepoo Neptune 3 profiles Elepoo Neptune 3 Elepoo Neptune 3 Pro Elepoo Neptune 3 Plus Elepoo Neptune 3 Max * Revision of the Qidi profiles Adjustments of the speeds: Qidi X-Plus Qidi X-Max Qidi X-CF Pro * Revision of the Qidi profiles Qidi X-Smart 3 Qidi X-Plus 3 Qidi X-Max 3 * Add Voxelab Aquila X2 Profile * Revision of the Voxelab Processes Changing the Aquila X2 process names * Acceleration adjustment Voxelab Voxelab Aquila X2 * Adjustment of the printing area * Add Sovol printer profiles --- resources/profiles/Sovol.json | 99 ++++++++++++ .../Sovol/filament/Sovol Generic ABS.json | 20 +++ .../Sovol/filament/Sovol Generic PETG.json | 47 ++++++ .../Sovol/filament/Sovol Generic PLA.json | 23 +++ .../Sovol/filament/fdm_filament_abs.json | 88 +++++++++++ .../Sovol/filament/fdm_filament_common.json | 144 ++++++++++++++++++ .../Sovol/filament/fdm_filament_pet.json | 82 ++++++++++ .../Sovol/filament/fdm_filament_pla.json | 91 +++++++++++ .../machine/Sovol SV01 Pro 0.4 nozzle.json | 109 +++++++++++++ .../Sovol/machine/Sovol SV01 Pro.json | 12 ++ .../Sovol/machine/Sovol SV02 0.4 nozzle.json | 141 +++++++++++++++++ .../profiles/Sovol/machine/Sovol SV02.json | 12 ++ .../Sovol/machine/Sovol SV05 0.4 nozzle.json | 109 +++++++++++++ .../profiles/Sovol/machine/Sovol SV05.json | 12 ++ .../Sovol/machine/fdm_machine_common.json | 117 ++++++++++++++ .../0.18mm Optimal @Sovol SV01Pro.json | 109 +++++++++++++ .../process/0.18mm Optimal @Sovol SV02.json | 109 +++++++++++++ .../process/0.18mm Optimal @Sovol SV05.json | 109 +++++++++++++ .../0.20mm Standard @Sovol SV01Pro.json | 109 +++++++++++++ .../process/0.20mm Standard @Sovol SV02.json | 109 +++++++++++++ .../process/0.20mm Standard @Sovol SV05.json | 109 +++++++++++++ .../Sovol/process/fdm_process_common.json | 70 +++++++++ .../Sovol/sovol_sv01pro_buildplate_model.stl | Bin 0 -> 18684 bytes .../sovol_sv01pro_buildplate_texture.png | Bin 0 -> 6643 bytes .../Sovol/sovol_sv02_buildplate_model.stl | Bin 0 -> 18684 bytes .../Sovol/sovol_sv02_buildplate_texture.png | Bin 0 -> 6634 bytes .../Sovol/sovol_sv05_buildplate_model.stl | Bin 0 -> 18684 bytes .../Sovol/sovol_sv05_buildplate_texture.png | Bin 0 -> 6000 bytes .../image/printer/Sovol SV01 Pro_cover.png | Bin 0 -> 24497 bytes .../web/image/printer/Sovol SV02_cover.png | Bin 0 -> 23535 bytes .../web/image/printer/Sovol SV05_cover.png | Bin 0 -> 31559 bytes 31 files changed, 1830 insertions(+) create mode 100644 resources/profiles/Sovol.json create mode 100644 resources/profiles/Sovol/filament/Sovol Generic ABS.json create mode 100644 resources/profiles/Sovol/filament/Sovol Generic PETG.json create mode 100644 resources/profiles/Sovol/filament/Sovol Generic PLA.json create mode 100644 resources/profiles/Sovol/filament/fdm_filament_abs.json create mode 100644 resources/profiles/Sovol/filament/fdm_filament_common.json create mode 100644 resources/profiles/Sovol/filament/fdm_filament_pet.json create mode 100644 resources/profiles/Sovol/filament/fdm_filament_pla.json create mode 100644 resources/profiles/Sovol/machine/Sovol SV01 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Sovol/machine/Sovol SV01 Pro.json create mode 100644 resources/profiles/Sovol/machine/Sovol SV02 0.4 nozzle.json create mode 100644 resources/profiles/Sovol/machine/Sovol SV02.json create mode 100644 resources/profiles/Sovol/machine/Sovol SV05 0.4 nozzle.json create mode 100644 resources/profiles/Sovol/machine/Sovol SV05.json create mode 100644 resources/profiles/Sovol/machine/fdm_machine_common.json create mode 100644 resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV01Pro.json create mode 100644 resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV02.json create mode 100644 resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV05.json create mode 100644 resources/profiles/Sovol/process/0.20mm Standard @Sovol SV01Pro.json create mode 100644 resources/profiles/Sovol/process/0.20mm Standard @Sovol SV02.json create mode 100644 resources/profiles/Sovol/process/0.20mm Standard @Sovol SV05.json create mode 100644 resources/profiles/Sovol/process/fdm_process_common.json create mode 100644 resources/profiles/Sovol/sovol_sv01pro_buildplate_model.stl create mode 100644 resources/profiles/Sovol/sovol_sv01pro_buildplate_texture.png create mode 100644 resources/profiles/Sovol/sovol_sv02_buildplate_model.stl create mode 100644 resources/profiles/Sovol/sovol_sv02_buildplate_texture.png create mode 100644 resources/profiles/Sovol/sovol_sv05_buildplate_model.stl create mode 100644 resources/profiles/Sovol/sovol_sv05_buildplate_texture.png create mode 100644 resources/web/image/printer/Sovol SV01 Pro_cover.png create mode 100644 resources/web/image/printer/Sovol SV02_cover.png create mode 100644 resources/web/image/printer/Sovol SV05_cover.png diff --git a/resources/profiles/Sovol.json b/resources/profiles/Sovol.json new file mode 100644 index 0000000000..55820ca6ae --- /dev/null +++ b/resources/profiles/Sovol.json @@ -0,0 +1,99 @@ +{ + "name": "Sovol", + "url": "", + "version": "01.00.00.00", + "force_update": "0", + "description": "Sovol configurations", + "machine_model_list": [ + { + "name": "Sovol SV01 Pro", + "sub_path": "machine/Sovol SV01 Pro.json" + }, + { + "name": "Sovol SV02", + "sub_path": "machine/Sovol SV02.json" + }, + { + "name": "Sovol SV05", + "sub_path": "machine/Sovol SV05.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "0.18mm Optimal @Sovol SV01Pro", + "sub_path": "process/0.18mm Optimal @Sovol SV01Pro.json" + }, + { + "name": "0.18mm Optimal @Sovol SV02", + "sub_path": "process/0.18mm Optimal @Sovol SV02.json" + }, + { + "name": "0.18mm Optimal @Sovol SV05", + "sub_path": "process/0.18mm Optimal @Sovol SV05.json" + }, + { + "name": "0.20mm Standard @Sovol SV01Pro", + "sub_path": "process/0.20mm Standard @Sovol SV01Pro.json" + }, + { + "name": "0.20mm Standard @Sovol SV02", + "sub_path": "process/0.20mm Standard @Sovol SV02.json" + }, + { + "name": "0.20mm Standard @Sovol SV05", + "sub_path": "process/0.20mm Standard @Sovol SV05.json" + } + ], + "filament_list": [ + { + "name": "fdm_filament_common", + "sub_path": "filament/fdm_filament_common.json" + }, + { + "name": "fdm_filament_abs", + "sub_path": "filament/fdm_filament_abs.json" + }, + { + "name": "fdm_filament_pet", + "sub_path": "filament/fdm_filament_pet.json" + }, + { + "name": "fdm_filament_pla", + "sub_path": "filament/fdm_filament_pla.json" + }, + { + "name": "Sovol Generic ABS", + "sub_path": "filament/Sovol Generic ABS.json" + }, + { + "name": "Sovol Generic PETG", + "sub_path": "filament/Sovol Generic PETG.json" + }, + { + "name": "Sovol Generic PLA", + "sub_path": "filament/Sovol Generic PLA.json" + } + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "Sovol SV01 Pro 0.4 nozzle", + "sub_path": "machine/Sovol SV01 Pro 0.4 nozzle.json" + }, + { + "name": "Sovol SV02 0.4 nozzle", + "sub_path": "machine/Sovol SV02 0.4 nozzle.json" + }, + { + "name": "Sovol SV05 0.4 nozzle", + "sub_path": "machine/Sovol SV05 0.4 nozzle.json" + } + ] +} diff --git a/resources/profiles/Sovol/filament/Sovol Generic ABS.json b/resources/profiles/Sovol/filament/Sovol Generic ABS.json new file mode 100644 index 0000000000..60d51360dc --- /dev/null +++ b/resources/profiles/Sovol/filament/Sovol Generic ABS.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "Sovol Generic ABS", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_abs", + "filament_flow_ratio": [ + "0.926" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "compatible_printers": [ + "Sovol SV01 Pro 0.4 nozzle", + "Sovol SV02 0.4 nozzle", + "Sovol SV05 0.4 nozzle" + ] +} diff --git a/resources/profiles/Sovol/filament/Sovol Generic PETG.json b/resources/profiles/Sovol/filament/Sovol Generic PETG.json new file mode 100644 index 0000000000..403ea5c4a9 --- /dev/null +++ b/resources/profiles/Sovol/filament/Sovol Generic PETG.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "GFSG99", + "name": "Sovol Generic PETG", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pet", + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "fan_cooling_layer_time": [ + "30" + ], + "overhang_fan_speed": [ + "90" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "slow_down_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "compatible_printers": [ + "Sovol SV01 Pro 0.4 nozzle", + "Sovol SV02 0.4 nozzle", + "Sovol SV05 0.4 nozzle" + ] +} diff --git a/resources/profiles/Sovol/filament/Sovol Generic PLA.json b/resources/profiles/Sovol/filament/Sovol Generic PLA.json new file mode 100644 index 0000000000..6a942e975b --- /dev/null +++ b/resources/profiles/Sovol/filament/Sovol Generic PLA.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Sovol Generic PLA", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Sovol SV01 Pro 0.4 nozzle", + "Sovol SV02 0.4 nozzle", + "Sovol SV05 0.4 nozzle" + ] +} diff --git a/resources/profiles/Sovol/filament/fdm_filament_abs.json b/resources/profiles/Sovol/filament/fdm_filament_abs.json new file mode 100644 index 0000000000..a3a4574810 --- /dev/null +++ b/resources/profiles/Sovol/filament/fdm_filament_abs.json @@ -0,0 +1,88 @@ +{ + "type": "filament", + "name": "fdm_filament_abs", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "cool_plate_temp" : [ + "80" + ], + "eng_plate_temp" : [ + "80" + ], + "hot_plate_temp" : [ + "80" + ], + "textured_plate_temp" : [ + "80" + ], + "cool_plate_temp_initial_layer" : [ + "80" + ], + "eng_plate_temp_initial_layer" : [ + "80" + ], + "hot_plate_temp_initial_layer" : [ + "80" + ], + "textured_plate_temp_initial_layer" : [ + "80" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "fan_cooling_layer_time": [ + "30" + ], + "filament_max_volumetric_speed": [ + "0" + ], + "filament_type": [ + "ABS" + ], + "filament_density": [ + "1.10" + ], + "filament_cost": [ + "20" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_max_speed": [ + "5" + ], + "fan_min_speed": [ + "5" + ], + "overhang_fan_threshold": [ + "25%" + ], + "overhang_fan_speed": [ + "80" + ], + "nozzle_temperature": [ + "235" + ], + "temperature_vitrification": [ + "110" + ], + "nozzle_temperature_range_low": [ + "235" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "slow_down_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "15" + ] +} diff --git a/resources/profiles/Sovol/filament/fdm_filament_common.json b/resources/profiles/Sovol/filament/fdm_filament_common.json new file mode 100644 index 0000000000..823c736e8a --- /dev/null +++ b/resources/profiles/Sovol/filament/fdm_filament_common.json @@ -0,0 +1,144 @@ +{ + "type": "filament", + "name": "fdm_filament_common", + "from": "system", + "instantiation": "false", + "cool_plate_temp" : [ + "60" + ], + "eng_plate_temp" : [ + "60" + ], + "hot_plate_temp" : [ + "60" + ], + "textured_plate_temp" : [ + "60" + ], + "cool_plate_temp_initial_layer" : [ + "60" + ], + "eng_plate_temp_initial_layer" : [ + "60" + ], + "hot_plate_temp_initial_layer" : [ + "60" + ], + "textured_plate_temp_initial_layer" : [ + "60" + ], + "overhang_fan_threshold": [ + "95%" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "1" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "0" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "2.85" + ], + "filament_max_volumetric_speed": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_settings_id": [ + "" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "bed_type": [ + "Cool Plate" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "full_fan_speed_layer": [ + "0" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "35" + ], + "slow_down_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "nozzle_temperature": [ + "200" + ], + "temperature_vitrification": [ + "100" + ] +} diff --git a/resources/profiles/Sovol/filament/fdm_filament_pet.json b/resources/profiles/Sovol/filament/fdm_filament_pet.json new file mode 100644 index 0000000000..0c65253151 --- /dev/null +++ b/resources/profiles/Sovol/filament/fdm_filament_pet.json @@ -0,0 +1,82 @@ +{ + "type": "filament", + "name": "fdm_filament_pet", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "cool_plate_temp" : [ + "85" + ], + "eng_plate_temp" : [ + "85" + ], + "hot_plate_temp" : [ + "85" + ], + "textured_plate_temp" : [ + "85" + ], + "cool_plate_temp_initial_layer" : [ + "85" + ], + "eng_plate_temp_initial_layer" : [ + "85" + ], + "hot_plate_temp_initial_layer" : [ + "85" + ], + "textured_plate_temp_initial_layer" : [ + "85" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "fan_cooling_layer_time": [ + "15" + ], + "filament_max_volumetric_speed": [ + "0" + ], + "filament_type": [ + "PETG" + ], + "filament_density": [ + "1.27" + ], + "filament_cost": [ + "30" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "overhang_fan_speed": [ + "50" + ], + "nozzle_temperature": [ + "235" + ], + "temperature_vitrification": [ + "80" + ], + "nozzle_temperature_range_low": [ + "235" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} diff --git a/resources/profiles/Sovol/filament/fdm_filament_pla.json b/resources/profiles/Sovol/filament/fdm_filament_pla.json new file mode 100644 index 0000000000..1111af5b8d --- /dev/null +++ b/resources/profiles/Sovol/filament/fdm_filament_pla.json @@ -0,0 +1,91 @@ +{ + "type": "filament", + "name": "fdm_filament_pla", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "fan_cooling_layer_time": [ + "100" + ], + "filament_max_volumetric_speed": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_density": [ + "1.24" + ], + "filament_cost": [ + "20" + ], + "cool_plate_temp" : [ + "60" + ], + "eng_plate_temp" : [ + "60" + ], + "hot_plate_temp" : [ + "60" + ], + "textured_plate_temp" : [ + "60" + ], + "cool_plate_temp_initial_layer" : [ + "55" + ], + "eng_plate_temp_initial_layer" : [ + "55" + ], + "hot_plate_temp_initial_layer" : [ + "55" + ], + "textured_plate_temp_initial_layer" : [ + "55" + ], + "nozzle_temperature_initial_layer": [ + "205" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "nozzle_temperature": [ + "210" + ], + "temperature_vitrification": [ + "60" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_range_high": [ + "210" + ], + "slow_down_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "4" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} diff --git a/resources/profiles/Sovol/machine/Sovol SV01 Pro 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV01 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..2a6112d7a1 --- /dev/null +++ b/resources/profiles/Sovol/machine/Sovol SV01 Pro 0.4 nozzle.json @@ -0,0 +1,109 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Sovol SV01 Pro 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "Sovol SV01 Pro", + "default_print_profile": "0.20mm Standard @Sovol SV01Pro", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "280x0", + "280x240", + "0x240" + ], + "printable_height": "300", + "nozzle_type": "undefine", + "auxiliary_fan": "0", + "machine_max_acceleration_extruding": [ + "500", + "500" + ], + "machine_max_acceleration_retracting": [ + "1000", + "1000" + ], + "machine_max_acceleration_travel": [ + "1500", + "1250" + ], + "machine_max_acceleration_x": [ + "500", + "500" + ], + "machine_max_acceleration_y": [ + "500", + "500" + ], + "machine_max_acceleration_z": [ + "100", + "100" + ], + "machine_max_speed_e": [ + "60", + "60" + ], + "machine_max_speed_x": [ + "500", + "500" + ], + "machine_max_speed_y": [ + "500", + "500" + ], + "machine_max_speed_z": [ + "10", + "10" + ], + "machine_max_jerk_e": [ + "5", + "5" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "0.4", + "0.4" + ], + "max_layer_height": [ + "0.28" + ], + "min_layer_height": [ + "0.08" + ], + "printer_settings_id": "Sovol", + "retraction_minimum_travel": [ + "2" + ], + "retract_before_wipe": [ + "70%" + ], + "retraction_length": [ + "1" + ], + "retract_length_toolchange": [ + "1" + ], + "deretraction_speed": [ + "40" + ], + "single_extruder_multi_material": "0", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M0", + "default_filament_profile": [ + "Sovol Generic PLA" + ], + "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S{hot_plate_temp_initial_layer} ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S{nozzle_temperature_initial_layer} ; set final nozzle temp\nM190 S{hot_plate_temp_initial_layer} ; wait for bed temp to stabilize\nM109 S{nozzle_temperature_initial_layer} ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", + "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", + "scan_first_layer": "0" +} \ No newline at end of file diff --git a/resources/profiles/Sovol/machine/Sovol SV01 Pro.json b/resources/profiles/Sovol/machine/Sovol SV01 Pro.json new file mode 100644 index 0000000000..b7c47060eb --- /dev/null +++ b/resources/profiles/Sovol/machine/Sovol SV01 Pro.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Sovol SV01 Pro", + "model_id": "Sovol-SV01-Pro", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "Sovol", + "bed_model": "sovol_sv01pro_buildplate_model.stl", + "bed_texture": "sovol_sv01pro_buildplate_texture.png", + "hotend_model": "", + "default_materials": "Sovol Generic ABS;Sovol Generic PETG;Sovol Generic PLA" +} diff --git a/resources/profiles/Sovol/machine/Sovol SV02 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV02 0.4 nozzle.json new file mode 100644 index 0000000000..ebf3b78519 --- /dev/null +++ b/resources/profiles/Sovol/machine/Sovol SV02 0.4 nozzle.json @@ -0,0 +1,141 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Sovol SV02 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "Sovol SV02", + "default_print_profile": "0.20mm Standard @Sovol SV02", + "nozzle_diameter": [ + "0.4", + "0.4" + ], + "extruder_colour": [ + "#FCE94F", + "#FCE94F" + ], + "extruder_offset": [ + "0x0", + "0x0" + ], + "printable_area": [ + "0x0", + "280x0", + "280x240", + "0x240" + ], + "printable_height": "300", + "nozzle_type": "undefine", + "auxiliary_fan": "0", + "machine_max_acceleration_extruding": [ + "500", + "500" + ], + "machine_max_acceleration_retracting": [ + "1000", + "1000" + ], + "machine_max_acceleration_travel": [ + "1500", + "1250" + ], + "machine_max_acceleration_x": [ + "500", + "500" + ], + "machine_max_acceleration_y": [ + "500", + "500" + ], + "machine_max_acceleration_z": [ + "100", + "100" + ], + "machine_max_speed_e": [ + "60", + "60" + ], + "machine_max_speed_x": [ + "500", + "500" + ], + "machine_max_speed_y": [ + "500", + "500" + ], + "machine_max_speed_z": [ + "10", + "10" + ], + "machine_max_jerk_e": [ + "5", + "5" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "0.4", + "0.4" + ], + "max_layer_height": [ + "0.28", + "0.28" + ], + "min_layer_height": [ + "0.08", + "0.08" + ], + "printer_settings_id": "Sovol", + "retraction_minimum_travel": [ + "2", + "2" + ], + "retract_before_wipe": [ + "70%", + "70%" + ], + "retraction_length": [ + "6", + "6" + ], + "retract_length_toolchange": [ + "1", + "1" + ], + "retract_when_changing_layer": [ + "1", + "1" + ], + "retract_restart_extra": [ + "0", + "0" + ], + "retract_restart_extra_toolchange": [ + "0", + "0" + ], + "deretraction_speed": [ + "60", + "60" + ], + "wipe": [ + "1", + "1" + ], + "single_extruder_multi_material": "1", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M0", + "default_filament_profile": [ + "Sovol Generic PLA" + ], + "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[hot_plate_temp_initial_layer] ; set bed temp\nM190 S[hot_plate_temp_initial_layer] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG28 ; home all\nG1 Z2 F240\nG1 X2 Y10 F3000\nG1 Z0.28 F240\nG92 E0\nG1 Y190 E15 F1500 ; intro line\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E15 F1200 ; intro line\nG92 E0", + "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", + "scan_first_layer": "0" +} \ No newline at end of file diff --git a/resources/profiles/Sovol/machine/Sovol SV02.json b/resources/profiles/Sovol/machine/Sovol SV02.json new file mode 100644 index 0000000000..4ffc265976 --- /dev/null +++ b/resources/profiles/Sovol/machine/Sovol SV02.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Sovol SV02", + "model_id": "Sovol-SV02", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "Sovol", + "bed_model": "sovol_sv02_buildplate_model.stl", + "bed_texture": "sovol_sv02_buildplate_texture.png", + "hotend_model": "", + "default_materials": "Sovol Generic ABS;Sovol Generic PETG;Sovol Generic PLA" +} diff --git a/resources/profiles/Sovol/machine/Sovol SV05 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV05 0.4 nozzle.json new file mode 100644 index 0000000000..0555504a1f --- /dev/null +++ b/resources/profiles/Sovol/machine/Sovol SV05 0.4 nozzle.json @@ -0,0 +1,109 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Sovol SV05 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "Sovol SV05", + "default_print_profile": "0.20mm Standard @Sovol SV05", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "220x0", + "220x220", + "0x220" + ], + "printable_height": "300", + "nozzle_type": "undefine", + "auxiliary_fan": "0", + "machine_max_acceleration_extruding": [ + "500", + "500" + ], + "machine_max_acceleration_retracting": [ + "1000", + "1000" + ], + "machine_max_acceleration_travel": [ + "1500", + "1250" + ], + "machine_max_acceleration_x": [ + "500", + "500" + ], + "machine_max_acceleration_y": [ + "500", + "500" + ], + "machine_max_acceleration_z": [ + "100", + "100" + ], + "machine_max_speed_e": [ + "60", + "60" + ], + "machine_max_speed_x": [ + "500", + "500" + ], + "machine_max_speed_y": [ + "500", + "500" + ], + "machine_max_speed_z": [ + "5", + "5" + ], + "machine_max_jerk_e": [ + "5", + "5" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "0.4", + "0.4" + ], + "max_layer_height": [ + "0.32" + ], + "min_layer_height": [ + "0.08" + ], + "printer_settings_id": "Sovol", + "retraction_minimum_travel": [ + "2" + ], + "retract_before_wipe": [ + "70%" + ], + "retraction_length": [ + "2" + ], + "retract_length_toolchange": [ + "1" + ], + "deretraction_speed": [ + "40" + ], + "single_extruder_multi_material": "0", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M0", + "default_filament_profile": [ + "Sovol Generic PLA" + ], + "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S{hot_plate_temp_initial_layer} ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S{nozzle_temperature_initial_layer} ; set final nozzle temp\nM190 S{hot_plate_temp_initial_layer} ; wait for bed temp to stabilize\nM109 S{nozzle_temperature_initial_layer} ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", + "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", + "scan_first_layer": "0" +} \ No newline at end of file diff --git a/resources/profiles/Sovol/machine/Sovol SV05.json b/resources/profiles/Sovol/machine/Sovol SV05.json new file mode 100644 index 0000000000..10e8082a86 --- /dev/null +++ b/resources/profiles/Sovol/machine/Sovol SV05.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Sovol SV05", + "model_id": "Sovol-SV05", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "Sovol", + "bed_model": "sovol_sv05_buildplate_model.stl", + "bed_texture": "sovol_sv05_buildplate_texture.png", + "hotend_model": "", + "default_materials": "Sovol Generic ABS;Sovol Generic PETG;Sovol Generic PLA" +} diff --git a/resources/profiles/Sovol/machine/fdm_machine_common.json b/resources/profiles/Sovol/machine/fdm_machine_common.json new file mode 100644 index 0000000000..ea4531cc3d --- /dev/null +++ b/resources/profiles/Sovol/machine/fdm_machine_common.json @@ -0,0 +1,117 @@ +{ + "type": "machine", + "name": "fdm_machine_common", + "from": "system", + "instantiation": "false", + "printer_technology": "FFF", + "deretraction_speed": [ + "40" + ], + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "gcode_flavor": "marlin", + "silent_mode": "0", + "machine_max_acceleration_e": [ + "5000" + ], + "machine_max_acceleration_extruding": [ + "500" + ], + "machine_max_acceleration_retracting": [ + "1000" + ], + "machine_max_acceleration_x": [ + "500" + ], + "machine_max_acceleration_y": [ + "500" + ], + "machine_max_acceleration_z": [ + "100" + ], + "machine_max_speed_e": [ + "60" + ], + "machine_max_speed_x": [ + "500" + ], + "machine_max_speed_y": [ + "500" + ], + "machine_max_speed_z": [ + "10" + ], + "machine_max_jerk_e": [ + "5" + ], + "machine_max_jerk_x": [ + "8" + ], + "machine_max_jerk_y": [ + "8" + ], + "machine_max_jerk_z": [ + "0.4" + ], + "machine_min_extruding_rate": [ + "0" + ], + "machine_min_travel_rate": [ + "0" + ], + "max_layer_height": [ + "0.28" + ], + "min_layer_height": [ + "0.08" + ], + "printable_height": "250", + "extruder_clearance_radius": "65", + "extruder_clearance_height_to_rod": "36", + "extruder_clearance_height_to_lid": "140", + "nozzle_diameter": [ + "0.4" + ], + "printer_settings_id": "", + "printer_variant": "0.4", + "retraction_minimum_travel": [ + "2" + ], + "retract_before_wipe": [ + "70%" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_length": [ + "5" + ], + "retract_length_toolchange": [ + "1" + ], + "z_hop": [ + "0" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retraction_speed": [ + "60" + ], + "single_extruder_multi_material": "0", + "change_filament_gcode": "", + "wipe": [ + "1" + ], + "z_lift_type": "NormalLift", + "default_print_profile": "", + "machine_start_gcode": "", + "machine_end_gcode": "" +} diff --git a/resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV01Pro.json b/resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV01Pro.json new file mode 100644 index 0000000000..69b5949b63 --- /dev/null +++ b/resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV01Pro.json @@ -0,0 +1,109 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.18mm Optimal @Sovol SV01Pro", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.18", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bridge_flow": "0.85", + "bridge_speed": "25", + "brim_width": "0", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "0", + "outer_wall_acceleration": "0", + "top_surface_acceleration": "0", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "enable_arc_fitting": "0", + "outer_wall_line_width": "0.42", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.44", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_acceleration": "0", + "travel_acceleration": "0", + "inner_wall_acceleration": "0", + "initial_layer_line_width": "0.42", + "initial_layer_print_height": "0.24", + "infill_combination": "0", + "sparse_infill_line_width": "0.44", + "infill_wall_overlap": "23%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "15", + "ironing_type": "top", + "reduce_infill_retraction": "1", + "filename_format": "[input_filename_base].gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "inner_wall_line_width": "0.45", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "3", + "skirt_height": "2", + "skirt_loops": "2", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "grid", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.15", + "support_filament": "0", + "support_line_width": "0.38", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.2", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "0.2", + "support_speed": "40", + "support_threshold_angle": "40", + "support_object_xy_distance": "60%", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "1", + "top_surface_pattern": "monotonic", + "top_surface_line_width": "0.38", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "initial_layer_speed": "35%", + "initial_layer_infill_speed": "35%", + "outer_wall_speed": "25", + "inner_wall_speed": "40", + "internal_solid_infill_speed": "40", + "top_surface_speed": "30", + "gap_infill_speed": "30", + "sparse_infill_speed": "60", + "travel_speed": "150", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "compatible_printers": [ + "Sovol SV01 Pro 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV02.json b/resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV02.json new file mode 100644 index 0000000000..0659b353cc --- /dev/null +++ b/resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV02.json @@ -0,0 +1,109 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.18mm Optimal @Sovol SV02", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.18", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bridge_flow": "0.85", + "bridge_speed": "25", + "brim_width": "0", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "0", + "outer_wall_acceleration": "0", + "top_surface_acceleration": "0", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "enable_arc_fitting": "0", + "outer_wall_line_width": "0.42", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.44", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_acceleration": "0", + "travel_acceleration": "0", + "inner_wall_acceleration": "0", + "initial_layer_line_width": "0.42", + "initial_layer_print_height": "0.24", + "infill_combination": "0", + "sparse_infill_line_width": "0.44", + "infill_wall_overlap": "23%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "15", + "ironing_type": "top", + "reduce_infill_retraction": "1", + "filename_format": "[input_filename_base].gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "inner_wall_line_width": "0.45", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "3", + "skirt_height": "2", + "skirt_loops": "2", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "grid", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.15", + "support_filament": "0", + "support_line_width": "0.38", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.2", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "0.2", + "support_speed": "40", + "support_threshold_angle": "40", + "support_object_xy_distance": "60%", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "1", + "top_surface_pattern": "monotonic", + "top_surface_line_width": "0.38", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "initial_layer_speed": "35%", + "initial_layer_infill_speed": "35%", + "outer_wall_speed": "25", + "inner_wall_speed": "40", + "internal_solid_infill_speed": "40", + "top_surface_speed": "30", + "gap_infill_speed": "30", + "sparse_infill_speed": "60", + "travel_speed": "150", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "compatible_printers": [ + "Sovol SV02 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV05.json b/resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV05.json new file mode 100644 index 0000000000..62d5c1a1b8 --- /dev/null +++ b/resources/profiles/Sovol/process/0.18mm Optimal @Sovol SV05.json @@ -0,0 +1,109 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.18mm Optimal @Sovol SV05", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.18", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bridge_flow": "0.85", + "bridge_speed": "25", + "brim_width": "0", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "0", + "outer_wall_acceleration": "0", + "top_surface_acceleration": "0", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "enable_arc_fitting": "0", + "outer_wall_line_width": "0.42", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.44", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_acceleration": "0", + "travel_acceleration": "0", + "inner_wall_acceleration": "0", + "initial_layer_line_width": "0.42", + "initial_layer_print_height": "0.24", + "infill_combination": "0", + "sparse_infill_line_width": "0.44", + "infill_wall_overlap": "23%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "15", + "ironing_type": "top", + "reduce_infill_retraction": "1", + "filename_format": "[input_filename_base].gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "inner_wall_line_width": "0.45", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "3", + "skirt_height": "2", + "skirt_loops": "2", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "grid", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.15", + "support_filament": "0", + "support_line_width": "0.38", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.2", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "0.2", + "support_speed": "40", + "support_threshold_angle": "40", + "support_object_xy_distance": "60%", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "1", + "top_surface_pattern": "monotonic", + "top_surface_line_width": "0.38", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "initial_layer_speed": "35%", + "initial_layer_infill_speed": "35%", + "outer_wall_speed": "25", + "inner_wall_speed": "40", + "internal_solid_infill_speed": "40", + "top_surface_speed": "30", + "gap_infill_speed": "30", + "sparse_infill_speed": "60", + "travel_speed": "150", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "compatible_printers": [ + "Sovol SV05 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV01Pro.json b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV01Pro.json new file mode 100644 index 0000000000..26e702772f --- /dev/null +++ b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV01Pro.json @@ -0,0 +1,109 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Standard @Sovol SV01Pro", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.20", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bridge_flow": "0.85", + "bridge_speed": "25", + "brim_width": "0", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "0", + "outer_wall_acceleration": "0", + "top_surface_acceleration": "0", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "enable_arc_fitting": "0", + "outer_wall_line_width": "0.42", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.44", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_acceleration": "0", + "travel_acceleration": "0", + "inner_wall_acceleration": "0", + "initial_layer_line_width": "0.42", + "initial_layer_print_height": "0.24", + "infill_combination": "0", + "sparse_infill_line_width": "0.44", + "infill_wall_overlap": "23%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "15", + "ironing_type": "top", + "reduce_infill_retraction": "1", + "filename_format": "[input_filename_base].gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "inner_wall_line_width": "0.45", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "3", + "skirt_height": "2", + "skirt_loops": "2", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "grid", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.18", + "support_filament": "0", + "support_line_width": "0.38", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.2", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "0.2", + "support_speed": "40", + "support_threshold_angle": "40", + "support_object_xy_distance": "60%", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "1", + "top_surface_pattern": "monotonic", + "top_surface_line_width": "0.38", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "initial_layer_speed": "35%", + "initial_layer_infill_speed": "35%", + "outer_wall_speed": "25", + "inner_wall_speed": "40", + "internal_solid_infill_speed": "40", + "top_surface_speed": "30", + "gap_infill_speed": "30", + "sparse_infill_speed": "60", + "travel_speed": "150", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "compatible_printers": [ + "Sovol SV01 Pro 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV02.json b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV02.json new file mode 100644 index 0000000000..815fc3e031 --- /dev/null +++ b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV02.json @@ -0,0 +1,109 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Standard @Sovol SV02", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.20", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bridge_flow": "0.85", + "bridge_speed": "25", + "brim_width": "0", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "0", + "outer_wall_acceleration": "0", + "top_surface_acceleration": "0", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "enable_arc_fitting": "0", + "outer_wall_line_width": "0.42", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.44", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_acceleration": "0", + "travel_acceleration": "0", + "inner_wall_acceleration": "0", + "initial_layer_line_width": "0.42", + "initial_layer_print_height": "0.24", + "infill_combination": "0", + "sparse_infill_line_width": "0.44", + "infill_wall_overlap": "23%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "15", + "ironing_type": "top", + "reduce_infill_retraction": "1", + "filename_format": "[input_filename_base].gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "inner_wall_line_width": "0.45", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "3", + "skirt_height": "2", + "skirt_loops": "2", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "grid", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.18", + "support_filament": "0", + "support_line_width": "0.38", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.2", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "0.2", + "support_speed": "40", + "support_threshold_angle": "40", + "support_object_xy_distance": "60%", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "1", + "top_surface_pattern": "monotonic", + "top_surface_line_width": "0.38", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "initial_layer_speed": "35%", + "initial_layer_infill_speed": "35%", + "outer_wall_speed": "25", + "inner_wall_speed": "40", + "internal_solid_infill_speed": "40", + "top_surface_speed": "30", + "gap_infill_speed": "30", + "sparse_infill_speed": "60", + "travel_speed": "150", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "compatible_printers": [ + "Sovol SV02 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV05.json b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV05.json new file mode 100644 index 0000000000..0f8983d89e --- /dev/null +++ b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV05.json @@ -0,0 +1,109 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Standard @Sovol SV05", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.20", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bridge_flow": "0.85", + "bridge_speed": "25", + "brim_width": "0", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "0", + "outer_wall_acceleration": "0", + "top_surface_acceleration": "0", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "enable_arc_fitting": "0", + "outer_wall_line_width": "0.42", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.44", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_acceleration": "0", + "travel_acceleration": "0", + "inner_wall_acceleration": "0", + "initial_layer_line_width": "0.42", + "initial_layer_print_height": "0.24", + "infill_combination": "0", + "sparse_infill_line_width": "0.44", + "infill_wall_overlap": "23%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "15", + "ironing_type": "top", + "reduce_infill_retraction": "1", + "filename_format": "[input_filename_base].gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "inner_wall_line_width": "0.45", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "3", + "skirt_height": "2", + "skirt_loops": "2", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "grid", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.18", + "support_filament": "0", + "support_line_width": "0.38", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.2", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "0.2", + "support_speed": "40", + "support_threshold_angle": "40", + "support_object_xy_distance": "60%", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "1", + "top_surface_pattern": "monotonic", + "top_surface_line_width": "0.38", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "initial_layer_speed": "35%", + "initial_layer_infill_speed": "35%", + "outer_wall_speed": "25", + "inner_wall_speed": "40", + "internal_solid_infill_speed": "40", + "top_surface_speed": "30", + "gap_infill_speed": "30", + "sparse_infill_speed": "60", + "travel_speed": "150", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "compatible_printers": [ + "Sovol SV05 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Sovol/process/fdm_process_common.json b/resources/profiles/Sovol/process/fdm_process_common.json new file mode 100644 index 0000000000..7ccf87cfd2 --- /dev/null +++ b/resources/profiles/Sovol/process/fdm_process_common.json @@ -0,0 +1,70 @@ +{ + "type": "process", + "name": "fdm_process_common", + "from": "system", + "instantiation": "false", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "bridge_flow": "0.95", + "bridge_speed": "25", + "brim_width": "5", + "compatible_printers": [], + "print_sequence": "by layer", + "default_acceleration": "0", + "bridge_no_support": "0", + "elefant_foot_compensation": "0.1", + "outer_wall_line_width": "0.4", + "outer_wall_speed": "120", + "line_width": "0.45", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_line_width": "0.42", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "20", + "gap_infill_speed": "30", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "25%", + "sparse_infill_speed": "50", + "interface_shells": "0", + "detect_overhang_wall": "0", + "reduce_infill_retraction": "0", + "filename_format": "{input_filename_base}.gcode", + "wall_loops": "3", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "40", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "nearest", + "skirt_distance": "2", + "skirt_height": "2", + "minimum_sparse_infill_area": "0", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_speed": "40", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "support_filament": "0", + "support_line_width": "0.42", + "support_interface_filament": "0", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.15", + "support_interface_loop_pattern": "0", + "support_interface_top_layers": "2", + "support_interface_spacing": "0", + "support_interface_speed": "80", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2", + "support_speed": "40", + "support_threshold_angle": "40", + "support_object_xy_distance": "0.5", + "detect_thin_wall": "0", + "top_surface_line_width": "0.4", + "top_surface_speed": "30", + "travel_speed": "400", + "enable_prime_tower": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0" +} diff --git a/resources/profiles/Sovol/sovol_sv01pro_buildplate_model.stl b/resources/profiles/Sovol/sovol_sv01pro_buildplate_model.stl new file mode 100644 index 0000000000000000000000000000000000000000..837cd8dc5af27d4f93647feb5938b91ede861c71 GIT binary patch literal 18684 zcmb81->Y548HQI|3nn!p!5`HG4KbRu1*xq?Ff^y#M@vd=1Z$gK6+&*jDE1=7n^IVy z1*PCWAQGWq^B)Af$cBADP-wjgD2R9VMjDL2N^5ED_s%!p`kq;P_OaPiJKgU*^Ui!T zYi8E$IsMrak1h`V@QEKCy8k=(J#gQ*?|bmOhqfPk^s&dk|MJT(e}3rNKfnFbFkHCs z)e}E|^Y_caKChj8d@&3kuZCeA;Oq1^pODAL*L`ox z{wW?w48u$B99`VL=gT{aVSYa@Hxc8KM5aYBx({8veKCw*DdlE*T%LLF&c)d${QH)m z(kJA>{veU*arw~2yBE(~_BOQyl|CU4MwdjU+bFa|#$*`!ggk!vyT2XPSXJD!wMyTz z>cwpnq1KX!v^-R{f5xo`U%h8_{ht5Y_|fNH`|tmh^w}dnSoyfpC~;N)9=E8FP)Yy% z$G;1`nP9H-SB_Zj88OO(%CQS~um1k6&#s|XB!=Pe>i*~d^#!$JuABBBTD^A|gw<#$ zwPMSe>$Q^)ulzZm$BGJxVYt(3)bk+0T;~t`c;)le+=B{1T+1EcoQPfOFmMjGh}d(E^`rE-&+SPt7k7ZI2Ne=G?LV?%H6X!Uxlf!w zgH%Y^{$a!VL4vuCT{zmV2G-yDj9XOBUpZ#+@!6RrwJoPY;=xzHv0nT#8{lU9ATd^+!CZEU6`^kWl|` zni;ZI%vDC^e7-7u-g?+GQFG<~dOi}Vuv|S|{aTS=u6$2`M~N;K658QJ+}c=?U@oqx zEkT8Z_C)<2B*9$1!#hU9aH>E7frF0O3kY$WP}CyAfV@&-KDnH*R0Q z=W2(bLgLBeC2k#p3W>e%@7uol@`oLQ3W;IdxBceRA9V;SB%Zx)-}b?G`$YD$x9OvW z;^TC`KeE?Ic>6vs^t?ZkU@mW8kD%gh`s5mFMZ#O|bg9)?T4(d_v)A3QbMW1%+?_X{ zj`Ze{n2N<`BKE$2!_Li@d+p$;X09iX@3YYkVyYFD7oOU;bN!y^kMy2LHtu>=EOx3k z5mfp_J?pzv&t69onbvtC-@NQ}a3ZMm33=F=<)wOtJd((Cd&1Tde7Ecq^3b_!J$r3p z#Wx5>p&{&qHr~m`C5cSS1JSi}+&I%~i9B{C5M3xbZ_ivgO5{O;N}tdZ zh5oR!`#1|5mzh?rVrGyB2`YU;9>3Z9r&nwd(%I{ng#K4PEBU=VKs4?oGL2fz(IPdR%gqnA%YYDt!XcT_cjVHexNA`lHq=SD8K`k2_;v5P6WuwE830#Fn7aC*)y8 zkM^J1A2~Z)bhl%V%Mlan$DAl514PiZ9b3^3?vOLBSZVj_`-jqwiJ;OaYJY4+e~`$u z`ds_R*vVKAP6U-cArBi@TQROkWLjfaJLK>nL8VW~L*2upt`wp-rtj{N< zPsl@YQtRbGBGZ~nv)zxJk;Mdev1c*Ot&MZB{=%}ggi8E4$I?ACs(nZ1HB>rc6?>oB@`l8!zP4-(!7uJj3c z)NxhYk?&+l$JmXXB?%u(v6~E zCgIO^?4!%bC_R|p%R}SVda-z)Bx-+X9V{LsG97De^ttuNMEKh0 zN}rI2jS{Wr8doEUOvj!fJV^K&?ngb0!u|LU^1|%c=AUdDNL0!uIRe6x0(kJ9m zXX@fXBGcwRogvF3h&SGP(N@nmT^^TxLLPO+u^rQPLnQ6LH2GP$JV@kewvE2YkAys8 z&v4*W!IeLYg?6V*e{hhk-)EGyH)kiQ{RkBOktCu*$p)D{mCnU;6_ z7E)t15mfqwJnHOI+mU4@Jq-EVi#$kB=@as(vuN=kk!d?`FTa@SR{(jCpwcJgq4`iF zMG+y9>0!v8qeuzws7fPRyN369rS{fp0wIhCUmq!r#o=Tsn9(s=|u_BRa z{=#293SqP8y_yHJ9Z?e!HC8A5soFkDBGamE+}NtIng}X=LLSzGdat#8+>3TkG0V!d zuY)mql90F7rBM2WJgj`ZpO;vX$aJjd@qCc*_0^R=ArFg_t$}5~TlWS|B<=f>c$!;6 z`-D*XggmUjr}vM%_c$&yt(e?v&$w<5s6R+h=@alcVFisOGOhV4?s&qZ5LEgEVzovj ztvN<_Ib;2((Jcg(J|U0VgIj6`iA-z0in~8*2MH>DLLPPO77r4cHuoWJA<2UTl|CU4 zt$}L2+Cd`Iny=z+lsrgK=@atcZiz&u)egI1T5dzgg9Md6Q9Y*J5{XP}_KCY{)uRwT zU!~F~YOKm`$@Zc)UnP-gwIlA_)mRlm-&5%m^3Xh@kuoQe)~pn_0_8!1N}rI2m9O{O z;z1(Qny+rd^Fe}2pOA;o>%PAtk!j6WacffTAVH;1$V2OsMv7uZBGXcCZRe|rpwcJc zaY-eS$h3RM>^jw|5Gps6K7m-R5lKgX#QITVRS1udD}6#9wFj4K1&K`ixQf-TCDhNM z^a**?kyt!PWLoZVQyOEp5LEhvJYu(`l1OCQpYzy#B%wD*J$Iq>33fB!YBb7cO z56vSQTPlfVW!l%l7(Feabt#lSArC8m+Fy~#bgbv`e30<<)s;RW53PY3TWSS~O#8kh zp5~U&J|UDoArI}Do`3GSd*tCKo4R?TbFn-Z&F?o8LHln7Njp(WR~G#JkWN4H%pq?f zs?Q_82r4AZE zQav^h@%IfXiEC|S_dZXB<>tBzk5L2_62AJxzMURaNN6o-`a@9hph7|`gWr3d*NO@W z-kE8iC=$$-JHWXI6%xGr(|V9#uCg*rd+Hi1HQsv4R-CGk;2oXfVR6!@C74SqL-W** z1u%jN3C;6ObSHue3C-F~4^9LX5T z?lJEzDTaJ^wygEjDlC`lO55jDNaX4>uN4&%xhBpDDkRiT{#SH!f(nV;KgjOTwaVbG!b! zX6`|SME*t0ZUl4XN#UHJLL&cSWH*Ajv}f2fu2Lb9=dg1RDkSoBcur6uk!RL(f(nT| zNe3~icc_q1NikzgeO?GEB)C(X2%Aqd`(#bh zj~dpe^`O!cdHUIUkjOJj`zwg)|JPt1T`Dbco3$s-ebfN8 zLhT@tXO@1~B+i`LcI2;bqO;sQjjXjAi-mcRU@qHnZrsVF(h@uuRRh9mr* literal 0 HcmV?d00001 diff --git a/resources/profiles/Sovol/sovol_sv01pro_buildplate_texture.png b/resources/profiles/Sovol/sovol_sv01pro_buildplate_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..1881f870ac4a1c2c8c56d2855727fbd37eaaf014 GIT binary patch literal 6643 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Sovol/sovol_sv02_buildplate_model.stl b/resources/profiles/Sovol/sovol_sv02_buildplate_model.stl new file mode 100644 index 0000000000000000000000000000000000000000..5c8575feb202054c1a3a845907ac95baa6ab6f46 GIT binary patch literal 18684 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Sovol/sovol_sv02_buildplate_texture.png b/resources/profiles/Sovol/sovol_sv02_buildplate_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..bf9eb0b2ab7c4216355d2a022e0264ebd1cea4ac GIT binary patch literal 6634 zcmeHLd011|wm<6S;Q(s&3OIm>5o`rQKxRU!h$J$KGH4M9AwVD}p-F&5h^TGB0YO5= zfx(G7p@0w$GFP$C$Pg7}$bn!Li31^mHi8kkJ5Yx{-@WhO_q|U(l8>|3+H3vxZ~fNV zA^Uy2+_YyenGHdZHi@{w7lLNkLeTVwGye;$^!u$Ifgp|fw5@@hKu-?`3KKRbhcm;d z=3F=y*dfS?z>OtSVyGO$Flr=?fj3fA*Bcqq!tq7{)}9ugu`bjo8gVC!x@D)=R?5y8 zihZ~d!Fje5*8v28sT{H)7p61V4qUv^WLyXEw|W_CWH{-!%!WQ9L9{};Ejxc-S9m!IQBzu2K%qm10Jwkax4~S zZh`&OIW~&PVX~u`|7Obv^Jg2WT-wJo{4I^z@|in_7V&S~)t1lP0oR_M|M?U!{I`R! zIj-@5h`&hv8=&{+W^d)iQn9{NHZzVzp}NLX8Jv}qT!3s2E-WgUL)`#gcq2;-ODi)A zYw)`jXX&uk+5v}KV_|7w@xj@X8BUAf{g2Kzz|-MVSD=k>GKc)XI)9+rLG3yP2Z-`N zV)?kog-K_!04#vsY7*v06UoKJhsBJb(SeQa>$cvI7D;6vk5 z>46()FqOdu>cSh@Sx!azXx;XS)z-@HZZ6jLG9Rdpc2(iHg71~yq@KS{LhGn2Yu44o!rj4rGctKi(*o#SD+5P{Su7fN)b*HZy{gKxR?bMFRcc zjn+j(&;U}NA?Qq6B!kK_v^2Cdw=iG(_gx85R1opM74yATuzx|rsyq5UHYe<7=$$4V zJ{bXE-_#lyEnr4rKMX1G@L|kR89+uXFvJY3U3DR7+HM*U#AiZ)pw*dinc_7YHvhAU zV6{(gv#F_Ru$E1f&%&it%)J6ynq^l@4Uf68HLWvorO3bgn@#k$+h6FG_;qah>g(=O zV;c`K&nglBk4xEJvivzi#Ow9p)@$g`(|=;> zse)C@LQmT4-`ed;EW@BlAU!5B^&I3oWyC#tmL|7AElt5)%86Y^DwN_+CD)Jtw#e}$z z93kuNDqZKI0YP2o<+qi(k~*RM@s8s;XkDRvA(~%uhdm8~kPAqYkRO8P_#eAxDlC*& zNSrBWW&eO6`U<$Bf)At1ui!3jYe_|&!_LZPf@K!0=vDT0uDDnk$Kr26*%E`RcV2=V zHm8wDWZVnIv%Tof5@jY_@4$;sL_6VExznKCp6BF?;d*CT!9WUl8n42HwO{w$ zSH{5=%vW#KE~n&Q!}YeZn*%C%c{%Yi3{PB?=TT~VVR7$1-V6xJAx3_OPd@cBagn?Y z(M86OkKc5vk}oyEF{4#oKiD%NC^URv$V>g{~pe>+UFf ztQ*k|WkO?J_M=nD31#DytMaVuR z5Ac}siP7m%5Lv+j@#U+1O(tWl*2+vwMayZR>Cmzml~B|c-dVwCpp~YR?len3xHCf_jxd!5MnCGXi7Mbdg&A5m9T-z$77aqEwGpEjSp1?h?v* zaK?5@nkK^cj!fNMbhCY6t>;vd^UXv{Mzjh+yrUDv);D*OP$t&uY9+$n={gs5%yh{+ z-=h;dTJ&KiL)C$p6kAI7!vrKPkeUBFNG+Dj@;h*ST}yw&GYR6o&80_IINr8^ub``* z@Y=vX0O|nIXm7JebbR?Z7u9TCF$DH^DLXW9b+?uKcrAd>t}w~2u*LgZZBgel@=W#t zUJ!b;e0&Jgn1MJt-BMry9H}n5{~_k&Ce~96E!(2kcAe|hVgeMc5V;6)GyCgELz&^;g6COD zwxVS1h8K^tml}dd;3pMV{L3`x*A*Aa;Oq>?Z_5i)$k!raPzK3y3uLzjeP?G2yzd?|dwJfW@3a4y6SbMiaIf^--R$)80 zA+~+mfF@{-B8fqt@&`CUSUU{Wx9bS`(WrY95)dEnBa4HJqg7I*$@7^r@2>a==<+V^ z5N>gE0xFI1jrT{f>5m;H&g=yWm-Z^kcwgSlq}G~=ctG5WGjb)e{JZNqt>?WZbv5!f zQg=Ech7+6myR~8QapBmrg2BO6jhwcEHWQ`sIykvr4ri6_fKQf%CRGUe%7S8D&s%LF z;`&vfI(sDf_G99SI5?z3$#Z|3->2*%Ro6y#4boNVZNaPD(JaZkW{jwE=iQ-0S=@<| zo5!U1Yz0k~Hry?)=*5$wrM*fa;)d{v=)8|ur{_!9Pb`Y+L4vx zqU3A_?Xb5fCx}o4E{Y5|v1QbewLd;1H)sO2(8|+E&zbx7dH)?NbZ&!1(2@Qd!`&B2 z!8ND)I>V98-wJ}(YBl5!zuBDSaPpW_-%@6PAi>KZugqfF_IZM(;F{#TO%R++>&$Rx zJ?18(qiDA>2No;n6=k(UR+aCrFW^tavc}6uNJgiwR~TUC0*038Az(Mj5{$?0&3?3_ z_S8Gy{oOr81_V8rk1OKVtX2sQRr`@f4r7w@`UQwdy7>J52K|H>>oP}?bWz^fQbph~ zrpZ_%m%m-0d8jjkH1c5hjTwOM_%z0TINtn1{ZP|wIw5uu2pGCJ<&Pg=LSDbEz-euQ zC&r63^0vi)JKCK)-9$Gitgp#pbZ+Rn!QH;o?t zL7)w;$sZrT(oth0`i*2j&`De0Cw z?TT0fgjgR_I;5xt?cLm|yif89J~P^nk*%ui?JL%P946~K4A?v{uyN?{C zbo-GE9JLzC9~owcBA_`X$mZ-*`SZKM!y}1~s zXb{b%SfV@M%yIWymh#65WS;xTWsJ8s>x~`a9f8ccuA7wKF@jQy{$JE#(w8B-!sqrJagvq zz2}}@pZMl;-#YQ=V~;%k$d?~E{go4EpLzP3XTSc+E3f?b#Q*>E<4={czyFyt-@p8m zO{qU`o_ls(%JqX%rcI8_c?40) z%U2#=KX&A!TJF+gOiUXRk)Ad=x=*}*&$^UPTDg&)HW%K%cm3P_kK5m8g36eX2it>0 zq^HdjuRpN9?HB*(9wexY33)KOBqE)okco&%DPuw&Xa95CDfLywJ!-4;UG=%Q9O+s^~qLLGI4j!eKVqz$i@2Q zr=pSxuZQ|BpNh35p(nikj=v7-L4vt19Qka`{kKd^syS=RxEWzFY)@5l>t|X~$;95e z6c8=@lDKdra=r8X=MFyn;-BKFCLtoIWa9Wb5iR?Yc<1@ZRa^Gp(Vu@X@Su{3d)JAW zJxG)ixjwqFckurGBM&N>xNn_^*@MJKHzHRlS85&Js}b(KWKv2sr;>@QH8%(Y8W9Q! z&f2*rmJ$SWS^3hIeU}Oeu0Bf-J*$<)Tvn25KlU&s6DmdP;9-P$S+3jfxVAoi_1b`7 zd`h{$mTT?II^}v$A;I-36I4jtdF14FFR68!RwS5LZXz1wtIW?Ai-Rx_8-n; zaH`qs&$Oa)@y4kdE1L~i((b1sar%wV&olULg1JihLiNK;J++5wy*(5WK6BpMQ<30m zm!FCX39Hj+-X+0Yis8|>7sMQ0SJWPtU;421SC+Keqkl+p{6Q|#JaNbSSUQ%1kM$ro=zj0u@a74HDL@FdylJB*$2MOl7c;jUC z8|@jWoZ5e2-Y2l6-5w-rAIm!cn;2@}Wm(L1=aCcJ>v`+#B$(^Xb59=FThTIBR7lhw zQ)_N(NvlUKzcddL%yn_^+Xwb`xAdSwf_sVVL4vusm&noO4pO@_@8R5WW`YU{?V`qG zkOXsGc>mZzyhqhI>1WdHLxqIuG@eUHFxL~W-**u2QO%+KLo-|`BrMX48LmAQ3FcD! zkDrPJbG>}!fdhYI&C#VoLj8CgT@uWtvEr?nJ*e1tv^k0;Wr7L`&M~_Q=Hf`p1ovun zmsjU=+qd1?K9R)Hx3AZk`s!efVp+^}`K5Q)b>BE3s2sogZk?(B*mAL?To222t(I4c z(brqrh@0)HN!Sw_ojq6WT2Beug}eh;%+-%LG^F zF(D6~yY{o!6f4f>j6x#n39YYp(}qN(MBCVG3Uygf)nT5Yaf%=P+5qqerkOi&pU@~Hi4<^768q}6w|-*pcXRK|onRK6%Z zBZ)}2Hm^H!-;t3}?OYiX@=%;qdwGzEwB{0>*187?Dq}((YHzio97seu_n1u7u|4;t zF(D82+bgHP^qM@PXLwqD+0!a*H=!p{za^nG>QQs(N9EXj9%+x2@2`5z8)47x?@msW zkVlX177?_!xqFbXHZWyO$fNg?UJt&}dD{D~@8L*TUos{9NXVo2_U1t%(mn>=gM{^4 zQ^tfm`l!96)*umSpG$maNy5gqDPuw&efDV{BqE)AOeWZu#)Lfb4j}FtuwU_e%PxYw z(nplPP4x9c^_Z;RdJk6)>*2OCc&tcJ3EEdR5xqUM4mJ-Gk@mIL+q|~NOxW6I%9xNx z?Il{z)vqQJk@h`|jP50x)U9wZ{&qFdir!r+s$fM3a^ZN&hNUI)dd+#MAsEi4DaD2o`^R$U{t>JviO`?+ZmV%#u?;^B1 zcMq*0i3qxsILm^^8AX@Mm{{xp5)pL0@6%4tbtWf|K9@8PDq}((eTG}r>GA88FSDfZSBGRSA8L2!-P#F{Qz@A|u5oy)q-r5#A z5tauDDr2I1Xnd$1sjQ$&i4*AV(TM&1pFKonO!Qc3oY&pu*@sC)THby_-(%GX{XLa2 zA&)-$^m;^DL6;I=1mr=2%9xNxpGBJoiAa|c-z?-og36eXM_&yzqEcBwmlC&Zc4Bt$Jv_`XJ^jU!9XOCc1~#z!oc(6=|Dy{b}bpu@RaF zT^SQSR(c=YB7#;u{0nc7)l5(s6Y{7nsQ21lk0>i>TL-=OWJ2qbD`P?)wS2vwHxCk# z_VwJy2MJqWO&JsNuz9`hcl+MJh@fp>;-fhe+9$X&Cgh>@NqtLEkK2FKCel)lt?d?p z+Jgj@F#(S=wV;Vaq|MuIL%^dEaqB_5Nq-U&h}9MmwC0$-T948GiprRfM{mKE>OmsX zny>t}i0VOt%9xNx@4L-|M5L?xeCtIXB&duDd2qKxBGQ_#{PvDKNKhFQ^5AZXM5I*@ z-M<^}uR<9U-2?lpAfjB&SAI82_2{#xqMMX4(PK65mRMG#RhHl0>am&$Dq}((nn%=A zR1%3uYrgV(WWCL2g36eXM=gIorzR0;%~!hP=i`F}l`$a??v_YITJx3P*i$`7P#F{Q z;BJXTq!mNIAt(qn1OBP>3qj0t)4 z7ThQzBqDA7%2&HgsGVII6Y}VNw|S6=wA}qpD*A3CsEi4D_-;uhk%+X7X5W2eLgUVr zF(D7%U&(<)q@`$%8Sk$`857+D`>Pk}_wk3Oh+*g2SeAK)ox{QYjiX*)>`+K5(o{Re-4XxgYJ z+Wj>C&X3yM^NWc4#+lGqv72Xy5zM6#Y&XxAMBK)mHtJXYRB;n{Nl+mXEA?Rnb1@37 z=9ASvKM9{Ob~W&*l=h!~-xog13ccqSi&dJ<4LP z+Cys{d>5{)^-uk2y?s_l#EIv!=2S@V9#9^GB$%s?;2hnlJyd(DP)O)KIYsXJ2Pg3);_Q7%P$3aFk`OD|v@aO`#>-rFMy*lTo&6<2g#_R9bDL8k5$6F* z4=N<$lwwIxA)ywu-@989R7k{$&XS-)BJN@xMlhH4cHhI*hUh=u+f5-6cd?cpEQ`6~ zgl$PsAz|Ob-dk_CISJ;nZ?_9#63<-OLto+Ib^>c23WYBOO`dKk_rDl zco-4i3i;J?N#w7H{>@Vn(bL+_DUS~-{Labms=Ep1;@93xP~mrHde1~_LCdB4N&Y?i zdP^H|vlcWzBkTz+J$uxK^q5##%w_m^bIKkh;-p9?I{Ghc_}P-h$znw%6MO5M6LC_cZ*1`;K0g(eO!$8ZWm$6) VaRQ~5jd$woK_wIMrvKvk{{aCIv2g$Z literal 0 HcmV?d00001 diff --git a/resources/profiles/Sovol/sovol_sv05_buildplate_texture.png b/resources/profiles/Sovol/sovol_sv05_buildplate_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..eb1397ff537674fc4dbfaf40e1eec0d453ced352 GIT binary patch literal 6000 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 afw%=>a`Hw!35N&f#6UI_>zr-7fA}ZqGqbJ$ literal 0 HcmV?d00001 diff --git a/resources/web/image/printer/Sovol SV01 Pro_cover.png b/resources/web/image/printer/Sovol SV01 Pro_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..ba681e186f54ae91a07b32d7e756bde73872d26e GIT binary patch literal 24497 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 literal 0 HcmV?d00001 diff --git a/resources/web/image/printer/Sovol SV02_cover.png b/resources/web/image/printer/Sovol SV02_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..35378a72f64b100a093a6eae0bcd977fa50b36ee GIT binary patch literal 23535 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 literal 0 HcmV?d00001 diff --git a/resources/web/image/printer/Sovol SV05_cover.png b/resources/web/image/printer/Sovol SV05_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..8cbf91ad2961099665b0c08a6fe290e8b5c5f962 GIT binary patch literal 31559 zcma&O1z1~8w=Wzh?phpzOL2!nf#4}n2+-0(ad+3^!5xA-#VJsV6)0|{P~2ULYm58c z{lDj)_nhy1_db^=f$Y83%$`}Z^fwbC)YTMmu_&=XAP}yyk{k^9Tle>kfd>4R{E5a7 z0--WnY3aD?sH%vYIM{I;nK~GoaeLZ10(1~aLdw(8$i&9X6>Mx~VP!ALaNN?)0Jbuf zWOyT_%B$)qYi4Ps8++^;%#FhX38M-0!zYE9O%H#%+(0&X=iKiBJL^4@K3+u zz~{fWc^JU|u(;YtGU%wPgJm6@&A>w3LfpIzFR;K8&Zg$#Fgb<)XbfCQGFZC0I*Rk~ zczAeldkAnlI9u@WiHV8v@bdHU^K$_lTrOVru120*_AZQnyZBcha%L_j&Q^}DRu1;y zzkM1RJGi+@GB5yi@c$l}o#TIYZtwCRvj^nB<7wo`!^h3b^Iw@AEgf7PTr3^_4^94) z{689+d0PE@4*%^je<}Zi-POwc|G@s2@;}%CS*xo4-)CWG_unSs;wtYB2;x74`riih zzvu0u<>hF`12c1RaC0^>lXo|>cV+xX7QoZQWu488T+QTwwu$eqP@HWL9-BwKDhm|78{v7yQdC{$IHP^)NMZHTr+y|4)I7|KLJ3E+L*#b08Rdp?SFiagRD8R?X&jrj(1S}`3 z3}#aoVE?Dt-z5}RxAHWz)seHZGqZOA)J>9sPxN0B_&4?K|B3p~Kr{h61D+-QLB-78;(t*7E}5;{U!B*sw*nTK|KGjo{F^4pAi~eX z_ixhM|3Ug|MPP}4bW2>x%Ei^e+3TNM|1vF2GpB!D{p-@!>K~f|ga6SiaU+wz&zEFy zbapUxGchy$=Q%)k|Dw7$n7euyIh)B?07@mvAY*QB1&q`Stp3-$!2Do-ZeDJ||K7yI z(hTVC|Ff|FMSFPuV`w~o&HR6lO@iltj9%g&hX3LhfOh}72lyMnaq;}8=K?PN)AyO# z16t(_cs4#;j%*MJDZmQQkN=xqfIw^sZV4k$WDSx&DdwA3T6LCV#_pui8Xx1EYS|%d z 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 Ml2w(dkop|-KL(O3PXGV_ literal 0 HcmV?d00001