From 6107a49627bed900e15992a77083def5fc863519 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 24 Nov 2023 15:32:24 +0100 Subject: [PATCH 1/4] Take nozzle-offset into account. Nozzle offsets can inflience the disallowed areas, so they should be taken into account for the prime-tower position. part of CURA-11379 --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 54ab8760c72..08c418bbe27 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6640,7 +6640,7 @@ "unit": "mm", "enabled": "resolveOrValue('prime_tower_enable')", "default_value": 200, - "value": "(resolveOrValue('machine_width') / 2 + resolveOrValue('prime_tower_size') / 2) if resolveOrValue('machine_shape') == 'elliptic' else (resolveOrValue('machine_width') - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_x'))), 1)) - (resolveOrValue('machine_width') / 2 if resolveOrValue('machine_center_is_zero') else 0)", + "value": "(resolveOrValue('machine_width') / 2 + resolveOrValue('prime_tower_size') / 2) if resolveOrValue('machine_shape') == 'elliptic' else (resolveOrValue('machine_width') - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('machine_nozzle_offset_x')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_x'))), 1)) - (resolveOrValue('machine_width') / 2 if resolveOrValue('machine_center_is_zero') else 0)", "maximum_value": "(machine_width / 2 if machine_center_is_zero else machine_width) - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0)", "minimum_value": "resolveOrValue('prime_tower_size') + (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - (machine_width / 2 if machine_center_is_zero else 0)", "settable_per_mesh": false, @@ -6654,7 +6654,7 @@ "unit": "mm", "enabled": "resolveOrValue('prime_tower_enable')", "default_value": 200, - "value": "machine_depth - prime_tower_size - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_y'))), 1) - (resolveOrValue('machine_depth') / 2 if resolveOrValue('machine_center_is_zero') else 0)", + "value": "machine_depth - prime_tower_size - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('machine_nozzle_offset_y')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_y'))), 1) - (resolveOrValue('machine_depth') / 2 if resolveOrValue('machine_center_is_zero') else 0)", "maximum_value": "(machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')) - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0)", "minimum_value": "(machine_depth / -2 if machine_center_is_zero else 0) + (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0)", "settable_per_mesh": false, From 2d04650c619a8e7a96cf8e3d6cee3969fa3532ab Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 24 Nov 2023 16:38:29 +0100 Subject: [PATCH 2/4] Fixed prime-tower for machines with explicit disallowed areas. These machines have disallowed areas (either 'machine_disallowed_areas' or 'nozzle_dissalowed_areas'), which can't at the moment be calculated with formula's (not without adding a feature at least, but we're currently in feature-freeze). part of CURA-11379 --- resources/definitions/Mark2_for_Ultimaker2.def.json | 1 + resources/definitions/dagoma_pro_430_dual.def.json | 3 ++- resources/definitions/deltacomb_dc20dual.def.json | 4 +++- resources/definitions/dxu.def.json | 1 + resources/definitions/ultimaker3.def.json | 1 + 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/resources/definitions/Mark2_for_Ultimaker2.def.json b/resources/definitions/Mark2_for_Ultimaker2.def.json index 5eda5ca6f29..7c7f8a36333 100644 --- a/resources/definitions/Mark2_for_Ultimaker2.def.json +++ b/resources/definitions/Mark2_for_Ultimaker2.def.json @@ -137,6 +137,7 @@ "machine_start_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"G21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T0 ;reset filament diameter\\nM200 D0 T1\\nG28 Z0; home all\\nG28 X0 Y0\\nG0 Z20 F2400 ;move the platform to 20mm\\nG92 E0\\nM190 S{material_bed_temperature_layer_0}\\nM109 T0 S{material_standby_temperature, 0}\\nM109 T1 S{material_print_temperature_layer_0, 1}\\nM104 T0 S{material_print_temperature_layer_0, 0}\\nT1 ; move to the 2th head\\nG0 Z20 F2400\\nG92 E-7.0 ;prime distance\\nG1 E0 F45 ;purge nozzle\\nG1 E-5.1 F1500 ; retract\\nG1 X90 Z0.01 F5000 ; move away from the prime poop\\nG1 X50 F9000\\nG0 Z20 F2400\\nT0 ; move to the first head\\nM104 T1 S{material_standby_temperature, 1}\\nG0 Z20 F2400\\nM104 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nG92 E-7.0\\nG1 E0 F45 ;purge nozzle\\nG1 X60 Z0.01 F5000 ; move away from the prime poop\\nG1 X20 F9000\\nM400 ;finish all moves\\nG92 E0\\n;end of startup sequence\\n\"" }, "machine_use_extruder_offset_to_offset_coords": { "default_value": false }, "machine_width": { "default_value": 223 }, + "prime_tower_position_y": { "value": "170" }, "retraction_amount": { "default_value": 5.1 }, "retraction_speed": { "default_value": 25 }, "speed_support": { "value": "speed_wall_0" }, diff --git a/resources/definitions/dagoma_pro_430_dual.def.json b/resources/definitions/dagoma_pro_430_dual.def.json index 6038ce9e576..df537809f83 100644 --- a/resources/definitions/dagoma_pro_430_dual.def.json +++ b/resources/definitions/dagoma_pro_430_dual.def.json @@ -55,6 +55,7 @@ [215, 160] ] ] - } + }, + "prime_tower_position_x": { "value": "350" } } } \ No newline at end of file diff --git a/resources/definitions/deltacomb_dc20dual.def.json b/resources/definitions/deltacomb_dc20dual.def.json index f90e40d5b4d..60a71276d2e 100644 --- a/resources/definitions/deltacomb_dc20dual.def.json +++ b/resources/definitions/deltacomb_dc20dual.def.json @@ -101,6 +101,8 @@ }, "machine_height": { "default_value": 250 }, "machine_name": { "default_value": "Deltacomb DC-20 DUAL" }, - "machine_width": { "default_value": 190 } + "machine_width": { "default_value": 190 }, + "prime_tower_position_x": { "value": "60" }, + "prime_tower_position_y": { "value": "60" } } } \ No newline at end of file diff --git a/resources/definitions/dxu.def.json b/resources/definitions/dxu.def.json index bb61db16867..a5d360d0110 100644 --- a/resources/definitions/dxu.def.json +++ b/resources/definitions/dxu.def.json @@ -131,6 +131,7 @@ "machine_width": { "default_value": 238 }, "material_adhesion_tendency": { "enabled": true }, "material_diameter": { "default_value": 1.75 }, + "prime_tower_position_x": { "value": "200" }, "retraction_amount": { "default_value": 6.5 }, "retraction_speed": { "default_value": 25 }, "speed_support": { "value": "speed_wall_0" }, diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 058b3dfa7ad..19df92c08d7 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -150,6 +150,7 @@ "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, "prime_tower_enable": { "default_value": true }, + "prime_tower_position_x": { "value": "185" }, "prime_tower_wipe_enabled": { "default_value": false }, "retraction_amount": { "value": "6.5" }, "retraction_hop": { "value": "2" }, From e7de8597c14044f0ab8b729b41b039aa391b0808 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 24 Nov 2023 16:56:26 +0100 Subject: [PATCH 3/4] Fix printer-linter warnings. done as part of CURA-11379 --- resources/definitions/Mark2_for_Ultimaker2.def.json | 1 - resources/definitions/dxu.def.json | 1 - 2 files changed, 2 deletions(-) diff --git a/resources/definitions/Mark2_for_Ultimaker2.def.json b/resources/definitions/Mark2_for_Ultimaker2.def.json index 7c7f8a36333..5913d681940 100644 --- a/resources/definitions/Mark2_for_Ultimaker2.def.json +++ b/resources/definitions/Mark2_for_Ultimaker2.def.json @@ -140,7 +140,6 @@ "prime_tower_position_y": { "value": "170" }, "retraction_amount": { "default_value": 5.1 }, "retraction_speed": { "default_value": 25 }, - "speed_support": { "value": "speed_wall_0" }, "speed_wall_x": { "value": "speed_wall" }, "switch_extruder_prime_speed": { diff --git a/resources/definitions/dxu.def.json b/resources/definitions/dxu.def.json index a5d360d0110..07f5dc1cb55 100644 --- a/resources/definitions/dxu.def.json +++ b/resources/definitions/dxu.def.json @@ -134,7 +134,6 @@ "prime_tower_position_x": { "value": "200" }, "retraction_amount": { "default_value": 6.5 }, "retraction_speed": { "default_value": 25 }, - "speed_support": { "value": "speed_wall_0" }, "speed_wall_x": { "value": "speed_wall" }, "switch_extruder_prime_speed": { From 969821008391fb2f2405456f36f334f7cc4cef90 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 24 Nov 2023 17:03:20 +0100 Subject: [PATCH 4/4] Fix more printer-linter warnings. done as part of CURA-11379 --- resources/definitions/Mark2_for_Ultimaker2.def.json | 1 - resources/definitions/dxu.def.json | 1 - 2 files changed, 2 deletions(-) diff --git a/resources/definitions/Mark2_for_Ultimaker2.def.json b/resources/definitions/Mark2_for_Ultimaker2.def.json index 5913d681940..a3c5f5e06b1 100644 --- a/resources/definitions/Mark2_for_Ultimaker2.def.json +++ b/resources/definitions/Mark2_for_Ultimaker2.def.json @@ -140,7 +140,6 @@ "prime_tower_position_y": { "value": "170" }, "retraction_amount": { "default_value": 5.1 }, "retraction_speed": { "default_value": 25 }, - "speed_wall_x": { "value": "speed_wall" }, "switch_extruder_prime_speed": { "enabled": false, diff --git a/resources/definitions/dxu.def.json b/resources/definitions/dxu.def.json index 07f5dc1cb55..ebe94ee169d 100644 --- a/resources/definitions/dxu.def.json +++ b/resources/definitions/dxu.def.json @@ -134,7 +134,6 @@ "prime_tower_position_x": { "value": "200" }, "retraction_amount": { "default_value": 6.5 }, "retraction_speed": { "default_value": 25 }, - "speed_wall_x": { "value": "speed_wall" }, "switch_extruder_prime_speed": { "enabled": false,