Better handling of prime tower base with raft

CURA-10783
This commit is contained in:
Erwan MATHIEU 2023-10-13 14:40:49 +02:00
parent a91032f62e
commit acb0406e8e
2 changed files with 7 additions and 7 deletions

View file

@ -863,6 +863,7 @@ class BuildVolume(SceneNode):
prime_tower_brim_enable = self._global_container_stack.getProperty("prime_tower_brim_enable", "value") 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_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") 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"): 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. 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_x = -radius
delta_y = -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 radius += prime_tower_base_size
prime_tower_area = Polygon.approximatedCircle(radius, num_segments = 32) prime_tower_area = Polygon.approximatedCircle(radius, num_segments = 32)

View file

@ -6673,23 +6673,22 @@
}, },
"prime_tower_brim_enable": "prime_tower_brim_enable":
{ {
"value": "resolveOrValue('adhesion_type') in ('skirt', 'brim', 'raft')",
"label": "Prime Tower Base", "label": "Prime Tower Base",
"description": "Prime-towers might need the extra adhesion afforded by a brim or raft, even if the model doesn't.", "description": "Prime-towers might need the extra adhesion afforded by a brim or raft, even if the model doesn't.",
"type": "bool", "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, "default_value": false,
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false
}, },
"prime_tower_base_size": "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", "label": "Prime Tower Base Size",
"description": "The width of the prime tower base.", "description": "The width of the prime tower base.",
"type": "float", "type": "float",
"unit": "mm", "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')", "default_value": "resolveOrValue('brim_width')",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)",
@ -6703,7 +6702,7 @@
"description": "The height of the prime tower base.", "description": "The height of the prime tower base.",
"type": "float", "type": "float",
"unit": "mm", "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, "default_value": 0,
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "machine_height", "maximum_value": "machine_height",
@ -6715,7 +6714,7 @@
"label": "Prime Tower Base Curve Magnitude", "label": "Prime Tower Base Curve Magnitude",
"description": "The magnitude factor used for the curve of the prime tower foot.", "description": "The magnitude factor used for the curve of the prime tower foot.",
"type": "int", "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, "default_value": 4,
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "10", "maximum_value": "10",