mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-09 07:56:22 -06:00
Create 'brim for prime tower only' option (see also backend PR). [CURA-5864]
This commit is contained in:
parent
481438d419
commit
f62e8b4bb2
4 changed files with 24 additions and 3 deletions
|
@ -785,6 +785,15 @@ 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_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
|
prime_tower_y = prime_tower_y + machine_depth / 2
|
||||||
|
|
||||||
|
if ExtruderManager.getInstance().getResolveOrValue("prime_tower_brim_enable"):
|
||||||
|
brim_size = (
|
||||||
|
extruder.getProperty("brim_line_count", "value") *
|
||||||
|
extruder.getProperty("skirt_brim_line_width", "value") / 100.0 *
|
||||||
|
extruder.getProperty("initial_layer_line_width_factor", "value")
|
||||||
|
)
|
||||||
|
prime_tower_x -= brim_size
|
||||||
|
prime_tower_y += brim_size
|
||||||
|
|
||||||
if self._global_container_stack.getProperty("prime_tower_circular", "value"):
|
if self._global_container_stack.getProperty("prime_tower_circular", "value"):
|
||||||
radius = prime_tower_size / 2
|
radius = prime_tower_size / 2
|
||||||
prime_tower_area = Polygon.approximatedCircle(radius)
|
prime_tower_area = Polygon.approximatedCircle(radius)
|
||||||
|
@ -1024,7 +1033,7 @@ class BuildVolume(SceneNode):
|
||||||
# We don't create an additional line for the extruder we're printing the skirt with.
|
# 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
|
bed_adhesion_size -= skirt_brim_line_width * initial_layer_line_width_factor / 100.0
|
||||||
|
|
||||||
elif adhesion_type == "brim":
|
elif adhesion_type == "brim" or self._global_container_stack.getProperty("prime_tower_brim_enable", "value"):
|
||||||
brim_line_count = self._global_container_stack.getProperty("brim_line_count", "value")
|
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
|
bed_adhesion_size = skirt_brim_line_width * brim_line_count * initial_layer_line_width_factor / 100.0
|
||||||
|
|
||||||
|
@ -1077,7 +1086,7 @@ class BuildVolume(SceneNode):
|
||||||
_raft_settings = ["adhesion_type", "raft_base_thickness", "raft_interface_thickness", "raft_surface_layers", "raft_surface_thickness", "raft_airgap", "layer_0_z_overlap"]
|
_raft_settings = ["adhesion_type", "raft_base_thickness", "raft_interface_thickness", "raft_surface_layers", "raft_surface_thickness", "raft_airgap", "layer_0_z_overlap"]
|
||||||
_extra_z_settings = ["retraction_hop_enabled", "retraction_hop"]
|
_extra_z_settings = ["retraction_hop_enabled", "retraction_hop"]
|
||||||
_prime_settings = ["extruder_prime_pos_x", "extruder_prime_pos_y", "extruder_prime_pos_z", "prime_blob_enable"]
|
_prime_settings = ["extruder_prime_pos_x", "extruder_prime_pos_y", "extruder_prime_pos_z", "prime_blob_enable"]
|
||||||
_tower_settings = ["prime_tower_enable", "prime_tower_circular", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y"]
|
_tower_settings = ["prime_tower_enable", "prime_tower_circular", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y", "prime_tower_brim_enable"]
|
||||||
_ooze_shield_settings = ["ooze_shield_enabled", "ooze_shield_dist"]
|
_ooze_shield_settings = ["ooze_shield_enabled", "ooze_shield_dist"]
|
||||||
_distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset", "support_enable", "travel_avoid_other_parts", "travel_avoid_supports"]
|
_distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset", "support_enable", "travel_avoid_other_parts", "travel_avoid_supports"]
|
||||||
_extruder_settings = ["support_enable", "support_bottom_enable", "support_roof_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "brim_line_count", "adhesion_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used.
|
_extruder_settings = ["support_enable", "support_bottom_enable", "support_roof_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "brim_line_count", "adhesion_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used.
|
||||||
|
|
|
@ -264,7 +264,8 @@ class ExtruderManager(QObject):
|
||||||
used_extruder_stack_ids.add(self.extruderIds[self.extruderValueWithDefault(str(global_stack.getProperty("support_roof_extruder_nr", "value")))])
|
used_extruder_stack_ids.add(self.extruderIds[self.extruderValueWithDefault(str(global_stack.getProperty("support_roof_extruder_nr", "value")))])
|
||||||
|
|
||||||
# The platform adhesion extruder. Not used if using none.
|
# The platform adhesion extruder. Not used if using none.
|
||||||
if global_stack.getProperty("adhesion_type", "value") != "none":
|
if (global_stack.getProperty("adhesion_type", "value") != "none" or
|
||||||
|
global_stack.getProperty("prime_tower_brim_enable", "value")):
|
||||||
extruder_str_nr = str(global_stack.getProperty("adhesion_extruder_nr", "value"))
|
extruder_str_nr = str(global_stack.getProperty("adhesion_extruder_nr", "value"))
|
||||||
if extruder_str_nr == "-1":
|
if extruder_str_nr == "-1":
|
||||||
extruder_str_nr = self._application.getMachineManager().defaultExtruderPosition
|
extruder_str_nr = self._application.getMachineManager().defaultExtruderPosition
|
||||||
|
|
|
@ -251,6 +251,7 @@ class SliceInfo(QObject, Extension):
|
||||||
|
|
||||||
# Prime tower settings
|
# Prime tower settings
|
||||||
print_settings["prime_tower_enable"] = global_stack.getProperty("prime_tower_enable", "value")
|
print_settings["prime_tower_enable"] = global_stack.getProperty("prime_tower_enable", "value")
|
||||||
|
print_settings["prime_tower_brim_enable"] = global_stack.getProperty("prime_tower_brim_enable", "value")
|
||||||
|
|
||||||
# Infill settings
|
# Infill settings
|
||||||
print_settings["infill_sparse_density"] = global_stack.getProperty("infill_sparse_density", "value")
|
print_settings["infill_sparse_density"] = global_stack.getProperty("infill_sparse_density", "value")
|
||||||
|
|
|
@ -5317,6 +5317,16 @@
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": true
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
|
"prime_tower_brim_enable":
|
||||||
|
{
|
||||||
|
"label": "Prime Tower Brim",
|
||||||
|
"description": "Prime-towers might need the extra adhesion afforded by a brim even if the model doesn't.",
|
||||||
|
"type": "bool",
|
||||||
|
"enabled": "resolveOrValue('prime_tower_enable')",
|
||||||
|
"default_value": false,
|
||||||
|
"settable_per_mesh": false,
|
||||||
|
"settable_per_extruder": false
|
||||||
|
},
|
||||||
"ooze_shield_enabled":
|
"ooze_shield_enabled":
|
||||||
{
|
{
|
||||||
"label": "Enable Ooze Shield",
|
"label": "Enable Ooze Shield",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue