diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 6d95e645d4..2bfa654d4f 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -863,6 +863,7 @@ class BuildVolume(SceneNode): prime_tower_brim_enable = self._global_container_stack.getProperty("prime_tower_brim_enable", "value") prime_tower_base_size = self._global_container_stack.getProperty("prime_tower_base_size", "value") prime_tower_base_height = self._global_container_stack.getProperty("prime_tower_base_height", "value") + adhesion_type = self._global_container_stack.getProperty("adhesion_type", "value") if not self._global_container_stack.getProperty("machine_center_is_zero", "value"): prime_tower_x = prime_tower_x - machine_width / 2 #Offset by half machine_width and _depth to put the origin in the front-left. @@ -872,7 +873,7 @@ class BuildVolume(SceneNode): delta_x = -radius delta_y = -radius - if prime_tower_brim_enable and prime_tower_base_size > 0 and prime_tower_base_height > 0: + if prime_tower_base_size > 0 and ((prime_tower_brim_enable and prime_tower_base_height > 0) or adhesion_type == "raft"): radius += prime_tower_base_size prime_tower_area = Polygon.approximatedCircle(radius, num_segments = 32) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 924b264655..794dcd0239 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6673,23 +6673,22 @@ }, "prime_tower_brim_enable": { - "value": "resolveOrValue('adhesion_type') in ('skirt', 'brim', 'raft')", "label": "Prime Tower Base", "description": "Prime-towers might need the extra adhesion afforded by a brim or raft, even if the model doesn't.", "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') not in ('none', 'raft'))", + "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('adhesion_type') != 'raft'", "default_value": false, "settable_per_mesh": false, "settable_per_extruder": false }, "prime_tower_base_size": { - "value": "resolveOrValue('brim_width')", + "value": "resolveOrValue('raft_margin') if resolveOrValue('adhesion_type') == 'raft' else resolveOrValue('brim_width')", "label": "Prime Tower Base Size", "description": "The width of the prime tower base.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_brim_enable')", + "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": "resolveOrValue('brim_width')", "minimum_value": "0", "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", @@ -6703,7 +6702,7 @@ "description": "The height of the prime tower base.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_brim_enable')", + "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 0, "minimum_value": "0", "maximum_value": "machine_height", @@ -6715,7 +6714,7 @@ "label": "Prime Tower Base Curve Magnitude", "description": "The magnitude factor used for the curve of the prime tower foot.", "type": "int", - "enabled": "resolveOrValue('prime_tower_brim_enable')", + "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 4, "minimum_value": "0", "maximum_value": "10",