From 8e50744d2a14ed64ffed975902814ad14b9a36c9 Mon Sep 17 00:00:00 2001 From: "qing.zhang" Date: Tue, 31 Jan 2023 10:40:29 +0800 Subject: [PATCH] ENH: add ANYCUIC profile which based on SoftFever Signed-off-by: qing.zhang Change-Id: I85fc64a25dbb761377c63574b3d3ec10fda9dfd6 --- resources/profiles/Anycubic.json | 110 ++++++++++++++ .../filament/Anycubic Generic ABS.json | 18 +++ .../filament/Anycubic Generic ASA.json | 18 +++ .../filament/Anycubic Generic PA-CF.json | 24 +++ .../filament/Anycubic Generic PA.json | 21 +++ .../filament/Anycubic Generic PC.json | 18 +++ .../filament/Anycubic Generic PETG.json | 48 ++++++ .../filament/Anycubic Generic PLA-CF.json | 24 +++ .../filament/Anycubic Generic PLA.json | 21 +++ .../filament/Anycubic Generic PVA.json | 24 +++ .../filament/Anycubic Generic TPU.json | 15 ++ .../Anycubic/filament/fdm_filament_abs.json | 82 +++++++++++ .../Anycubic/filament/fdm_filament_asa.json | 82 +++++++++++ .../filament/fdm_filament_common.json | 135 +++++++++++++++++ .../Anycubic/filament/fdm_filament_pa.json | 79 ++++++++++ .../Anycubic/filament/fdm_filament_pc.json | 82 +++++++++++ .../Anycubic/filament/fdm_filament_pet.json | 76 ++++++++++ .../Anycubic/filament/fdm_filament_pla.json | 88 +++++++++++ .../Anycubic/filament/fdm_filament_pva.json | 94 ++++++++++++ .../Anycubic/filament/fdm_filament_tpu.json | 82 +++++++++++ .../machine/Anycubic 4Max Pro 0.4 nozzle.json | 30 ++++ .../Anycubic/machine/Anycubic 4Max Pro.json | 12 ++ .../Anycubic/machine/fdm_machine_common.json | 139 ++++++++++++++++++ .../process/0.20mm Standard @4MaxPro.json | 20 +++ .../Anycubic/process/fdm_process_common.json | 107 ++++++++++++++ .../image/printer/Anycubic 4Max Pro_cover.png | Bin 0 -> 23325 bytes src/libslic3r/GCode.cpp | 15 +- src/libslic3r/Print.hpp | 6 +- src/slic3r/GUI/BackgroundSlicingProcess.cpp | 4 +- 29 files changed, 1465 insertions(+), 9 deletions(-) create mode 100644 resources/profiles/Anycubic.json create mode 100644 resources/profiles/Anycubic/filament/Anycubic Generic ABS.json create mode 100644 resources/profiles/Anycubic/filament/Anycubic Generic ASA.json create mode 100644 resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json create mode 100644 resources/profiles/Anycubic/filament/Anycubic Generic PA.json create mode 100644 resources/profiles/Anycubic/filament/Anycubic Generic PC.json create mode 100644 resources/profiles/Anycubic/filament/Anycubic Generic PETG.json create mode 100644 resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json create mode 100644 resources/profiles/Anycubic/filament/Anycubic Generic PLA.json create mode 100644 resources/profiles/Anycubic/filament/Anycubic Generic PVA.json create mode 100644 resources/profiles/Anycubic/filament/Anycubic Generic TPU.json create mode 100644 resources/profiles/Anycubic/filament/fdm_filament_abs.json create mode 100644 resources/profiles/Anycubic/filament/fdm_filament_asa.json create mode 100644 resources/profiles/Anycubic/filament/fdm_filament_common.json create mode 100644 resources/profiles/Anycubic/filament/fdm_filament_pa.json create mode 100644 resources/profiles/Anycubic/filament/fdm_filament_pc.json create mode 100644 resources/profiles/Anycubic/filament/fdm_filament_pet.json create mode 100644 resources/profiles/Anycubic/filament/fdm_filament_pla.json create mode 100644 resources/profiles/Anycubic/filament/fdm_filament_pva.json create mode 100644 resources/profiles/Anycubic/filament/fdm_filament_tpu.json create mode 100644 resources/profiles/Anycubic/machine/Anycubic 4Max Pro 0.4 nozzle.json create mode 100644 resources/profiles/Anycubic/machine/Anycubic 4Max Pro.json create mode 100644 resources/profiles/Anycubic/machine/fdm_machine_common.json create mode 100644 resources/profiles/Anycubic/process/0.20mm Standard @4MaxPro.json create mode 100644 resources/profiles/Anycubic/process/fdm_process_common.json create mode 100644 resources/web/image/printer/Anycubic 4Max Pro_cover.png diff --git a/resources/profiles/Anycubic.json b/resources/profiles/Anycubic.json new file mode 100644 index 000000000..90520abd1 --- /dev/null +++ b/resources/profiles/Anycubic.json @@ -0,0 +1,110 @@ +{ + "name": "Anycubic", + "version": "01.05.00.01", + "force_update": "0", + "description": "Anycubic configurations", + "machine_model_list": [ + { + "name": "Anycubic 4Max Pro", + "sub_path": "machine/Anycubic 4Max Pro.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "0.20mm Standard @4MaxPro", + "sub_path": "process/0.20mm Standard @4MaxPro.json" + } + ], + "filament_list": [ + { + "name": "fdm_filament_common", + "sub_path": "filament/fdm_filament_common.json" + }, + { + "name": "fdm_filament_pla", + "sub_path": "filament/fdm_filament_pla.json" + }, + { + "name": "fdm_filament_tpu", + "sub_path": "filament/fdm_filament_tpu.json" + }, + { + "name": "fdm_filament_pet", + "sub_path": "filament/fdm_filament_pet.json" + }, + { + "name": "fdm_filament_abs", + "sub_path": "filament/fdm_filament_abs.json" + }, + { + "name": "fdm_filament_pc", + "sub_path": "filament/fdm_filament_pc.json" + }, + { + "name": "fdm_filament_asa", + "sub_path": "filament/fdm_filament_asa.json" + }, + { + "name": "fdm_filament_pva", + "sub_path": "filament/fdm_filament_pva.json" + }, + { + "name": "fdm_filament_pa", + "sub_path": "filament/fdm_filament_pa.json" + }, + { + "name": "Anycubic Generic PLA", + "sub_path": "filament/Anycubic Generic PLA.json" + }, + { + "name": "Anycubic Generic PLA-CF", + "sub_path": "filament/Anycubic Generic PLA-CF.json" + }, + { + "name": "Anycubic Generic PETG", + "sub_path": "filament/Anycubic Generic PETG.json" + }, + { + "name": "Anycubic Generic ABS", + "sub_path": "filament/Anycubic Generic ABS.json" + }, + { + "name": "Anycubic Generic TPU", + "sub_path": "filament/Anycubic Generic TPU.json" + }, + { + "name": "Anycubic Generic ASA", + "sub_path": "filament/Anycubic Generic ASA.json" + }, + { + "name": "Anycubic Generic PC", + "sub_path": "filament/Anycubic Generic PC.json" + }, + { + "name": "Anycubic Generic PVA", + "sub_path": "filament/Anycubic Generic PVA.json" + }, + { + "name": "Anycubic Generic PA", + "sub_path": "filament/Anycubic Generic PA.json" + }, + { + "name": "Anycubic Generic PA-CF", + "sub_path": "filament/Anycubic Generic PA-CF.json" + } + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "Anycubic 4Max Pro 0.4 nozzle", + "sub_path": "machine/Anycubic 4Max Pro 0.4 nozzle.json" + } + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic ABS.json b/resources/profiles/Anycubic/filament/Anycubic Generic ABS.json new file mode 100644 index 000000000..a0c88145d --- /dev/null +++ b/resources/profiles/Anycubic/filament/Anycubic Generic ABS.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSB99_ANYCUBIC_00", + "name": "Anycubic Generic ABS", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_abs", + "filament_flow_ratio": [ + "0.926" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic ASA.json b/resources/profiles/Anycubic/filament/Anycubic Generic ASA.json new file mode 100644 index 000000000..7dea3a414 --- /dev/null +++ b/resources/profiles/Anycubic/filament/Anycubic Generic ASA.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFB98", + "setting_id": "GFSB98_ANYCUBIC_00", + "name": "Anycubic Generic ASA", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_asa", + "filament_flow_ratio": [ + "0.93" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json b/resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json new file mode 100644 index 000000000..7dd4c6cc7 --- /dev/null +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFN98", + "setting_id": "GFSN98_ANYCUBIC_00", + "name": "Anycubic Generic PA-CF", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pa", + "filament_type": [ + "PA-CF" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature": [ + "280" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PA.json b/resources/profiles/Anycubic/filament/Anycubic Generic PA.json new file mode 100644 index 000000000..a3e2ca3ce --- /dev/null +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PA.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "filament_id": "GFN99", + "setting_id": "GFSN99_ANYCUBIC_00", + "name": "Anycubic Generic PA", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pa", + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature": [ + "280" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PC.json b/resources/profiles/Anycubic/filament/Anycubic Generic PC.json new file mode 100644 index 000000000..6915e4bdb --- /dev/null +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PC.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "GFSC99_ANYCUBIC_00", + "name": "Anycubic Generic PC", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pc", + "filament_max_volumetric_speed": [ + "12" + ], + "filament_flow_ratio": [ + "0.94" + ], + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PETG.json b/resources/profiles/Anycubic/filament/Anycubic Generic PETG.json new file mode 100644 index 000000000..728cbec2a --- /dev/null +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PETG.json @@ -0,0 +1,48 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "GFSG99_ANYCUBIC_00", + "name": "Anycubic 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" + ], + "overhang_fan_threshold": [ + "25%" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "40" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json b/resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json new file mode 100644 index 000000000..33559d81f --- /dev/null +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFL98", + "setting_id": "GFSL98_ANYCUBIC_00", + "name": "Anycubic Generic PLA-CF", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.95" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "slow_down_layer_time": [ + "7" + ], + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PLA.json b/resources/profiles/Anycubic/filament/Anycubic Generic PLA.json new file mode 100644 index 000000000..3a0b18f17 --- /dev/null +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PLA.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99_ANYCUBIC_00", + "name": "Anycubic Generic PLA", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PVA.json b/resources/profiles/Anycubic/filament/Anycubic Generic PVA.json new file mode 100644 index 000000000..d46733587 --- /dev/null +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PVA.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFS99", + "setting_id": "GFSS99_ANYCUBIC_00", + "name": "Anycubic Generic PVA", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pva", + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "slow_down_layer_time": [ + "7" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic TPU.json b/resources/profiles/Anycubic/filament/Anycubic Generic TPU.json new file mode 100644 index 000000000..56ed24020 --- /dev/null +++ b/resources/profiles/Anycubic/filament/Anycubic Generic TPU.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFU99", + "setting_id": "GFSU99_ANYCUBIC_00", + "name": "Anycubic Generic TPU", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_tpu", + "filament_max_volumetric_speed": [ + "3.2" + ], + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Anycubic/filament/fdm_filament_abs.json b/resources/profiles/Anycubic/filament/fdm_filament_abs.json new file mode 100644 index 000000000..1aaa31323 --- /dev/null +++ b/resources/profiles/Anycubic/filament/fdm_filament_abs.json @@ -0,0 +1,82 @@ +{ + "type": "filament", + "name": "fdm_filament_abs", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "cool_plate_temp" : [ + "105" + ], + "eng_plate_temp" : [ + "105" + ], + "hot_plate_temp" : [ + "105" + ], + "cool_plate_temp_initial_layer" : [ + "105" + ], + "eng_plate_temp_initial_layer" : [ + "105" + ], + "hot_plate_temp_initial_layer" : [ + "105" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "fan_cooling_layer_time": [ + "30" + ], + "filament_max_volumetric_speed": [ + "28.6" + ], + "filament_type": [ + "ABS" + ], + "filament_density": [ + "1.04" + ], + "filament_cost": [ + "20" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "10" + ], + "overhang_fan_threshold": [ + "25%" + ], + "overhang_fan_speed": [ + "80" + ], + "nozzle_temperature": [ + "260" + ], + "temperature_vitrification": [ + "110" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "3" + ] +} diff --git a/resources/profiles/Anycubic/filament/fdm_filament_asa.json b/resources/profiles/Anycubic/filament/fdm_filament_asa.json new file mode 100644 index 000000000..c8de040b7 --- /dev/null +++ b/resources/profiles/Anycubic/filament/fdm_filament_asa.json @@ -0,0 +1,82 @@ +{ + "type": "filament", + "name": "fdm_filament_asa", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "cool_plate_temp" : [ + "105" + ], + "eng_plate_temp" : [ + "105" + ], + "hot_plate_temp" : [ + "105" + ], + "cool_plate_temp_initial_layer" : [ + "105" + ], + "eng_plate_temp_initial_layer" : [ + "105" + ], + "hot_plate_temp_initial_layer" : [ + "105" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "fan_cooling_layer_time": [ + "35" + ], + "filament_max_volumetric_speed": [ + "28.6" + ], + "filament_type": [ + "ASA" + ], + "filament_density": [ + "1.04" + ], + "filament_cost": [ + "20" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "10" + ], + "overhang_fan_threshold": [ + "25%" + ], + "overhang_fan_speed": [ + "80" + ], + "nozzle_temperature": [ + "260" + ], + "temperature_vitrification": [ + "110" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "3" + ] +} diff --git a/resources/profiles/Anycubic/filament/fdm_filament_common.json b/resources/profiles/Anycubic/filament/fdm_filament_common.json new file mode 100644 index 000000000..5212d445a --- /dev/null +++ b/resources/profiles/Anycubic/filament/fdm_filament_common.json @@ -0,0 +1,135 @@ +{ + "type": "filament", + "name": "fdm_filament_common", + "from": "system", + "instantiation": "false", + "cool_plate_temp" : [ + "60" + ], + "eng_plate_temp" : [ + "60" + ], + "hot_plate_temp" : [ + "60" + ], + "cool_plate_temp_initial_layer" : [ + "60" + ], + "eng_plate_temp_initial_layer" : [ + "60" + ], + "hot_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": [ + "1.75" + ], + "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_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/Anycubic/filament/fdm_filament_pa.json b/resources/profiles/Anycubic/filament/fdm_filament_pa.json new file mode 100644 index 000000000..67c8ff050 --- /dev/null +++ b/resources/profiles/Anycubic/filament/fdm_filament_pa.json @@ -0,0 +1,79 @@ +{ + "type": "filament", + "name": "fdm_filament_pa", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "cool_plate_temp" : [ + "0" + ], + "eng_plate_temp" : [ + "100" + ], + "hot_plate_temp" : [ + "100" + ], + "cool_plate_temp_initial_layer" : [ + "0" + ], + "eng_plate_temp_initial_layer" : [ + "100" + ], + "hot_plate_temp_initial_layer" : [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "fan_cooling_layer_time": [ + "4" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PA" + ], + "filament_density": [ + "1.04" + ], + "filament_cost": [ + "20" + ], + "nozzle_temperature_initial_layer": [ + "290" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "0" + ], + "overhang_fan_speed": [ + "30" + ], + "nozzle_temperature": [ + "290" + ], + "temperature_vitrification": [ + "108" + ], + "nozzle_temperature_range_low": [ + "270" + ], + "nozzle_temperature_range_high": [ + "300" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "2" + ] +} diff --git a/resources/profiles/Anycubic/filament/fdm_filament_pc.json b/resources/profiles/Anycubic/filament/fdm_filament_pc.json new file mode 100644 index 000000000..9174d5353 --- /dev/null +++ b/resources/profiles/Anycubic/filament/fdm_filament_pc.json @@ -0,0 +1,82 @@ +{ + "type": "filament", + "name": "fdm_filament_pc", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "cool_plate_temp" : [ + "0" + ], + "eng_plate_temp" : [ + "110" + ], + "hot_plate_temp" : [ + "110" + ], + "cool_plate_temp_initial_layer" : [ + "0" + ], + "eng_plate_temp_initial_layer" : [ + "110" + ], + "hot_plate_temp_initial_layer" : [ + "110" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "fan_cooling_layer_time": [ + "30" + ], + "filament_max_volumetric_speed": [ + "23.2" + ], + "filament_type": [ + "PC" + ], + "filament_density": [ + "1.04" + ], + "filament_cost": [ + "20" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "10" + ], + "overhang_fan_threshold": [ + "25%" + ], + "overhang_fan_speed": [ + "60" + ], + "nozzle_temperature": [ + "280" + ], + "temperature_vitrification": [ + "140" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "2" + ] +} diff --git a/resources/profiles/Anycubic/filament/fdm_filament_pet.json b/resources/profiles/Anycubic/filament/fdm_filament_pet.json new file mode 100644 index 000000000..2f98be665 --- /dev/null +++ b/resources/profiles/Anycubic/filament/fdm_filament_pet.json @@ -0,0 +1,76 @@ +{ + "type": "filament", + "name": "fdm_filament_pet", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "cool_plate_temp" : [ + "60" + ], + "eng_plate_temp" : [ + "0" + ], + "hot_plate_temp" : [ + "80" + ], + "cool_plate_temp_initial_layer" : [ + "60" + ], + "eng_plate_temp_initial_layer" : [ + "0" + ], + "hot_plate_temp_initial_layer" : [ + "80" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "fan_cooling_layer_time": [ + "20" + ], + "filament_max_volumetric_speed": [ + "25" + ], + "filament_type": [ + "PETG" + ], + "filament_density": [ + "1.27" + ], + "filament_cost": [ + "30" + ], + "nozzle_temperature_initial_layer": [ + "255" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "20" + ], + "overhang_fan_speed": [ + "100" + ], + "nozzle_temperature": [ + "255" + ], + "temperature_vitrification": [ + "80" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} diff --git a/resources/profiles/Anycubic/filament/fdm_filament_pla.json b/resources/profiles/Anycubic/filament/fdm_filament_pla.json new file mode 100644 index 000000000..87d61ebb8 --- /dev/null +++ b/resources/profiles/Anycubic/filament/fdm_filament_pla.json @@ -0,0 +1,88 @@ +{ + "type": "filament", + "name": "fdm_filament_pla", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "fan_cooling_layer_time": [ + "100" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PLA" + ], + "filament_density": [ + "1.24" + ], + "filament_cost": [ + "20" + ], + "cool_plate_temp" : [ + "35" + ], + "eng_plate_temp" : [ + "0" + ], + "hot_plate_temp" : [ + "45" + ], + "cool_plate_temp_initial_layer" : [ + "35" + ], + "eng_plate_temp_initial_layer" : [ + "0" + ], + "hot_plate_temp_initial_layer" : [ + "45" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "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": [ + "220" + ], + "temperature_vitrification": [ + "60" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "4" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} diff --git a/resources/profiles/Anycubic/filament/fdm_filament_pva.json b/resources/profiles/Anycubic/filament/fdm_filament_pva.json new file mode 100644 index 000000000..0d3e26c13 --- /dev/null +++ b/resources/profiles/Anycubic/filament/fdm_filament_pva.json @@ -0,0 +1,94 @@ +{ + "type": "filament", + "name": "fdm_filament_pva", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "cool_plate_temp" : [ + "35" + ], + "eng_plate_temp" : [ + "0" + ], + "hot_plate_temp" : [ + "45" + ], + "cool_plate_temp_initial_layer" : [ + "35" + ], + "eng_plate_temp_initial_layer" : [ + "0" + ], + "hot_plate_temp_initial_layer" : [ + "45" + ], + "fan_cooling_layer_time": [ + "100" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_soluble": [ + "1" + ], + "filament_is_support": [ + "1" + ], + "filament_type": [ + "PVA" + ], + "filament_density": [ + "1.24" + ], + "filament_cost": [ + "20" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "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": [ + "220" + ], + "temperature_vitrification": [ + "50" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "slow_down_min_speed": [ + "50" + ], + "slow_down_layer_time": [ + "4" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} diff --git a/resources/profiles/Anycubic/filament/fdm_filament_tpu.json b/resources/profiles/Anycubic/filament/fdm_filament_tpu.json new file mode 100644 index 000000000..d5cc57fbc --- /dev/null +++ b/resources/profiles/Anycubic/filament/fdm_filament_tpu.json @@ -0,0 +1,82 @@ +{ + "type": "filament", + "name": "fdm_filament_tpu", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "cool_plate_temp" : [ + "30" + ], + "eng_plate_temp" : [ + "30" + ], + "hot_plate_temp" : [ + "35" + ], + "cool_plate_temp_initial_layer" : [ + "30" + ], + "eng_plate_temp_initial_layer" : [ + "30" + ], + "hot_plate_temp_initial_layer" : [ + "35" + ], + "fan_cooling_layer_time": [ + "100" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_type": [ + "TPU" + ], + "filament_density": [ + "1.24" + ], + "filament_cost": [ + "20" + ], + "filament_retraction_length": [ + "0.4" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "overhang_fan_speed": [ + "100" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "nozzle_temperature": [ + "240" + ], + "temperature_vitrification": [ + "60" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} diff --git a/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 0.4 nozzle.json new file mode 100644 index 000000000..a1801e8b8 --- /dev/null +++ b/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 0.4 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "setting_id": "GM_ANYCUBIC_003", + "name": "Anycubic 4Max Pro 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "Anycubic 4Max Pro", + "default_print_profile": "0.20mm Standard @4MaxPro", + "nozzle_diameter": [ + "0.4" + ], + "bed_exclude_area": [ + "0x0" + ], + "printable_area": [ + "0x0", + "270x0", + "270x205", + "0x205" + ], + "printable_height": "200", + "machine_start_gcode": "; M190 S0\n; M104 S0\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n; You can use following code instead if your PRINT_START macro support Chamber and print area bedmesh\n; PRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single] PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}", + "machine_end_gcode": "PRINT_END", + "layer_change_gcode": "", + "scan_first_layer": "0", + "nozzle_type": "hardened_steel", + "auxiliary_fan": "0" + } + \ No newline at end of file diff --git a/resources/profiles/Anycubic/machine/Anycubic 4Max Pro.json b/resources/profiles/Anycubic/machine/Anycubic 4Max Pro.json new file mode 100644 index 000000000..8d6cf3ed4 --- /dev/null +++ b/resources/profiles/Anycubic/machine/Anycubic 4Max Pro.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Anycubic 4Max Pro", + "model_id": "AC_4maxpro", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "Anycubic", + "bed_model": "", + "bed_texture": "", + "hotend_model": "bbl-3dp-hotend.stl", + "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" +} diff --git a/resources/profiles/Anycubic/machine/fdm_machine_common.json b/resources/profiles/Anycubic/machine/fdm_machine_common.json new file mode 100644 index 000000000..8c61e3039 --- /dev/null +++ b/resources/profiles/Anycubic/machine/fdm_machine_common.json @@ -0,0 +1,139 @@ +{ + "type": "machine", + "name": "fdm_machine_common", + "from": "system", + "instantiation": "false", + "gcode_flavor": "marlin", + "machine_start_gcode": "", + "machine_end_gcode": "", + "extruder_colour": [ + "#018001" + ], + "extruder_offset": [ + "0x0" + ], + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "2000", + "2000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "3000", + "3000" + ], + "machine_max_acceleration_x": [ + "2000", + "2000" + ], + "machine_max_acceleration_y": [ + "2000", + "2000" + ], + "machine_max_acceleration_z": [ + "300", + "200" + ], + "machine_max_speed_e": [ + "25", + "25" + ], + "machine_max_speed_x": [ + "300", + "200" + ], + "machine_max_speed_y": [ + "300", + "200" + ], + "machine_max_speed_z": [ + "12", + "12" + ], + "machine_max_jerk_e": [ + "2.5", + "2.5" + ], + "machine_max_jerk_x": [ + "9", + "9" + ], + "machine_max_jerk_y": [ + "9", + "9" + ], + "machine_max_jerk_z": [ + "0.2", + "0.4" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "max_layer_height": [ + "0.3" + ], + "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_technology": "FFF", + "printer_variant": "0.4", + "retraction_minimum_travel": [ + "1" + ], + "retract_before_wipe": [ + "70%" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_length": [ + "0.8" + ], + "retract_length_toolchange": [ + "2" + ], + "z_hop": [ + "0.4" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retraction_speed": [ + "30" + ], + "deretraction_speed": [ + "30" + ], + "silent_mode": "0", + "single_extruder_multi_material": "1", + "change_filament_gcode": "", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "machine_pause_gcode": "M400 U1\n", + "wipe": [ + "1" + ], + "z_lift_type": "NormalLift" +} diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @4MaxPro.json b/resources/profiles/Anycubic/process/0.20mm Standard @4MaxPro.json new file mode 100644 index 000000000..8efca5b3f --- /dev/null +++ b/resources/profiles/Anycubic/process/0.20mm Standard @4MaxPro.json @@ -0,0 +1,20 @@ +{ + "type": "process", + "setting_id": "GP_ANYCUBIC_004", + "name": "0.20mm Standard @4MaxPro", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_common", + "initial_layer_speed": "40", + "initial_layer_infill_speed": "50", + "outer_wall_speed": "35", + "inner_wall_speed": "60", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "200", + "top_surface_speed": "50", + "gap_infill_speed": "40", + "travel_speed": "180", + "compatible_printers": [ + "Anycubic 4Max Pro 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Anycubic/process/fdm_process_common.json b/resources/profiles/Anycubic/process/fdm_process_common.json new file mode 100644 index 000000000..7541bb41a --- /dev/null +++ b/resources/profiles/Anycubic/process/fdm_process_common.json @@ -0,0 +1,107 @@ +{ + "type": "process", + "name": "fdm_process_common", + "from": "system", + "instantiation": "false", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_thickness": "0", + "bridge_speed": "50", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [], + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "top_surface_acceleration": "800", + "travel_acceleration": "1000", + "inner_wall_acceleration": "900", + "outer_wall_acceleration": "700", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0", + "enable_arc_fitting": "1", + "outer_wall_line_width": "0.4", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.4", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.2", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "25%", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "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": "2", + "skirt_height": "1", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.4", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.4", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "30", + "tree_support_wall_count": "0", + "tree_support_with_infill": "0", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.4", + "top_shell_thickness": "0.8", + "enable_prime_tower": "1", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "35", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "layer_height": "0.2", + "bottom_shell_layers": "3", + "top_shell_layers": "4", + "bridge_flow": "1", + "initial_layer_speed": "45", + "initial_layer_infill_speed": "45", + "outer_wall_speed": "45", + "inner_wall_speed": "80", + "sparse_infill_speed": "150", + "internal_solid_infill_speed": "150", + "top_surface_speed": "50", + "gap_infill_speed": "30", + "travel_speed": "200", + "enable_arc_fitting": "0" + +} diff --git a/resources/web/image/printer/Anycubic 4Max Pro_cover.png b/resources/web/image/printer/Anycubic 4Max Pro_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..3fad856e45bb478957355d0de4f5198cdee3064e GIT binary patch literal 23325 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 zd09qw@fLcKlprocess_layers(print, tool_ordering, collect_layers_to_print(object), *print_object_instance_sequential_active - object.instances().data(), file, prime_extruder); //BBS: close powerlost recovery { - if (m_second_layer_things_done) { + if (m_second_layer_things_done && print.is_BBL_Printer()) { file.write("; close powerlost recovery\n"); file.write("M1003 S0\n"); } @@ -1877,7 +1877,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato this->process_layers(print, tool_ordering, print_object_instances_ordering, layers_to_print, file); //BBS: close powerlost recovery { - if (m_second_layer_things_done) { + if (m_second_layer_things_done && print.is_BBL_Printer()) { file.write("; close powerlost recovery\n"); file.write("M1003 S0\n"); } @@ -1900,7 +1900,8 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato //BBS: close spaghetti detector //Note: M981 is also used to tell xcam the last layer is finished, so we need always send it even if spaghetti option is disabled. //if (print.config().spaghetti_detector.value) - file.write("M981 S0 P20000 ; close spaghetti detector\n"); + if (print.is_BBL_Printer()) + file.write("M981 S0 P20000 ; close spaghetti detector\n"); // adds tag for processor file.write_format(";%s%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Role).c_str(), ExtrusionEntity::role_to_string(erCustom).c_str()); @@ -2629,8 +2630,10 @@ GCode::LayerResult GCode::process_layer( if (! first_layer && ! m_second_layer_things_done) { //BBS: open powerlost recovery { - gcode += "; open powerlost recovery\n"; - gcode += "M1003 S1\n"; + if (print.is_BBL_Printer()) { + gcode += "; open powerlost recovery\n"; + gcode += "M1003 S1\n"; + } } // BBS: open first layer inspection at second layer if (print.config().scan_first_layer.value) { diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index 13ee0c3e4..19c668c75 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -714,7 +714,8 @@ public: int get_modified_count() const {return m_modified_count;} //BBS: add status for whether support used bool is_support_used() const {return m_support_used;} - + bool is_BBL_Printer() const { return m_isBBLPrinter;} + void set_BBL_Printer(const bool isBBL) { m_isBBLPrinter = isBBL;} //BBS static StringObjectException sequential_print_clearance_valid(const Print &print, Polygons *polygons = nullptr, std::vector>* height_polygons = nullptr); @@ -743,7 +744,8 @@ private: PrintRegionConfig m_default_region_config; PrintObjectPtrs m_objects; PrintRegionPtrs m_print_regions; - + //BBS. + bool m_isBBLPrinter = false; // Ordered collections of extrusion paths to build skirt loops and brim. ExtrusionEntityCollection m_skirt; // BBS: collecting extrusion paths to build brim by objs diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.cpp b/src/slic3r/GUI/BackgroundSlicingProcess.cpp index fa1c60811..ce1be6991 100644 --- a/src/slic3r/GUI/BackgroundSlicingProcess.cpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.cpp @@ -185,7 +185,9 @@ std::string BackgroundSlicingProcess::output_filepath_for_project(const boost::f // from the G-code generator. void BackgroundSlicingProcess::process_fff() { - assert(m_print == m_fff_print); + assert(m_print == m_fff_print); + PresetBundle &preset_bundle = *wxGetApp().preset_bundle; + m_fff_print->set_BBL_Printer(preset_bundle.printers.get_edited_preset().is_bbl_vendor_preset(&preset_bundle)); //BBS: add the logic to process from an existed gcode file if (m_print->finished()) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" %1%: skip slicing, to process previous gcode file")%__LINE__;