diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index 5adc9c38bc..b361df5690 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -12,6 +12,14 @@ "name": "Creality CR-10 Max", "sub_path": "machine/Creality CR-10 Max.json" }, + { + "name": "Creality CR-6 SE", + "sub_path": "machine/Creality CR-6 SE.json" + }, + { + "name": "Creality CR-6 Max", + "sub_path": "machine/Creality CR-6 Max.json" + }, { "name": "Creality Ender-3 V2", "sub_path": "machine/Creality Ender-3 V2.json" @@ -52,13 +60,13 @@ "name": "Creality Ender-6", "sub_path": "machine/Creality Ender-6.json" }, - { - "name": "Creality K1 Max", - "sub_path": "machine/Creality K1 Max.json" - }, { "name": "Creality K1", "sub_path": "machine/Creality K1.json" + }, + { + "name": "Creality K1 Max", + "sub_path": "machine/Creality K1 Max.json" } ], "process_list": [ @@ -70,10 +78,26 @@ "name": "fdm_process_creality_common", "sub_path": "process/fdm_process_creality_common.json" }, + { + "name": "0.08mm SuperDetail @Creality CR-6 0.2", + "sub_path": "process/0.08mm SuperDetail @Creality CR-6 0.2.json" + }, + { + "name": "0.10mm HighDetail @Creality CR-6 0.4.json", + "sub_path": "process/0.10mm HighDetail @Creality CR-6 0.4.json" + }, { "name": "0.12mm Fine @Creality CR10Max", "sub_path": "process/0.12mm Fine @Creality CR10Max.json" }, + { + "name": "0.12mm Detail @Creality CR-6 0.2", + "sub_path": "process/0.12mm Detail @Creality CR-6 0.2.json" + }, + { + "name": "0.12mm Detail @Creality CR-6 0.4", + "sub_path": "process/0.12mm Detail @Creality CR-6 0.4.json" + }, { "name": "0.12mm Fine @Creality Ender3V2", "sub_path": "process/0.12mm Fine @Creality Ender3V2.json" @@ -143,6 +167,14 @@ "sub_path": "process/0.20mm Standard @Creality CR10Max.json" }, { + "name": "0.20mm Standard @Creality CR-6 0.4", + "sub_path": "process/0.20mm Standard @Creality CR-6 0.4.json" + }, + { + "name": "0.20mm Standard @Creality CR-6 0.6", + "sub_path": "process/0.20mm Standard @Creality CR-6 0.6.json" + }, + { "name": "0.20mm Standard @Creality Ender3", "sub_path": "process/0.20mm Standard @Creality Ender3.json" }, @@ -194,6 +226,18 @@ "name": "0.24mm Draft @Creality CR10Max", "sub_path": "process/0.24mm Draft @Creality CR10Max.json" }, + { + "name": "0.24mm Draft @Creality CR-6 0.4", + "sub_path": "process/0.24mm Draft @Creality CR-6 0.4.json" + }, + { + "name": "0.24mm Draft @Creality CR-6 0.6", + "sub_path": "process/0.24mm Draft @Creality CR-6 0.6.json" + }, + { + "name": "0.24mm Optimal @Creality CR-6 0.8", + "sub_path": "process/0.24mm Optimal @Creality CR-6 0.8.json" + }, { "name": "0.24mm Draft @Creality Ender3V2", "sub_path": "process/0.24mm Draft @Creality Ender3V2.json" @@ -202,6 +246,46 @@ "name": "0.24mm Draft @Creality Ender5Pro (2019)", "sub_path": "process/0.24mm Draft @Creality Ender5Pro (2019).json" }, + { + "name": "0.28mm SuperDraft @Creality CR-6 0.4", + "sub_path": "process/0.28mm SuperDraft @Creality CR-6 0.4.json" + }, + { + "name": "0.28mm SuperDraft @Creality CR-6 0.6", + "sub_path": "process/0.28mm SuperDraft @Creality CR-6 0.6.json" + }, + { + "name": "0.32mm Chunky @Creality CR-6 0.6", + "sub_path": "process/0.32mm Chunky @Creality CR-6 0.6.json" + }, + { + "name": "0.32mm Standard @Creality CR-6 0.8", + "sub_path": "process/0.32mm Standard @Creality CR-6 0.8.json" + }, + { + "name": "0.36mm SuperChunky @Creality CR-6 0.6", + "sub_path": "process/0.36mm SuperChunky @Creality CR-6 0.6.json" + }, + { + "name": "0.40mm Draft @Creality CR-6 0.8", + "sub_path": "process/0.40mm Draft @Creality CR-6 0.8.json" + }, + { + "name": "0.44mm SuperExtraChunky @Creality CR-6 0.6", + "sub_path": "process/0.44mm SuperExtraChunky @Creality CR-6 0.6.json" + }, + { + "name": "0.48mm Chunky @Creality CR-6 0.8", + "sub_path": "process/0.48mm Chunky @Creality CR-6 0.8.json" + }, + { + "name": "0.48mm Draft @Creality CR-6 0.8", + "sub_path": "process/0.48mm Draft @Creality CR-6 0.8.json" + }, + { + "name": "0.56mm SuperChunky @Creality CR-6 0.8", + "sub_path": "process/0.56mm SuperChunky @Creality CR-6 0.8.json" + }, { "name": "0.24mm Optimal @Creality K1 (0.6 nozzle)", "sub_path": "process/0.24mm Optimal @Creality K1 (0.6 nozzle).json" @@ -306,6 +390,42 @@ "name": "Creality CR-10 Max 0.4 nozzle", "sub_path": "machine/Creality CR-10 Max 0.4 nozzle.json" }, + { + "name": "Creality Ender-6 0.4 nozzle", + "sub_path": "machine/Creality Ender-6 0.4 nozzle.json" + }, + { + "name": "Creality CR-6 SE 0.2 nozzle", + "sub_path": "machine/Creality CR-6 SE 0.2 nozzle.json" + }, + { + "name": "Creality CR-6 SE 0.4 nozzle", + "sub_path": "machine/Creality CR-6 SE 0.4 nozzle.json" + }, + { + "name": "Creality CR-6 SE 0.6 nozzle", + "sub_path": "machine/Creality CR-6 SE 0.6 nozzle.json" + }, + { + "name": "Creality CR-6 SE 0.8 nozzle", + "sub_path": "machine/Creality CR-6 SE 0.8 nozzle.json" + }, + { + "name": "Creality CR-6 Max 0.2 nozzle", + "sub_path": "machine/Creality CR-6 Max 0.2 nozzle.json" + }, + { + "name": "Creality CR-6 Max 0.4 nozzle", + "sub_path": "machine/Creality CR-6 Max 0.4 nozzle.json" + }, + { + "name": "Creality CR-6 Max 0.6 nozzle", + "sub_path": "machine/Creality CR-6 Max 0.6 nozzle.json" + }, + { + "name": "Creality CR-6 Max 0.8 nozzle", + "sub_path": "machine/Creality CR-6 Max 0.8 nozzle.json" + }, { "name": "Creality Ender-3 V2 0.4 nozzle", "sub_path": "machine/Creality Ender-3 V2 0.4 nozzle.json" @@ -342,10 +462,6 @@ "name": "Creality Ender-5 S1 0.4 nozzle", "sub_path": "machine/Creality Ender-5 S1 0.4 nozzle.json" }, - { - "name": "Creality Ender-6 0.4 nozzle", - "sub_path": "machine/Creality Ender-6 0.4 nozzle.json" - }, { "name": "Creality K1 (0.4 nozzle)", "sub_path": "machine/Creality K1 (0.4 nozzle).json" diff --git a/resources/profiles/Creality/Creality CR-6 Max_cover.png b/resources/profiles/Creality/Creality CR-6 Max_cover.png new file mode 100644 index 0000000000..a0aa2d2725 Binary files /dev/null and b/resources/profiles/Creality/Creality CR-6 Max_cover.png differ diff --git a/resources/profiles/Creality/Creality CR-6 SE_cover.png b/resources/profiles/Creality/Creality CR-6 SE_cover.png new file mode 100644 index 0000000000..35c6e318cf Binary files /dev/null and b/resources/profiles/Creality/Creality CR-6 SE_cover.png differ diff --git a/resources/profiles/Creality/creality_cr6se_buildplate_model.stl b/resources/profiles/Creality/creality_cr6se_buildplate_model.stl new file mode 100644 index 0000000000..5fa9d7a32d Binary files /dev/null and b/resources/profiles/Creality/creality_cr6se_buildplate_model.stl differ diff --git a/resources/profiles/Creality/creality_cr6se_buildplate_texture.png b/resources/profiles/Creality/creality_cr6se_buildplate_texture.png new file mode 100644 index 0000000000..31775044c0 Binary files /dev/null and b/resources/profiles/Creality/creality_cr6se_buildplate_texture.png differ diff --git a/resources/profiles/Creality/filament/Creality Generic ABS.json b/resources/profiles/Creality/filament/Creality Generic ABS.json index 7e0f6cb883..482d180125 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS.json +++ b/resources/profiles/Creality/filament/Creality Generic ABS.json @@ -11,6 +11,14 @@ "compatible_printers": [ "Creality CR-10 V2 0.4 nozzle", "Creality CR-10 Max 0.4 nozzle", + "Creality CR-6 SE 0.2 nozzle", + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 SE 0.8 nozzle", + "Creality CR-6 Max 0.2 nozzle", + "Creality CR-6 Max 0.4 nozzle", + "Creality CR-6 Max 0.6 nozzle", + "Creality CR-6 Max 0.8 nozzle", "Creality Ender-3 0.4 nozzle", "Creality Ender-3 V2 0.4 nozzle", "Creality Ender-3 S1 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic PETG.json b/resources/profiles/Creality/filament/Creality Generic PETG.json index 7359800d56..715f4d7607 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG.json +++ b/resources/profiles/Creality/filament/Creality Generic PETG.json @@ -21,6 +21,14 @@ "compatible_printers": [ "Creality CR-10 V2 0.4 nozzle", "Creality CR-10 Max 0.4 nozzle", + "Creality CR-6 SE 0.2 nozzle", + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 SE 0.8 nozzle", + "Creality CR-6 Max 0.2 nozzle", + "Creality CR-6 Max 0.4 nozzle", + "Creality CR-6 Max 0.6 nozzle", + "Creality CR-6 Max 0.8 nozzle", "Creality Ender-3 0.4 nozzle", "Creality Ender-3 V2 0.4 nozzle", "Creality Ender-3 S1 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic PLA.json b/resources/profiles/Creality/filament/Creality Generic PLA.json index f13bb32487..87b4b3d684 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA.json @@ -12,6 +12,14 @@ "compatible_printers": [ "Creality CR-10 V2 0.4 nozzle", "Creality CR-10 Max 0.4 nozzle", + "Creality CR-6 SE 0.2 nozzle", + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 SE 0.8 nozzle", + "Creality CR-6 Max 0.2 nozzle", + "Creality CR-6 Max 0.4 nozzle", + "Creality CR-6 Max 0.6 nozzle", + "Creality CR-6 Max 0.8 nozzle", "Creality Ender-3 0.4 nozzle", "Creality Ender-3 V2 0.4 nozzle", "Creality Ender-3 S1 0.4 nozzle", diff --git a/resources/profiles/Creality/machine/Creality CR-6 Max 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 Max 0.2 nozzle.json new file mode 100644 index 0000000000..7bde170ec2 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-6 Max 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Creality CR-6 Max 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_creality_common", + "printer_model": "Creality CR-6 Max", + "default_filament_profile": [ + "Creality Generic PLA" + ], + "printer_variant": "0.2", + "default_print_profile": "0.16mm Opitmal @Creality CR-6 0.2", + "nozzle_diameter": [ + "0.2" + ], + "printable_area": [ + "5x5", + "395x5", + "395x395", + "5x395" + ], + "printable_height": "400", + "nozzle_type": "undefine", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/Creality/machine/Creality CR-6 Max 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 Max 0.4 nozzle.json new file mode 100644 index 0000000000..595cc850dc --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-6 Max 0.4 nozzle.json @@ -0,0 +1,25 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Creality CR-6 Max 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_creality_common", + "printer_model": "Creality CR-6 Max", + "default_filament_profile": [ + "Creality Generic PLA" + ], + "default_print_profile": "0.20mm Standard @Creality CR-6 0.4", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "5x5", + "395x5", + "395x395", + "5x395" + ], + "printable_height": "400", + "nozzle_type": "undefine", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/Creality/machine/Creality CR-6 Max 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 Max 0.6 nozzle.json new file mode 100644 index 0000000000..b6e78a8c15 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-6 Max 0.6 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Creality CR-6 Max 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_creality_common", + "printer_model": "Creality CR-6 Max", + "default_filament_profile": [ + "Creality Generic PLA" + ], + "printer_variant": "0.6", + "default_print_profile": "0.20mm Standard @Creality CR-6 0.6", + "nozzle_diameter": [ + "0.6" + ], + "printable_area": [ + "5x5", + "395x5", + "395x395", + "5x395" + ], + "printable_height": "400", + "nozzle_type": "undefine", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/Creality/machine/Creality CR-6 Max 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 Max 0.8 nozzle.json new file mode 100644 index 0000000000..7f3e5abea9 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-6 Max 0.8 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Creality CR-6 Max 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_creality_common", + "printer_model": "Creality CR-6 Max", + "default_filament_profile": [ + "Creality Generic PLA" + ], + "printer_variant": "0.8", + "default_print_profile": "0.32mm Standard @Creality CR-6 0.8", + "nozzle_diameter": [ + "0.8" + ], + "printable_area": [ + "5x5", + "395x5", + "395x395", + "5x395" + ], + "printable_height": "400", + "nozzle_type": "undefine", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/Creality/machine/Creality CR-6 Max.json b/resources/profiles/Creality/machine/Creality CR-6 Max.json new file mode 100644 index 0000000000..2f9ec6c3c2 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-6 Max.json @@ -0,0 +1,11 @@ +{ + "type": "machine_model", + "name": "Creality CR-6 Max", + "nozzle_diameter": "0.2;0.4;0.6;0.8", + "bed_texture": "creality_cr6se_buildplate_texture.png", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_CR_6_Max", + "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" +} \ No newline at end of file diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json new file mode 100644 index 0000000000..8ec3f2a59e --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Creality CR-6 SE 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_creality_common", + "printer_model": "Creality CR-6 SE", + "default_filament_profile": [ + "Creality Generic PLA" + ], + "printer_variant": "0.2", + "default_print_profile": "0.16mm Opitmal @Creality CR-6 0.2", + "nozzle_diameter": [ + "0.2" + ], + "printable_area": [ + "5x0", + "230x0", + "230x235", + "5x235" + ], + "printable_height": "250", + "nozzle_type": "undefine", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json new file mode 100644 index 0000000000..26724ec65a --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json @@ -0,0 +1,25 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Creality CR-6 SE 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_creality_common", + "printer_model": "Creality CR-6 SE", + "default_filament_profile": [ + "Creality Generic PLA" + ], + "default_print_profile": "0.20mm Standard @Creality CR-6 0.4", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "5x0", + "230x0", + "230x235", + "5x235" + ], + "printable_height": "250", + "nozzle_type": "undefine", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json new file mode 100644 index 0000000000..cddea61f75 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Creality CR-6 SE 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_creality_common", + "printer_model": "Creality CR-6 SE", + "default_filament_profile": [ + "Creality Generic PLA" + ], + "printer_variant": "0.6", + "default_print_profile": "0.20mm Standard @Creality CR-6 0.6", + "nozzle_diameter": [ + "0.6" + ], + "printable_area": [ + "5x0", + "230x0", + "230x235", + "5x235" + ], + "printable_height": "250", + "nozzle_type": "undefine", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json new file mode 100644 index 0000000000..2e8cc26c4a --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Creality CR-6 SE 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_creality_common", + "printer_model": "Creality CR-6 SE", + "default_filament_profile": [ + "Creality Generic PLA" + ], + "printer_variant": "0.8", + "default_print_profile": "0.32mm Standard @Creality CR-6 0.8", + "nozzle_diameter": [ + "0.8" + ], + "printable_area": [ + "5x0", + "230x0", + "230x235", + "5x235" + ], + "printable_height": "250", + "nozzle_type": "undefine", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE.json b/resources/profiles/Creality/machine/Creality CR-6 SE.json new file mode 100644 index 0000000000..219dc01ae7 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-6 SE.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Creality CR-6 SE", + "nozzle_diameter": "0.2;0.4;0.6;0.8", + "bed_model": "creality_cr6se_buildplate_model.stl", + "bed_texture": "creality_cr6se_buildplate_texture.png", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_CR_6_SE", + "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality CR-6 0.2.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality CR-6 0.2.json new file mode 100644 index 0000000000..490f0d3bf4 --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality CR-6 0.2.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.08mm SuperDetail @Creality CR-6 0.2", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "bottom_shell_layers": "5", + "initial_layer_line_width": "0.2", + "initial_layer_print_height": "0.12", + "inner_wall_line_width": "0.2", + "internal_solid_infill_line_width": "0.2", + "layer_height": "0.08", + "line_width": "0.2", + "outer_wall_line_width": "0.2", + "sparse_infill_line_width": "0.2", + "support_line_width": "0.2", + "top_shell_layers": "6", + "top_surface_line_width": "0.2", + "compatible_printers": [ + "Creality CR-6 SE 0.2 nozzle", + "Creality CR-6 Max 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.10mm HighDetail @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.10mm HighDetail @Creality CR-6 0.4.json new file mode 100644 index 0000000000..1cb638bb86 --- /dev/null +++ b/resources/profiles/Creality/process/0.10mm HighDetail @Creality CR-6 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.10mm HighDetail @Creality 0.4 CR-6 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.3", + "inner_wall_line_width": "0.3", + "internal_solid_infill_line_width": "0.3", + "layer_height": "0.1", + "line_width": "0.3", + "outer_wall_line_width": "0.3", + "sparse_infill_line_width": "0.3", + "support_line_width": "0.3", + "top_shell_layers": "4", + "top_surface_line_width": "0.3", + "compatible_printers": [ + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 Max 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.2.json b/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.2.json new file mode 100644 index 0000000000..35f296529b --- /dev/null +++ b/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.2.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.12mm Detail @Creality CR-6 0.2", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "bottom_shell_layers": "5", + "initial_layer_line_width": "0.2", + "initial_layer_print_height": "0.12", + "inner_wall_line_width": "0.2", + "internal_solid_infill_line_width": "0.2", + "layer_height": "0.12", + "line_width": "0.2", + "outer_wall_line_width": "0.2", + "sparse_infill_line_width": "0.2", + "support_line_width": "0.2", + "top_shell_layers": "6", + "top_surface_line_width": "0.2", + "compatible_printers": [ + "Creality CR-6 SE 0.2 nozzle", + "Creality CR-6 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.4.json new file mode 100644 index 0000000000..44679acbb6 --- /dev/null +++ b/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.4.json @@ -0,0 +1,17 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.12mm Detail @Creality 0.4 CR-6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.4", + "inner_wall_line_width": "0.4", + "layer_height": "0.12", + "sparse_infill_line_width": "0.4", + "top_shell_layers": "4", + "compatible_printers": [ + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 Max 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.16mm Opitmal @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.16mm Opitmal @Creality CR-6 0.6.json new file mode 100644 index 0000000000..b7fc596027 --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Opitmal @Creality CR-6 0.6.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.16mm Opitmal @Creality CR-6 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "bottom_shell_layers": "5", + "initial_layer_line_width": "0.6", + "initial_layer_print_height": "0.3", + "inner_wall_line_width": "0.6", + "internal_solid_infill_line_width": "0.6", + "layer_height": "0.16", + "line_width": "0.6", + "outer_wall_line_width": "0.6", + "sparse_infill_line_width": "0.6", + "support_line_width": "0.6", + "top_shell_layers": "7", + "top_surface_line_width": "0.6", + "compatible_printers": [ + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 Max 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.2.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.2.json new file mode 100644 index 0000000000..d77e26b672 --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.2.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.16mm Opitmal @Creality CR6 0.2 ", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "bottom_shell_layers": "6", + "initial_layer_line_width": "0.2", + "initial_layer_print_height": "0.16", + "inner_wall_line_width": "0.2", + "internal_solid_infill_line_width": "0.2", + "layer_height": "0.16", + "line_width": "0.2", + "outer_wall_line_width": "0.2", + "sparse_infill_line_width": "0.2", + "support_line_width": "0.2", + "top_surface_line_width": "0.2", + "compatible_printers": [ + "Creality CR-6 SE 0.2 nozzle", + "Creality CR-6 Max 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.4.json new file mode 100644 index 0000000000..d265bb237a --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.4.json @@ -0,0 +1,52 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.16mm Optimal @Creality CR-6 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "adaptive_layer_height": "1", + "brim_object_gap": "0", + "brim_width": "0", + "default_acceleration": "0", + "detect_thin_wall": "1", + "elefant_foot_compensation": "0.1", + "filename_format": "[input_filename_base].gcode", + "infill_wall_overlap": "25%", + "initial_layer_acceleration": "0", + "initial_layer_infill_speed": "35%", + "initial_layer_line_width": "0.42", + "initial_layer_speed": "35%", + "inner_wall_acceleration": "0", + "internal_solid_infill_line_width": "0", + "internal_solid_infill_speed": "50", + "ironing_type": "no ironing", + "layer_height": "0.16", + "line_width": "0.45", + "minimum_sparse_infill_area": "10", + "outer_wall_line_width": "0.45", + "outer_wall_speed": "40", + "prime_tower_width": "60", + "skirt_height": "2", + "skirt_loops": "2", + "sparse_infill_speed": "60", + "support_base_pattern_spacing": "0.2", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.2", + "support_interface_speed": "100%", + "support_interface_top_layers": "3", + "support_line_width": "0.38", + "support_object_xy_distance": "60%", + "support_speed": "40", + "support_style": "grid", + "support_threshold_angle": "45", + "support_top_z_distance": "0.15", + "top_surface_acceleration": "0", + "travel_acceleration": "0", + "tree_support_branch_angle": "40", + "wall_loops": "2", + "compatible_printers": [ + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 Max 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.4.json new file mode 100644 index 0000000000..6626135a26 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.4.json @@ -0,0 +1,13 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Standard @Creality CR-6 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "top_shell_layers": "4", + "compatible_printers": [ + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 Max 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.6.json new file mode 100644 index 0000000000..2f34f8c532 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.6.json @@ -0,0 +1,21 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Standard @Creality CR-6 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.63", + "initial_layer_print_height": "0.3", + "inner_wall_line_width": "0.66", + "internal_solid_infill_line_width": "0.66", + "line_width": "0.66", + "outer_wall_line_width": "0.66", + "sparse_infill_line_width": "0.66", + "support_line_width": "0.54", + "top_surface_line_width": "0.66", + "compatible_printers": [ + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 Max 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.4.json new file mode 100644 index 0000000000..185ef5a3cb --- /dev/null +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.24mm Draft @Creality CR-6 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.4", + "inner_wall_line_width": "0.4", + "internal_solid_infill_line_width": "0.5", + "layer_height": "0.24", + "line_width": "0.5", + "outer_wall_line_width": "0.5", + "sparse_infill_line_width": "0.4", + "support_line_width": "0.5", + "top_shell_layers": "4", + "top_surface_line_width": "0.5", + "compatible_printers": [ + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 Max 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.6.json new file mode 100644 index 0000000000..ecf0d196c7 --- /dev/null +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.6.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.24mm Draft @Creality CR-6 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.6", + "initial_layer_print_height": "0.3", + "inner_wall_line_width": "0.6", + "internal_solid_infill_line_width": "0.6", + "layer_heigth": "0.24", + "line_width": "0.6", + "outer_wall_line_width": "0.6", + "sparse_infill_line_width": "0.6", + "support_line_width": "0.6", + "top_surface_line_width": "0.6", + "compatible_printers": [ + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 Max 0.6 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.24mm Optimal @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.24mm Optimal @Creality CR-6 0.8.json new file mode 100644 index 0000000000..be0b893d37 --- /dev/null +++ b/resources/profiles/Creality/process/0.24mm Optimal @Creality CR-6 0.8.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.24mm Optimal @Creality CR-6 0.8", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.8", + "initial_layer_print_height": "0.4", + "inner_wall_line_width": "0.8", + "internal_solid_infill_line_width": "0.8", + "layer_height": "0.24", + "line_width": "0.8", + "outer_wall_line_width": "0.8", + "sparse_infill_line_width": "0.8", + "support_line_width": "0.8", + "top_shell_layers": "4", + "top_surface_line_width": "0.8", + "compatible_printers": [ + "Creality CR-6 SE 0.8 nozzle", + "Creality CR-6 Max 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.4.json new file mode 100644 index 0000000000..fea20f7b1a --- /dev/null +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.4.json @@ -0,0 +1,18 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.28mm SuperDraft @Creality CR-6 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.4", + "initial_layer_print_height": "0.28", + "inner_wall_line_width": "0.4", + "layer_height": "0.28", + "sparse_infill_line_width": "0.4", + "top_shell_layers": "4", + "compatible_printers": [ + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 Max 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.6.json new file mode 100644 index 0000000000..d4774fcd80 --- /dev/null +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.6.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.28mm SuperDraft @Creality CR-6 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.6", + "inner_wall_line_width": "0.6", + "internal_solid_infill_line_width": "0.6", + "line_width": "0.6", + "layer_height": "0.28", + "outer_wall_line_width": "0.6", + "sparse_infill_line_width": "0.6", + "support_line_width": "0.6", + "top_surface_line_width": "0.6", + "top_shell_layers": "4", + "compatible_printers": [ + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 Max 0.6 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.32mm Chunky @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.32mm Chunky @Creality CR-6 0.6.json new file mode 100644 index 0000000000..878680aec3 --- /dev/null +++ b/resources/profiles/Creality/process/0.32mm Chunky @Creality CR-6 0.6.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.32mm Chunky @Creality CR-6 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.6", + "initial_layer_print_height": "0.32", + "inner_wall_line_width": "0.6", + "internal_solid_infill_line_width": "0.6", + "layer_height": "0.32", + "line_width": "0.6", + "outer_wall_line_width": "0.6", + "sparse_infill_line_width": "0.6", + "support_line_width": "0.6", + "top_shell_layers": "4", + "top_surface_line_width": "0.6", + "compatible_printers": [ + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 Max 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.32mm Standard @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.32mm Standard @Creality CR-6 0.8.json new file mode 100644 index 0000000000..16078c5b07 --- /dev/null +++ b/resources/profiles/Creality/process/0.32mm Standard @Creality CR-6 0.8.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.32mm Standard @Creality CR-6 0.8", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.8", + "initial_layer_print_height": "0.32", + "inner_wall_line_width": "0.8", + "internal_solid_infill_line_width": "0.8", + "layer_height": "0.32", + "line_width": "0.8", + "outer_wall_line_width": "0.8", + "sparse_infill_line_width": "0.8", + "support_line_width": "0.8", + "top_shell_layers": "4", + "top_surface_line_width": "0.8", + "compatible_printers": [ + "Creality CR-6 SE 0.8 nozzle", + "Creality CR-6 Max 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.36mm SuperChunky @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.36mm SuperChunky @Creality CR-6 0.6.json new file mode 100644 index 0000000000..1e0a67d910 --- /dev/null +++ b/resources/profiles/Creality/process/0.36mm SuperChunky @Creality CR-6 0.6.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.36mm SuperChunky @Creality CR-6 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.6", + "initial_layer_print_height": "0.3", + "inner_wall_line_width": "0.6", + "internal_solid_infill_line_width": "0.6", + "layer_height": "0.36", + "line_width": "0.6", + "outer_wall_line_width": "0.6", + "sparse_infill_line_width": "0.6", + "support_line_width": "0.6", + "top_shell_layers": "4", + "top_surface_line_width": "0.6", + "compatible_printers": [ + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 Max 0.6 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.40mm Draft @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.40mm Draft @Creality CR-6 0.8.json new file mode 100644 index 0000000000..ce75cc9524 --- /dev/null +++ b/resources/profiles/Creality/process/0.40mm Draft @Creality CR-6 0.8.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.40mm Draft @Creality CR-6 0.8", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.8", + "initial_layer_print_height": "0.4", + "inner_wall_line_width": "0.8", + "internal_solid_infill_line_width": "0.8", + "layer_height": "0.4", + "line_width": "0.8", + "outer_wall_line_width": "0.8", + "sparse_infill_line_width": "0.8", + "support_line_width": "0.8", + "top_shell_layers": "4", + "top_surface_line_width": "0.8", + "compatible_printers": [ + "Creality CR-6 SE 0.8 nozzle", + "Creality CR-6 Max 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.44mm SuperExtraChunky @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.44mm SuperExtraChunky @Creality CR-6 0.6.json new file mode 100644 index 0000000000..2b933ba21e --- /dev/null +++ b/resources/profiles/Creality/process/0.44mm SuperExtraChunky @Creality CR-6 0.6.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.44mm SuperExtraChunky @Creality CR-6 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.6", + "initial_layer_print_height": "0.3", + "inner_wall_line_width": "0.6", + "internal_solid_infill_line_width": "0.6", + "layer_height": "0.44", + "line_width": "0.6", + "outer_wall_line_width": "0.6", + "sparse_infill_line_width": "0.6", + "support_line_width": "0.6", + "top_shell_layers": "4", + "top_surface_line_width": "0.6", + "compatible_printers": [ + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 Max 0.6 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.48mm Chunky @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.48mm Chunky @Creality CR-6 0.8.json new file mode 100644 index 0000000000..e63b479400 --- /dev/null +++ b/resources/profiles/Creality/process/0.48mm Chunky @Creality CR-6 0.8.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.48mm Chunky @Creality CR-6 0.8", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.8", + "initial_layer_print_height": "0.48", + "inner_wall_line_width": "0.8", + "internal_solid_infill_line_width": "0.8", + "layer_height": "0.4", + "line_width": "0.8", + "outer_wall_line_width": "0.8", + "sparse_infill_line_width": "0.8", + "support_line_width": "0.8", + "top_shell_layers": "4", + "top_surface_line_width": "0.8", + "compatible_printers": [ + "Creality CR-6 SE 0.8 nozzle", + "Creality CR-6 Max 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.48mm Draft @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.48mm Draft @Creality CR-6 0.8.json new file mode 100644 index 0000000000..d39aa269e4 --- /dev/null +++ b/resources/profiles/Creality/process/0.48mm Draft @Creality CR-6 0.8.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.48mm Draft @Creality CR-6 0.8", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.8", + "initial_layer_print_height": "0.48", + "inner_wall_line_width": "0.8", + "internal_solid_infill_line_width": "0.8", + "layer_height": "0.48", + "line_width": "0.8", + "outer_wall_line_width": "0.8", + "sparse_infill_line_width": "0.8", + "support_line_width": "0.8", + "top_shell_layers": "4", + "top_surface_line_width": "0.8", + "compatible_printers": [ + "Creality CR-6 SE 0.8 nozzle", + "Creality CR-6 Max 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/process/0.56mm SuperChunky @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.56mm SuperChunky @Creality CR-6 0.8.json new file mode 100644 index 0000000000..e823088feb --- /dev/null +++ b/resources/profiles/Creality/process/0.56mm SuperChunky @Creality CR-6 0.8.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.56mm SuperChunky @Creality CR-6 0.8", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_creality_common", + "initial_layer_line_width": "0.8", + "initial_layer_print_height": "0.4", + "inner_wall_line_width": "0.8", + "internal_solid_infill_line_width": "0.8", + "layer_height": "0.56", + "line_width": "0.8", + "outer_wall_line_width": "0.8", + "sparse_infill_line_width": "0.8", + "support_line_width": "0.8", + "top_shell_layers": "4", + "top_surface_line_width": "0.8", + "compatible_printers": [ + "Creality CR-6 SE 0.8 nozzle", + "Creality CR-6 Max 0.8 nozzle" + ] +} diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index f39732b173..e3b089ca6e 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -1728,61 +1728,70 @@ void PrintObject::discover_vertical_shells() // PROFILE_OUTPUT(debug_out_path("discover_vertical_shells-profile.txt").c_str()); } -/* This method applies bridge flow to the first internal solid layer above - sparse infill */ +// This method applies bridge flow to the first internal solid layer above sparse infill. void PrintObject::bridge_over_infill() { BOOST_LOG_TRIVIAL(info) << "Bridge over infill..." << log_memory_info(); - for (size_t region_id = 0; region_id < this->num_printing_regions(); ++ region_id) { - const PrintRegion ®ion = this->printing_region(region_id); + std::vector sparse_infill_regions; + for (size_t region_id = 0; region_id < this->num_printing_regions(); ++ region_id) + if (const PrintRegion ®ion = this->printing_region(region_id); region.config().sparse_infill_density.value < 100) + sparse_infill_regions.emplace_back(region_id); + if (this->layer_count() < 2 || sparse_infill_regions.empty()) + return; - // skip bridging in case there are no voids - if (region.config().sparse_infill_density.value == 100) - continue; + // Collect sum of all internal (sparse infill) regions, because + // 1) layerm->fill_surfaces.will be modified in parallel. + // 2) the parallel loop works on a sum of surfaces over regions anyways, thus collecting the sparse infill surfaces + // up front is an optimization. + std::vector internals; + internals.reserve(this->layer_count()); + for (Layer *layer : m_layers) { + Polygons sum; + for (const LayerRegion *layerm : layer->m_regions) + layerm->fill_surfaces.filter_by_type(stInternal, &sum); + internals.emplace_back(std::move(sum)); + } - for (LayerPtrs::iterator layer_it = m_layers.begin(); layer_it != m_layers.end(); ++ layer_it) { - // skip first layer - if (layer_it == m_layers.begin()) - continue; - - Layer *layer = *layer_it; + // Process all regions and layers in parallel. + tbb::parallel_for(tbb::blocked_range(0, sparse_infill_regions.size() * (this->layer_count() - 1), sparse_infill_regions.size()), + [this, &sparse_infill_regions, &internals] + (const tbb::blocked_range &range) { + for (size_t task_id = range.begin(); task_id != range.end(); ++ task_id) { + const size_t layer_id = (task_id / sparse_infill_regions.size()) + 1; + const size_t region_id = sparse_infill_regions[task_id % sparse_infill_regions.size()]; + Layer *layer = this->get_layer(layer_id); LayerRegion *layerm = layer->m_regions[region_id]; const PrintObjectConfig& object_config = layer->object()->config(); //BBS: enable thick bridge for internal bridge only Flow bridge_flow = layerm->bridging_flow(frSolidInfill, true); - // extract the stInternalSolid surfaces that might be transformed into bridges - Polygons internal_solid; - layerm->fill_surfaces.filter_by_type(stInternalSolid, &internal_solid); + // Extract the stInternalSolid surfaces that might be transformed into bridges. + ExPolygons internal_solid; + layerm->fill_surfaces.remove_type(stInternalSolid, &internal_solid); + if (internal_solid.empty()) + // No internal solid -> no new bridges for this layer region. + continue; // check whether the lower area is deep enough for absorbing the extra flow // (for obvious physical reasons but also for preventing the bridge extrudates // from overflowing in 3D preview) ExPolygons to_bridge; { - Polygons to_bridge_pp = internal_solid; - - // iterate through lower layers spanned by bridge_flow + Polygons to_bridge_pp = to_polygons(internal_solid); + // Iterate through lower layers spanned by bridge_flow. double bottom_z = layer->print_z - bridge_flow.height() - EPSILON; - for (int i = int(layer_it - m_layers.begin()) - 1; i >= 0; --i) { - const Layer* lower_layer = m_layers[i]; - - // stop iterating if layer is lower than bottom_z - if (lower_layer->print_z < bottom_z) break; - - // iterate through regions and collect internal surfaces - Polygons lower_internal; - for (LayerRegion *lower_layerm : lower_layer->m_regions) - lower_layerm->fill_surfaces.filter_by_type(stInternal, &lower_internal); - - // intersect such lower internal surfaces with the candidate solid surfaces - to_bridge_pp = intersection(to_bridge_pp, lower_internal); + for (auto i = int(layer_id) - 1; i >= 0; -- i) { + // Stop iterating if layer is lower than bottom_z. + if (m_layers[i]->print_z < bottom_z) + break; + // Intersect lower sparse infills with the candidate solid surfaces. + to_bridge_pp = intersection(to_bridge_pp, internals[i]); } // BBS: expand to make avoid gap between bridge and inner wall to_bridge_pp = expand(to_bridge_pp, bridge_flow.scaled_width()); - to_bridge_pp = intersection(to_bridge_pp, internal_solid); + to_bridge_pp = intersection(to_bridge_pp, to_polygons(internal_solid)); // there's no point in bridging too thin/short regions //FIXME Vojtech: The offset2 function is not a geometric offset, @@ -1793,7 +1802,12 @@ void PrintObject::bridge_over_infill() to_bridge_pp = opening(to_bridge_pp, min_width); } - if (to_bridge_pp.empty()) continue; + if (to_bridge_pp.empty()) { + // Restore internal_solid surfaces. + for (ExPolygon &ex : internal_solid) + layerm->fill_surfaces.surfaces.push_back(Surface(stInternalSolid, std::move(ex))); + continue; + } // convert into ExPolygons to_bridge = union_ex(to_bridge_pp); @@ -1807,7 +1821,6 @@ void PrintObject::bridge_over_infill() ExPolygons not_to_bridge = diff_ex(internal_solid, to_bridge, ApplySafetyOffset::Yes); to_bridge = intersection_ex(to_bridge, internal_solid, ApplySafetyOffset::Yes); // build the new collection of fill_surfaces - layerm->fill_surfaces.remove_type(stInternalSolid); for (ExPolygon &ex : to_bridge) { layerm->fill_surfaces.surfaces.push_back(Surface(stInternalBridge, ex)); // BBS: detect angle for internal bridge infill @@ -1825,8 +1838,8 @@ void PrintObject::bridge_over_infill() float internal_loop_thickness = object_config.internal_bridge_support_thickness.value; double bottom_z = layer->print_z - layer->height - internal_loop_thickness + EPSILON; //BBS: lighting infill doesn't support this feature. Don't need to add loop when infill density is high than 50% - if (region.config().sparse_infill_pattern != InfillPattern::ipLightning && region.config().sparse_infill_density.value < 50) - for (int i = int(layer_it - m_layers.begin()) - 1; i >= 0; --i) { + if (layerm->region().config().sparse_infill_pattern != InfillPattern::ipLightning && layerm->region().config().sparse_infill_density.value < 50) + for (int i = layer_id - 1; i >= 0; --i) { const Layer* lower_layer = m_layers[i]; if (lower_layer->print_z < bottom_z) break; @@ -1893,7 +1906,7 @@ void PrintObject::bridge_over_infill() #endif /* SLIC3R_DEBUG_SLICE_PROCESSING */ m_print->throw_if_canceled(); } - } + }); } static void clamp_exturder_to_default(ConfigOptionInt &opt, size_t num_extruders) diff --git a/src/libslic3r/SurfaceCollection.cpp b/src/libslic3r/SurfaceCollection.cpp index f2f0b3f97e..f0af8dcd2d 100644 --- a/src/libslic3r/SurfaceCollection.cpp +++ b/src/libslic3r/SurfaceCollection.cpp @@ -65,7 +65,7 @@ SurfacesPtr SurfaceCollection::filter_by_types(const SurfaceType *types, int nty return ss; } -void SurfaceCollection::filter_by_type(SurfaceType type, Polygons* polygons) +void SurfaceCollection::filter_by_type(SurfaceType type, Polygons* polygons) const { for (const Surface &surface : this->surfaces) if (surface.surface_type == type) @@ -121,6 +121,22 @@ void SurfaceCollection::remove_type(const SurfaceType type) surfaces.erase(surfaces.begin() + j, surfaces.end()); } +void SurfaceCollection::remove_type(const SurfaceType type, ExPolygons *polygons) +{ + size_t j = 0; + for (size_t i = 0; i < surfaces.size(); ++ i) { + if (Surface &surface = surfaces[i]; surface.surface_type == type) { + polygons->emplace_back(std::move(surface.expolygon)); + } else { + if (j < i) + std::swap(surfaces[i], surfaces[j]); + ++ j; + } + } + if (j < surfaces.size()) + surfaces.erase(surfaces.begin() + j, surfaces.end()); +} + void SurfaceCollection::remove_types(const SurfaceType *types, int ntypes) { size_t j = 0; diff --git a/src/libslic3r/SurfaceCollection.hpp b/src/libslic3r/SurfaceCollection.hpp index 50be3e97da..50c71f011f 100644 --- a/src/libslic3r/SurfaceCollection.hpp +++ b/src/libslic3r/SurfaceCollection.hpp @@ -32,7 +32,8 @@ public: void keep_types(const SurfaceType *types, int ntypes); void remove_type(const SurfaceType type); void remove_types(const SurfaceType *types, int ntypes); - void filter_by_type(SurfaceType type, Polygons* polygons); + void filter_by_type(SurfaceType type, Polygons* polygons) const; + void remove_type(const SurfaceType type, ExPolygons *polygons); void set_type(SurfaceType type) { for (Surface &surface : this->surfaces) surface.surface_type = type;