diff --git a/CMakeLists.txt b/CMakeLists.txt
index 197694e020..47a4fba3cb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -302,6 +302,10 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
add_compile_options(-gz=zstd)
endif()
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 14)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=template-id-cdtor" )
+ endif()
+
endif()
if (SLIC3R_ASAN)
diff --git a/linux.d/debian b/linux.d/debian
index 796f2ab100..1c299cba31 100644
--- a/linux.d/debian
+++ b/linux.d/debian
@@ -1,4 +1,4 @@
-FOUND_GTK3=$(dpkg -l libgtk* | grep gtk-3)
+FOUND_GTK3=$(dpkg -l libgtk* | grep gtk-3 || echo '')
REQUIRED_DEV_PACKAGES=(
autoconf
diff --git a/linux.d/fedora b/linux.d/fedora
index 3a34072891..47086053ba 100644
--- a/linux.d/fedora
+++ b/linux.d/fedora
@@ -16,6 +16,7 @@ REQUIRED_DEV_PACKAGES=(
gstreamermm-devel
gtk3-devel
libmspack-devel
+ libquadmath-devel
libsecret-devel
libtool
m4
diff --git a/resources/images/bbl_bed_st_bottom.svg b/resources/images/bbl_bed_st_bottom.svg
new file mode 100644
index 0000000000..68c0c0f594
--- /dev/null
+++ b/resources/images/bbl_bed_st_bottom.svg
@@ -0,0 +1,22 @@
+
diff --git a/resources/images/bbl_bed_st_left.svg b/resources/images/bbl_bed_st_left.svg
new file mode 100644
index 0000000000..4a7c10acbe
--- /dev/null
+++ b/resources/images/bbl_bed_st_left.svg
@@ -0,0 +1,34 @@
+
diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json b/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json
index ec95e5dd99..aea117419f 100644
--- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json
+++ b/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json
@@ -15,8 +15,11 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "1"
+ ],
"pressure_advance": [
- "0.084"
+ "0.032"
],
"compatible_printers": [
"FlyingBear Reborn3 0.4 nozzle",
diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json
index 4157771395..e51861f40d 100644
--- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json
@@ -15,8 +15,11 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "1"
+ ],
"pressure_advance": [
- "0.084"
+ "0.032"
],
"compatible_printers": [
"FlyingBear S1 0.4 nozzle"
diff --git a/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json
index e6e53290b3..139d025b6b 100644
--- a/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json
@@ -15,8 +15,11 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "1"
+ ],
"pressure_advance": [
- "0.084"
+ "0.032"
],
"compatible_printers": [
"FlyingBear S1 0.4 nozzle"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla @S1.json
index c7b0cf5b7f..0bbf0700f3 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla @S1.json
@@ -41,7 +41,7 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper @S1.json
index 0d863dbccf..0efe00c727 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper @S1.json
@@ -41,7 +41,7 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper_other @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper_other @S1.json
index 84a6c7895b..873af639ce 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper_other @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper_other @S1.json
@@ -41,7 +41,7 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_other @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_other @S1.json
index 8966450832..1bdc487991 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_other @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_other @S1.json
@@ -41,7 +41,7 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
diff --git a/resources/profiles/FlyingBear/filament/fdm_filament_pla.json b/resources/profiles/FlyingBear/filament/fdm_filament_pla.json
index f1fe0ff99b..3855f25b66 100644
--- a/resources/profiles/FlyingBear/filament/fdm_filament_pla.json
+++ b/resources/profiles/FlyingBear/filament/fdm_filament_pla.json
@@ -41,7 +41,7 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
diff --git a/resources/profiles/FlyingBear/filament/fdm_filament_pla_Hyper.json b/resources/profiles/FlyingBear/filament/fdm_filament_pla_Hyper.json
index 4a3150818a..05c348ce5e 100644
--- a/resources/profiles/FlyingBear/filament/fdm_filament_pla_Hyper.json
+++ b/resources/profiles/FlyingBear/filament/fdm_filament_pla_Hyper.json
@@ -41,7 +41,7 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
diff --git a/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json b/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json
index e8452b5c24..ffc1a0bbe7 100644
--- a/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json
+++ b/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json
@@ -207,6 +207,6 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
}
diff --git a/resources/profiles/FlyingBear/machine/fdm_klipper_common.json b/resources/profiles/FlyingBear/machine/fdm_klipper_common.json
index 7f2590d8d3..dba7278dd8 100644
--- a/resources/profiles/FlyingBear/machine/fdm_klipper_common.json
+++ b/resources/profiles/FlyingBear/machine/fdm_klipper_common.json
@@ -112,7 +112,7 @@
"0"
],
"machine_pause_gcode": "PAUSE",
- "machine_start_gcode": ";V1.1\n\nM140 S[bed_temperature_initial_layer_single] \nM104 S135\nG28\nG4 P200\nZ_TILT_ADJUST\nG90\nG1 X150 Y150 F3000\nG28 Z\nG1 X50 Y-4 F2500\nM109 S[nozzle_temperature_initial_layer]\nM190 S[bed_temperature_initial_layer_single] \nPRINT_START",
+ "machine_start_gcode": ";R3_V1.1.0-20241115\n\nM140 S[bed_temperature_initial_layer_single] \nM104 S135\nG28\nG4 P200\nM190 S[bed_temperature_initial_layer_single] \nZ_TILT_ADJUST\nG90\nG1 X150 Y150 F3000\nG28 Z\nG1 X50 Y-4 F2500\nM109 S[nozzle_temperature_initial_layer]\nM190 S[bed_temperature_initial_layer_single] \nPRINT_START",
"max_layer_height": [
"0.28"
],
diff --git a/resources/profiles/FlyingBear/machine/fdm_machine_common.json b/resources/profiles/FlyingBear/machine/fdm_machine_common.json
index e11e4e47e0..e6119fa451 100644
--- a/resources/profiles/FlyingBear/machine/fdm_machine_common.json
+++ b/resources/profiles/FlyingBear/machine/fdm_machine_common.json
@@ -113,7 +113,7 @@
"0"
],
"machine_pause_gcode": "PAUSE",
- "machine_start_gcode": ";V1.1\n\nM140 S[bed_temperature_initial_layer_single] \nM104 S135\nG28\nG4 P200\nZ_TILT_ADJUST\nG90\nG1 X150 Y150 F3000\nG28 Z\nG1 X50 Y-4 F2500\nM109 S[nozzle_temperature_initial_layer]\nM190 S[bed_temperature_initial_layer_single] \nPRINT_START",
+ "machine_start_gcode": ";R3_V1.1.0-20241115\n\nM140 S[bed_temperature_initial_layer_single] \nM104 S135\nG28\nG4 P200\nM190 S[bed_temperature_initial_layer_single] \nZ_TILT_ADJUST\nG90\nG1 X150 Y150 F3000\nG28 Z\nG1 X50 Y-4 F2500\nM109 S[nozzle_temperature_initial_layer]\nM190 S[bed_temperature_initial_layer_single] \nPRINT_START",
"max_layer_height": [
"0.28"
],
@@ -201,6 +201,6 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
}
diff --git a/resources/profiles/FlyingBear/process/0.08mm Extra Fine @FlyingBear Reborn3.json b/resources/profiles/FlyingBear/process/0.08mm Extra Fine @FlyingBear Reborn3.json
index 39001ee125..124619ba7f 100644
--- a/resources/profiles/FlyingBear/process/0.08mm Extra Fine @FlyingBear Reborn3.json
+++ b/resources/profiles/FlyingBear/process/0.08mm Extra Fine @FlyingBear Reborn3.json
@@ -5,7 +5,8 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common",
-
+
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "7",
"overhang_1_4_speed": "60",
"overhang_2_4_speed": "30",
diff --git a/resources/profiles/FlyingBear/process/0.12mm Fine @FlyingBear Reborn3.json b/resources/profiles/FlyingBear/process/0.12mm Fine @FlyingBear Reborn3.json
index 1000d06175..f725af6340 100644
--- a/resources/profiles/FlyingBear/process/0.12mm Fine @FlyingBear Reborn3.json
+++ b/resources/profiles/FlyingBear/process/0.12mm Fine @FlyingBear Reborn3.json
@@ -5,7 +5,8 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common",
-
+
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "5",
"overhang_1_4_speed": "50",
"overhang_2_4_speed": "30",
diff --git a/resources/profiles/FlyingBear/process/0.16mm Optimal @FlyingBear Reborn3.json b/resources/profiles/FlyingBear/process/0.16mm Optimal @FlyingBear Reborn3.json
index f24fa3ca22..a5d9abd3a5 100644
--- a/resources/profiles/FlyingBear/process/0.16mm Optimal @FlyingBear Reborn3.json
+++ b/resources/profiles/FlyingBear/process/0.16mm Optimal @FlyingBear Reborn3.json
@@ -5,7 +5,8 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common",
-
+
+ "inner_wall_acceleration": "3000",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"top_shell_layers": "6",
diff --git a/resources/profiles/FlyingBear/process/S1/0.08mm Extra Fine @FlyingBear S1.json b/resources/profiles/FlyingBear/process/S1/0.08mm Extra Fine @FlyingBear S1.json
index 8fae3c93c6..e155b9a092 100644
--- a/resources/profiles/FlyingBear/process/S1/0.08mm Extra Fine @FlyingBear S1.json
+++ b/resources/profiles/FlyingBear/process/S1/0.08mm Extra Fine @FlyingBear S1.json
@@ -6,7 +6,8 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common_S1",
-
+
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "7",
"overhang_1_4_speed": "50",
"overhang_2_4_speed": "30",
diff --git a/resources/profiles/FlyingBear/process/S1/0.12mm Fine @FlyingBear S1.json b/resources/profiles/FlyingBear/process/S1/0.12mm Fine @FlyingBear S1.json
index ca70860ca1..8b72568142 100644
--- a/resources/profiles/FlyingBear/process/S1/0.12mm Fine @FlyingBear S1.json
+++ b/resources/profiles/FlyingBear/process/S1/0.12mm Fine @FlyingBear S1.json
@@ -6,6 +6,7 @@
"instantiation": "true",
"inherits": "fdm_process_common_S1",
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "5",
"overhang_1_4_speed": "50",
"overhang_2_4_speed": "30",
diff --git a/resources/profiles/FlyingBear/process/S1/0.16mm Optimal @FlyingBear S1.json b/resources/profiles/FlyingBear/process/S1/0.16mm Optimal @FlyingBear S1.json
index d19bf46834..4e8e277710 100644
--- a/resources/profiles/FlyingBear/process/S1/0.16mm Optimal @FlyingBear S1.json
+++ b/resources/profiles/FlyingBear/process/S1/0.16mm Optimal @FlyingBear S1.json
@@ -5,7 +5,8 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common_S1",
-
+
+ "inner_wall_acceleration": "3000",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"top_shell_layers": "6",
diff --git a/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json b/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json
index 0e5c4be0a9..b1ac2c11c4 100644
--- a/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json
+++ b/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json
@@ -24,7 +24,7 @@
"default_jerk": "0",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
- "detect_thin_wall": "0",
+ "detect_thin_wall": "1",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "0",
@@ -123,6 +123,7 @@
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "0",
+ "slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_filament": "1",
@@ -130,7 +131,7 @@
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
- "sparse_infill_pattern": "crosshatch",
+ "sparse_infill_pattern": "grid",
"spiral_mode": "0",
"staggered_inner_seams": "0",
diff --git a/resources/profiles/FlyingBear/process/fdm_process_common.json b/resources/profiles/FlyingBear/process/fdm_process_common.json
index 656bbe92ed..43b5ade20d 100644
--- a/resources/profiles/FlyingBear/process/fdm_process_common.json
+++ b/resources/profiles/FlyingBear/process/fdm_process_common.json
@@ -24,7 +24,7 @@
"default_jerk": "0",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
- "detect_thin_wall": "0",
+ "detect_thin_wall": "1",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "0",
@@ -123,6 +123,7 @@
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "0",
+ "slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_filament": "1",
@@ -130,7 +131,7 @@
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
- "sparse_infill_pattern": "crosshatch",
+ "sparse_infill_pattern": "grid",
"spiral_mode": "0",
"staggered_inner_seams": "0",
diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json b/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json
index 1dabc7caff..50338fa195 100644
--- a/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json
+++ b/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json
@@ -15,8 +15,11 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "1"
+ ],
"pressure_advance": [
- "0.084"
+ "0.032"
],
"compatible_printers": [
"InfiMech TX 0.4 nozzle"
diff --git a/resources/profiles/InfiMech/filament/Other PLA.json b/resources/profiles/InfiMech/filament/Other PLA.json
index d27fcad164..c6c895475d 100644
--- a/resources/profiles/InfiMech/filament/Other PLA.json
+++ b/resources/profiles/InfiMech/filament/Other PLA.json
@@ -15,8 +15,11 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "1"
+ ],
"pressure_advance": [
- "0.084"
+ "0.032"
],
"compatible_printers": [
"InfiMech TX 0.4 nozzle"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pla.json b/resources/profiles/InfiMech/filament/fdm_filament_pla.json
index d93d3b72e6..dd528dfdeb 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pla.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pla.json
@@ -41,7 +41,7 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper.json b/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper.json
index 97c8a80fde..7fb27e2280 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper.json
@@ -41,7 +41,7 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper_other.json b/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper_other.json
index c29c200aae..54ed13cd09 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper_other.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper_other.json
@@ -41,7 +41,7 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pla_other.json b/resources/profiles/InfiMech/filament/fdm_filament_pla_other.json
index 075d9df687..35c5da9175 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pla_other.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pla_other.json
@@ -41,7 +41,7 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
diff --git a/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json b/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json
index 2d1e2aaa55..3cd0c7ec03 100644
--- a/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json
+++ b/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json
@@ -204,7 +204,7 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
diff --git a/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json b/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json
index 31eedc682c..eb272f991e 100644
--- a/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json
+++ b/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json
@@ -201,6 +201,6 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
}
diff --git a/resources/profiles/InfiMech/machine/fdm_klipper_common.json b/resources/profiles/InfiMech/machine/fdm_klipper_common.json
index 23d50fef1e..9d09be715d 100644
--- a/resources/profiles/InfiMech/machine/fdm_klipper_common.json
+++ b/resources/profiles/InfiMech/machine/fdm_klipper_common.json
@@ -204,7 +204,7 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
diff --git a/resources/profiles/InfiMech/machine/fdm_machine_common.json b/resources/profiles/InfiMech/machine/fdm_machine_common.json
index 00dca16a19..ca2e420340 100644
--- a/resources/profiles/InfiMech/machine/fdm_machine_common.json
+++ b/resources/profiles/InfiMech/machine/fdm_machine_common.json
@@ -201,6 +201,6 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
}
diff --git a/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json b/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json
index 177a5918d4..e0ebf59dce 100644
--- a/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json
+++ b/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json
@@ -23,7 +23,7 @@
"default_jerk": "0",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
- "detect_thin_wall": "0",
+ "detect_thin_wall": "1",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "0",
@@ -122,6 +122,7 @@
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "0",
+ "slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_filament": "1",
@@ -129,7 +130,7 @@
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
- "sparse_infill_pattern": "crosshatch",
+ "sparse_infill_pattern": "grid",
"spiral_mode": "0",
"staggered_inner_seams": "0",
diff --git a/resources/profiles/InfiMech/process/fdm_process_common.json b/resources/profiles/InfiMech/process/fdm_process_common.json
index f82c00298c..40e0dcede3 100644
--- a/resources/profiles/InfiMech/process/fdm_process_common.json
+++ b/resources/profiles/InfiMech/process/fdm_process_common.json
@@ -23,7 +23,7 @@
"default_jerk": "0",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
- "detect_thin_wall": "0",
+ "detect_thin_wall": "1",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "0",
@@ -122,6 +122,7 @@
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "0",
+ "slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_filament": "1",
@@ -129,7 +130,7 @@
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
- "sparse_infill_pattern": "crosshatch",
+ "sparse_infill_pattern": "grid",
"spiral_mode": "0",
"staggered_inner_seams": "0",
diff --git a/src/libslic3r/Algorithm/LineSplit.cpp b/src/libslic3r/Algorithm/LineSplit.cpp
index c532e08349..f63033c026 100644
--- a/src/libslic3r/Algorithm/LineSplit.cpp
+++ b/src/libslic3r/Algorithm/LineSplit.cpp
@@ -264,7 +264,7 @@ SplittedLine do_split_line(const ClipperZUtils::ZPath& path, const ExPolygons& c
}
for (const auto segment : node) {
for (const ClipperZUtils::ZPoint& sp : *segment) {
- assert(!is_clip(sp.z()));
+ assert(!is_clip(sp));
result.emplace_back(to_point(sp), true, sp.z());
}
result.back().clipped = false; // Mark the end of the clipped line
diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp
index f6c11632aa..29769752da 100644
--- a/src/libslic3r/GCode.cpp
+++ b/src/libslic3r/GCode.cpp
@@ -1792,6 +1792,7 @@ enum BambuBedType {
bbtEngineeringPlate = 2,
bbtHighTemperaturePlate = 3,
bbtTexturedPEIPlate = 4,
+ bbtSuperTackPlate = 5,
};
static BambuBedType to_bambu_bed_type(BedType type)
@@ -1807,6 +1808,8 @@ static BambuBedType to_bambu_bed_type(BedType type)
bambu_bed_type = bbtTexturedPEIPlate;
else if (type == btPCT)
bambu_bed_type = bbtCoolPlate;
+ else if (type == btSuperTack)
+ bambu_bed_type = bbtSuperTackPlate;
return bambu_bed_type;
}
diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp
index fe8ff61018..d1e6d9b3bf 100644
--- a/src/libslic3r/Model.cpp
+++ b/src/libslic3r/Model.cpp
@@ -2785,7 +2785,7 @@ std::vector ModelVolume::get_extruders_from_multi_material_painting() co
if (!this->is_mm_painted())
return {};
- assert(static_cast(TriangleStateType::Extruder1) - 1 == 0);
+ assert(static_cast(EnforcerBlockerType::Extruder1) - 1 == 0);
const TriangleSelector::TriangleSplittingData &data = this->mmu_segmentation_facets.get_data();
std::vector extruders;
diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
index 30c9bc230f..4eb5c5e949 100644
--- a/src/libslic3r/Preset.cpp
+++ b/src/libslic3r/Preset.cpp
@@ -823,7 +823,7 @@ static std::vector s_Preset_filament_options {
"filament_flow_ratio", "filament_density", "filament_cost", "filament_minimal_purge_on_wipe_tower",
"nozzle_temperature", "nozzle_temperature_initial_layer",
// BBS
- "cool_plate_temp", "textured_cool_plate_temp", "eng_plate_temp", "hot_plate_temp", "textured_plate_temp", "cool_plate_temp_initial_layer", "textured_cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", "hot_plate_temp_initial_layer","textured_plate_temp_initial_layer",
+ "cool_plate_temp", "textured_cool_plate_temp", "eng_plate_temp", "hot_plate_temp", "textured_plate_temp", "cool_plate_temp_initial_layer", "textured_cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", "hot_plate_temp_initial_layer", "textured_plate_temp_initial_layer", "supertack_plate_temp_initial_layer", "supertack_plate_temp",
// "bed_type",
//BBS:temperature_vitrification
"temperature_vitrification", "reduce_fan_stop_start_freq","dont_slow_down_outer_wall", "slow_down_for_layer_cooling", "fan_min_speed",
diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp
index c07eaa70ac..e825498bf6 100644
--- a/src/libslic3r/Print.cpp
+++ b/src/libslic3r/Print.cpp
@@ -129,6 +129,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
"sparse_infill_acceleration",
"internal_solid_infill_acceleration",
// BBS
+ "supertack_plate_temp_initial_layer",
"cool_plate_temp_initial_layer",
"textured_cool_plate_temp_initial_layer",
"eng_plate_temp_initial_layer",
@@ -270,6 +271,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|| opt_key == "gcode_flavor"
|| opt_key == "single_extruder_multi_material"
|| opt_key == "nozzle_temperature"
+ // BBS
+ || opt_key == "supertack_plate_temp"
|| opt_key == "cool_plate_temp"
|| opt_key == "textured_cool_plate_temp"
|| opt_key == "eng_plate_temp"
diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp
index d7812e6b42..ac992d1ef8 100644
--- a/src/libslic3r/PrintConfig.cpp
+++ b/src/libslic3r/PrintConfig.cpp
@@ -350,6 +350,7 @@ CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(OverhangFanThreshold)
// BBS
static const t_config_enum_values s_keys_map_BedType = {
{ "Default Plate", btDefault },
+ { "Supertack Plate", btSuperTack },
{ "Cool Plate", btPC },
{ "Engineering Plate", btEP },
{ "High Temp Plate", btPEI },
@@ -657,6 +658,16 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionFloatOrPercent(0., false));
// BBS
+ def = this->add("supertack_plate_temp", coInts);
+ def->label = L("Other layers");
+ def->tooltip = L("Bed temperature for layers except the initial one. "
+ "Value 0 means the filament does not support to print on the Cool Plate");
+ def->sidetext = "°C";
+ def->full_label = L("Bed temperature");
+ def->min = 0;
+ def->max = 120;
+ def->set_default_value(new ConfigOptionInts{35});
+
def = this->add("cool_plate_temp", coInts);
def->label = L("Other layers");
def->tooltip = L("Bed temperature for layers except the initial one. "
@@ -707,6 +718,16 @@ void PrintConfigDef::init_fff_params()
def->max = 300;
def->set_default_value(new ConfigOptionInts{45});
+ def = this->add("supertack_plate_temp_initial_layer", coInts);
+ def->label = L("Initial layer");
+ def->full_label = L("Initial layer bed temperature");
+ def->tooltip = L("Bed temperature of the initial layer. "
+ "Value 0 means the filament does not support to print on the Bambu Cool Plate SuperTack");
+ def->sidetext = "°C";
+ def->min = 0;
+ def->max = 120;
+ def->set_default_value(new ConfigOptionInts{ 35 });
+
def = this->add("cool_plate_temp_initial_layer", coInts);
def->label = L("Initial layer");
def->full_label = L("Initial layer bed temperature");
@@ -762,12 +783,14 @@ void PrintConfigDef::init_fff_params()
def->mode = comSimple;
def->enum_keys_map = &s_keys_map_BedType;
// Orca: make sure the order of the values is the same as the BedType enum
+ def->enum_values.emplace_back("Supertack Plate");
def->enum_values.emplace_back("Cool Plate");
def->enum_values.emplace_back("Engineering Plate");
def->enum_values.emplace_back("High Temp Plate");
def->enum_values.emplace_back("Textured PEI Plate");
def->enum_values.emplace_back("Textured Cool Plate");
- def->enum_labels.emplace_back(L("Smooth Cool Plate"));
+ def->enum_labels.emplace_back(L("Bambu Cool Plate SuperTack"));
+ def->enum_labels.emplace_back(L("Smooth Cool Plate / PLA Plate"));
def->enum_labels.emplace_back(L("Engineering Plate"));
def->enum_labels.emplace_back(L("Smooth High Temp Plate"));
def->enum_labels.emplace_back(L("Textured PEI Plate"));
@@ -3757,7 +3780,7 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionFloats { 10. });
def = this->add("z_hop", coFloats);
- def->label = L("Z hop when retract");
+ def->label = L("Z-hop height");
def->tooltip = L("Whenever the retraction is done, the nozzle is lifted a little to create clearance between nozzle and the print. "
"It prevents nozzle from hitting the print when travel move. "
"Using spiral line to lift z can prevent stringing");
@@ -3785,7 +3808,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("z_hop_types", coEnums);
- def->label = L("Z hop type");
+ def->label = L("Z-hop type");
def->tooltip = L("Z hop type");
def->enum_keys_map = &ConfigOptionEnum::get_enum_values();
def->enum_values.push_back("Auto Lift");
@@ -5440,9 +5463,9 @@ void PrintConfigDef::init_extruder_option_keys()
"retract_lift_above",
"retract_lift_below",
"retract_lift_enforce",
+ "retract_on_top_layer",
"retract_restart_extra",
"retract_when_changing_layer",
- "retract_on_top_layer",
"retraction_distances_when_cut",
"retraction_length",
"retraction_minimum_travel",
diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp
index 18f007a40a..ee522dab0d 100644
--- a/src/libslic3r/PrintConfig.hpp
+++ b/src/libslic3r/PrintConfig.hpp
@@ -254,6 +254,7 @@ enum OverhangFanThreshold {
// BBS
enum BedType {
btDefault = 0,
+ btSuperTack,
btPC,
btEP,
btPEI,
@@ -322,6 +323,9 @@ static std::string bed_type_to_gcode_string(const BedType type)
std::string type_str;
switch (type) {
+ case btSuperTack:
+ type_str = "supertack_plate";
+ break;
case btPC:
type_str = "cool_plate";
break;
@@ -347,6 +351,9 @@ static std::string bed_type_to_gcode_string(const BedType type)
static std::string get_bed_temp_key(const BedType type)
{
+ if (type == btSuperTack)
+ return "supertack_plate_temp";
+
if (type == btPC)
return "cool_plate_temp";
@@ -367,6 +374,9 @@ static std::string get_bed_temp_key(const BedType type)
static std::string get_bed_temp_1st_layer_key(const BedType type)
{
+ if (type == btSuperTack)
+ return "supertack_plate_temp_initial_layer";
+
if (type == btPC)
return "cool_plate_temp_initial_layer";
@@ -1183,9 +1193,11 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
((ConfigOptionEnum, curr_bed_type))
((ConfigOptionInts, cool_plate_temp))
((ConfigOptionInts, textured_cool_plate_temp))
+ ((ConfigOptionInts, supertack_plate_temp))
((ConfigOptionInts, eng_plate_temp))
((ConfigOptionInts, hot_plate_temp)) // hot is short for high temperature
((ConfigOptionInts, textured_plate_temp))
+ ((ConfigOptionInts, supertack_plate_temp_initial_layer))
((ConfigOptionInts, cool_plate_temp_initial_layer))
((ConfigOptionInts, textured_cool_plate_temp_initial_layer))
((ConfigOptionInts, eng_plate_temp_initial_layer))
diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp
index db8b4856a5..1f052706c9 100644
--- a/src/slic3r/GUI/PartPlate.cpp
+++ b/src/slic3r/GUI/PartPlate.cpp
@@ -5499,7 +5499,9 @@ void PartPlateList::BedTextureInfo::reset()
void PartPlateList::init_bed_type_info()
{
BedTextureInfo::TexturePart pct_part_left(10, 130, 10, 110, "orca_bed_pct_left.svg");
- BedTextureInfo::TexturePart pc_part1(10, 130, 10, 110, "bbl_bed_pc_left.svg");
+ BedTextureInfo::TexturePart st_part1(9, 70, 12.5, 170, "bbl_bed_st_left.svg");
+ BedTextureInfo::TexturePart st_part2(74, -10, 148, 12, "bbl_bed_st_bottom.svg");
+ BedTextureInfo::TexturePart pc_part1(10, 130, 10, 110, "bbl_bed_pc_left.svg");
BedTextureInfo::TexturePart pc_part2(74, -10, 148, 12, "bbl_bed_pc_bottom.svg");
BedTextureInfo::TexturePart ep_part1(7.5, 90, 12.5, 150, "bbl_bed_ep_left.svg");
BedTextureInfo::TexturePart ep_part2(74, -10, 148, 12, "bbl_bed_ep_bottom.svg");
@@ -5511,6 +5513,8 @@ void PartPlateList::init_bed_type_info()
bed_texture_info[i].reset();
bed_texture_info[i].parts.clear();
}
+ bed_texture_info[btSuperTack].parts.push_back(st_part1);
+ bed_texture_info[btSuperTack].parts.push_back(st_part2);
bed_texture_info[btPC].parts.push_back(pc_part1);
bed_texture_info[btPC].parts.push_back(pc_part2);
bed_texture_info[btPCT].parts.push_back(pct_part_left);
diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
index 05b741bcb5..9ec397be77 100644
--- a/src/slic3r/GUI/Tab.cpp
+++ b/src/slic3r/GUI/Tab.cpp
@@ -2123,19 +2123,19 @@ void TabPrint::build()
optgroup->append_single_option_line("detect_thin_wall");
optgroup = page->new_optgroup(L("Top/bottom shells"), L"param_shell");
- optgroup->append_single_option_line("top_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
optgroup->append_single_option_line("top_shell_layers");
optgroup->append_single_option_line("top_shell_thickness");
- optgroup->append_single_option_line("bottom_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
+ optgroup->append_single_option_line("top_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
optgroup->append_single_option_line("bottom_shell_layers");
optgroup->append_single_option_line("bottom_shell_thickness");
+ optgroup->append_single_option_line("bottom_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
optgroup->append_single_option_line("top_bottom_infill_wall_overlap");
optgroup = page->new_optgroup(L("Infill"), L"param_infill");
optgroup->append_single_option_line("sparse_infill_density");
optgroup->append_single_option_line("sparse_infill_pattern", "fill-patterns#infill types and their properties of sparse");
- optgroup->append_single_option_line("infill_anchor");
optgroup->append_single_option_line("infill_anchor_max");
+ optgroup->append_single_option_line("infill_anchor");
optgroup->append_single_option_line("internal_solid_infill_pattern");
optgroup->append_single_option_line("gap_fill_target");
optgroup->append_single_option_line("filter_out_gap_fill");
@@ -2320,8 +2320,8 @@ void TabPrint::build()
page = add_options_page(L("Others"), "custom-gcode_other"); // ORCA: icon only visible on placeholders
optgroup = page->new_optgroup(L("Skirt"), L"param_skirt");
- optgroup->append_single_option_line("skirt_type");
optgroup->append_single_option_line("skirt_loops");
+ optgroup->append_single_option_line("skirt_type");
optgroup->append_single_option_line("min_skirt_length");
optgroup->append_single_option_line("skirt_distance");
optgroup->append_single_option_line("skirt_start_angle");
@@ -3335,7 +3335,12 @@ void TabFilament::build()
optgroup->append_line(line);
optgroup = page->new_optgroup(L("Bed temperature"), L"param_bed_temp");
- line = { L("Cool plate"), L("Bed temperature when cool plate is installed. Value 0 means the filament does not support to print on the Cool Plate") };
+ line = {L("Bambu Cool Plate SuperTack"), L("Bed temperature when cool plate is installed. Value 0 means the filament does not support to print on the Bambu Cool Plate SuperTack")};
+ line.append_option(optgroup->get_option("supertack_plate_temp_initial_layer"));
+ line.append_option(optgroup->get_option("supertack_plate_temp"));
+ optgroup->append_line(line);
+
+ line = { L("Cool Plate / PLA Plate"), L("Bed temperature when cool plate is installed. Value 0 means the filament does not support to print on the Cool Plate") };
line.append_option(optgroup->get_option("cool_plate_temp_initial_layer"));
line.append_option(optgroup->get_option("cool_plate_temp"));
optgroup->append_line(line);
@@ -3625,6 +3630,12 @@ void TabFilament::toggle_options()
bool is_pellet_printer = cfg.opt_bool("pellet_modded_printer");
toggle_line("pellet_flow_coefficient", is_pellet_printer);
toggle_line("filament_diameter", !is_pellet_printer);
+
+ bool support_chamber_temp_control = this->m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_chamber_temp_control");
+ toggle_line("chamber_temperatures", support_chamber_temp_control);
+
+ for (auto el : {"supertack_plate_temp", "supertack_plate_temp_initial_layer", "cool_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp", "eng_plate_temp_initial_layer", "textured_plate_temp", "textured_plate_temp_initial_layer"})
+ toggle_line(el, is_BBL_printer);
}
if (m_active_page->title() == L("Setting Overrides"))
update_filament_overrides_page(&cfg);
@@ -4322,9 +4333,6 @@ if (is_marlin_flavor)
optgroup = page->new_optgroup(L("Retraction"), L"param_retraction");
optgroup->append_single_option_line("retraction_length", "", extruder_idx);
optgroup->append_single_option_line("retract_restart_extra", "", extruder_idx);
- optgroup->append_single_option_line("z_hop", "", extruder_idx);
- optgroup->append_single_option_line("z_hop_types", "", extruder_idx);
- optgroup->append_single_option_line("travel_slope", "", extruder_idx);
optgroup->append_single_option_line("retraction_speed", "", extruder_idx);
optgroup->append_single_option_line("deretraction_speed", "", extruder_idx);
optgroup->append_single_option_line("retraction_minimum_travel", "", extruder_idx);
@@ -4334,10 +4342,13 @@ if (is_marlin_flavor)
optgroup->append_single_option_line("wipe_distance", "", extruder_idx);
optgroup->append_single_option_line("retract_before_wipe", "", extruder_idx);
- optgroup = page->new_optgroup(L("Lift Z Enforcement"), L"param_extruder_lift_enforcement");
+ optgroup = page->new_optgroup(L("Z-Hop"), L"param_extruder_lift_enforcement");
+ optgroup->append_single_option_line("retract_lift_enforce", "", extruder_idx);
+ optgroup->append_single_option_line("z_hop_types", "", extruder_idx);
+ optgroup->append_single_option_line("z_hop", "", extruder_idx);
+ optgroup->append_single_option_line("travel_slope", "", extruder_idx);
optgroup->append_single_option_line("retract_lift_above", "", extruder_idx);
optgroup->append_single_option_line("retract_lift_below", "", extruder_idx);
- optgroup->append_single_option_line("retract_lift_enforce", "", extruder_idx);
optgroup = page->new_optgroup(L("Retraction when switching material"), L"param_retraction_material_change");
optgroup->append_single_option_line("retract_length_toolchange", "", extruder_idx);
@@ -5104,8 +5115,14 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/,
// Orca: update presets for the selected printer
if (m_type == Preset::TYPE_PRINTER && wxGetApp().app_config->get_bool("remember_printer_config")) {
- m_preset_bundle->update_selections(*wxGetApp().app_config);
- wxGetApp().plater()->sidebar().on_filaments_change(m_preset_bundle->filament_presets.size());
+ m_preset_bundle->update_selections(*wxGetApp().app_config);
+ int extruders_count = m_preset_bundle->printers.get_edited_preset().config.opt("nozzle_diameter")->values.size();
+ if (extruders_count > 1) {
+ // multi tool
+ wxGetApp().plater()->sidebar().on_filaments_change(extruders_count);
+ } else {
+ wxGetApp().plater()->sidebar().on_filaments_change(m_preset_bundle->filament_presets.size());
+ }
}
load_current_preset();
@@ -6087,8 +6104,9 @@ void Page::update_visibility(ConfigOptionMode mode, bool update_contolls_visibil
#ifdef __WXMSW__
if (!m_show) return;
// BBS: fix field control position
- wxTheApp->CallAfter([this]() {
- for (auto group : m_optgroups) {
+ auto groups = this->m_optgroups;
+ wxTheApp->CallAfter([groups]() {
+ for (auto group : groups) {
if (group->custom_ctrl) group->custom_ctrl->fixup_items_positions();
}
});
diff --git a/src/slic3r/GUI/UnsavedChangesDialog.cpp b/src/slic3r/GUI/UnsavedChangesDialog.cpp
index b47f3c0389..85b718d0b8 100644
--- a/src/slic3r/GUI/UnsavedChangesDialog.cpp
+++ b/src/slic3r/GUI/UnsavedChangesDialog.cpp
@@ -1664,17 +1664,19 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* pres
// process changes of extruders count
if (type == Preset::TYPE_PRINTER && old_pt == ptFFF &&
- old_config.opt("extruder_colour")->values.size() != new_config.opt("extruder_colour")->values.size()) {
+ old_config.opt("nozzle_diameter")->values.size() != new_config.opt("nozzle_diameter")->values.size()) {
wxString local_label = _L("Extruders count");
- wxString old_val = from_u8((boost::format("%1%") % old_config.opt("extruder_colour")->values.size()).str());
- wxString new_val = from_u8((boost::format("%1%") % new_config.opt("extruder_colour")->values.size()).str());
+ wxString old_val = from_u8((boost::format("%1%") % old_config.opt("nozzle_diameter")->values.size()).str());
+ wxString new_val = from_u8((boost::format("%1%") % new_config.opt("nozzle_diameter")->values.size()).str());
//BBS: the page "General" changed to "Basic information" instead
//m_tree->Append("extruders_count", type, _L("General"), _L("Capabilities"), local_label, old_val, new_val, category_icon_map.at("Basic information"));
//m_tree->Append("extruders_count", type, _L("General"), _L("Capabilities"), local_label, old_val, new_val, category_icon_map.at("General"));
- PresetItem pi = {type, "extruders_count", _L("General"), _L("Capabilities"), local_label, old_val, new_val};
- m_presetitems.push_back(pi);
+ if (old_val != new_val) {
+ PresetItem pi = {type, "extruders_count", _L("General"), _L("Capabilities"), local_label, old_val, new_val};
+ m_presetitems.push_back(pi);
+ }
}
for (const std::string& opt_key : dirty_options) {
@@ -1822,11 +1824,11 @@ FullCompareDialog::FullCompareDialog(const wxString& option_name, const wxString
static PresetCollection* get_preset_collection(Preset::Type type, PresetBundle* preset_bundle = nullptr) {
if (!preset_bundle)
preset_bundle = wxGetApp().preset_bundle;
- return type == Preset::Type::TYPE_PRINT ? &preset_bundle->prints :
- type == Preset::Type::TYPE_SLA_PRINT ? &preset_bundle->sla_prints :
+ return type == Preset::Type::TYPE_PRINTER ? &preset_bundle->printers :
type == Preset::Type::TYPE_FILAMENT ? &preset_bundle->filaments :
type == Preset::Type::TYPE_SLA_MATERIAL ? &preset_bundle->sla_materials :
- type == Preset::Type::TYPE_PRINTER ? &preset_bundle->printers :
+ type == Preset::Type::TYPE_PRINT ? &preset_bundle->prints :
+ type == Preset::Type::TYPE_SLA_PRINT ? &preset_bundle->sla_prints :
nullptr;
}
@@ -1842,7 +1844,7 @@ void DiffPresetDialog::create_presets_sizer()
{
m_presets_sizer = new wxBoxSizer(wxVERTICAL);
- for (auto new_type : { Preset::TYPE_PRINT, Preset::TYPE_SLA_PRINT, Preset::TYPE_FILAMENT, Preset::TYPE_SLA_MATERIAL, Preset::TYPE_PRINTER })
+ for (auto new_type : { Preset::TYPE_PRINTER, Preset::TYPE_FILAMENT, Preset::TYPE_SLA_MATERIAL, Preset::TYPE_PRINT, Preset::TYPE_SLA_PRINT })
{
const PresetCollection* collection = get_preset_collection(new_type);
wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL);