From a601e0878ca2a05695e1d372cd2b7fa3368ecedf Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 13 Feb 2019 14:09:37 +0100 Subject: [PATCH] Explicitly also check for Raft when checking for prime-tower=brim. [CURA-5864] --- cura/BuildVolume.py | 10 +++++++--- cura/Settings/ExtruderManager.py | 3 ++- resources/definitions/fdmprinter.def.json | 4 ++-- resources/setting_visibility/advanced.cfg | 1 + 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index ae7cdca12e..902f8192fc 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -746,7 +746,8 @@ class BuildVolume(SceneNode): break if prime_tower_collision: #Already found a collision. break - if ExtruderManager.getInstance().getResolveOrValue("prime_tower_brim_enable"): + if (ExtruderManager.getInstance().getResolveOrValue("prime_tower_brim_enable") and + ExtruderManager.getInstance().getResolveOrValue("adhesion_type") != 'raft'): prime_tower_areas[extruder_id][i_area] = prime_tower_area.getMinkowskiHull( Polygon.approximatedCircle(disallowed_border_size)) if not prime_tower_collision: @@ -788,7 +789,8 @@ class BuildVolume(SceneNode): prime_tower_x = prime_tower_x - machine_width / 2 #Offset by half machine_width and _depth to put the origin in the front-left. prime_tower_y = prime_tower_y + machine_depth / 2 - if ExtruderManager.getInstance().getResolveOrValue("prime_tower_brim_enable"): + if (ExtruderManager.getInstance().getResolveOrValue("prime_tower_brim_enable") and + ExtruderManager.getInstance().getResolveOrValue("adhesion_type") != 'raft'): brim_size = ( extruder.getProperty("brim_line_count", "value") * extruder.getProperty("skirt_brim_line_width", "value") / 100.0 * @@ -1036,7 +1038,9 @@ class BuildVolume(SceneNode): # We don't create an additional line for the extruder we're printing the skirt with. bed_adhesion_size -= skirt_brim_line_width * initial_layer_line_width_factor / 100.0 - elif adhesion_type == "brim" or self._global_container_stack.getProperty("prime_tower_brim_enable", "value"): + elif (adhesion_type == "brim" or + (self._global_container_stack.getProperty("prime_tower_brim_enable", "value") and + self._global_container_stack.getProperty("adhesion_type", "value") != 'raft')): brim_line_count = self._global_container_stack.getProperty("brim_line_count", "value") bed_adhesion_size = skirt_brim_line_width * brim_line_count * initial_layer_line_width_factor / 100.0 diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 6bce080763..1c40daf016 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -265,7 +265,8 @@ class ExtruderManager(QObject): # The platform adhesion extruder. Not used if using none. if (global_stack.getProperty("adhesion_type", "value") != "none" or - global_stack.getProperty("prime_tower_brim_enable", "value")): + global_stack.getProperty("prime_tower_brim_enable", "value") and + global_stack.getProperty("adhesion_type", "value") != 'raft'): extruder_str_nr = str(global_stack.getProperty("adhesion_extruder_nr", "value")) if extruder_str_nr == "-1": extruder_str_nr = self._application.getMachineManager().defaultExtruderPosition diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 11ca11b82e..e3661abaea 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -5274,7 +5274,7 @@ "unit": "mm", "enabled": "resolveOrValue('prime_tower_enable')", "default_value": 200, - "value": "machine_width - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or resolveOrValue('prime_tower_brim_enabled') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enable') else 0) - 1", + "value": "machine_width - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enable') else 0) - 1", "maximum_value": "machine_width / 2 if machine_center_is_zero else machine_width", "minimum_value": "resolveOrValue('prime_tower_size') - machine_width / 2 if machine_center_is_zero else resolveOrValue('prime_tower_size')", "settable_per_mesh": false, @@ -5288,7 +5288,7 @@ "unit": "mm", "enabled": "resolveOrValue('prime_tower_enable')", "default_value": 200, - "value": "machine_depth - prime_tower_size - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or resolveOrValue('prime_tower_brim_enabled') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enable') else 0) - 1", + "value": "machine_depth - prime_tower_size - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enable') else 0) - 1", "maximum_value": "machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')", "minimum_value": "machine_depth / -2 if machine_center_is_zero else 0", "settable_per_mesh": false, diff --git a/resources/setting_visibility/advanced.cfg b/resources/setting_visibility/advanced.cfg index 9cee353f0c..f26a67b3c1 100644 --- a/resources/setting_visibility/advanced.cfg +++ b/resources/setting_visibility/advanced.cfg @@ -124,6 +124,7 @@ brim_outside_only prime_tower_enable prime_tower_position_x prime_tower_position_y +prime_tower_brim_enable [meshfix]