prototyping tweakable XY supports;

option should be present now in advanced support menu.
Can't figure out what's going on atm; support should be moving but isn't
This commit is contained in:
slicer-builder 2016-03-19 22:30:02 -05:00 committed by bubnikv
parent f63c21f0f3
commit bb22f1dc8a
6 changed files with 19 additions and 3 deletions

View File

@ -523,6 +523,7 @@ sub build {
max_volumetric_extrusion_rate_slope_positive max_volumetric_extrusion_rate_slope_negative max_volumetric_extrusion_rate_slope_positive max_volumetric_extrusion_rate_slope_negative
perimeter_speed small_perimeter_speed external_perimeter_speed infill_speed perimeter_speed small_perimeter_speed external_perimeter_speed infill_speed
solid_infill_speed top_solid_infill_speed support_material_speed solid_infill_speed top_solid_infill_speed support_material_speed
support_material_xy_spacing
support_material_interface_speed bridge_speed gap_fill_speed support_material_interface_speed bridge_speed gap_fill_speed
travel_speed travel_speed
first_layer_speed first_layer_speed
@ -648,6 +649,7 @@ sub build {
$optgroup->append_single_option_line('support_material_interface_spacing'); $optgroup->append_single_option_line('support_material_interface_spacing');
$optgroup->append_single_option_line('support_material_interface_contact_loops'); $optgroup->append_single_option_line('support_material_interface_contact_loops');
$optgroup->append_single_option_line('support_material_buildplate_only'); $optgroup->append_single_option_line('support_material_buildplate_only');
$optgroup->append_single_option_line('support_material_xy_spacing');
$optgroup->append_single_option_line('dont_support_bridges'); $optgroup->append_single_option_line('dont_support_bridges');
$optgroup->append_single_option_line('support_material_synchronize_layers'); $optgroup->append_single_option_line('support_material_synchronize_layers');
} }

View File

@ -372,7 +372,7 @@ sub object_top {
# grow top surfaces so that interface and support generation are generated # grow top surfaces so that interface and support generation are generated
# with some spacing from object - it looks we don't need the actual # with some spacing from object - it looks we don't need the actual
# top shapes so this can be done here # top shapes so this can be done here
$top{ $layer->print_z } = offset($touching, $self->flow->scaled_width + ($self->object_config->support_material_xy_spacing / 0.000001) ); $top{ $layer->print_z } = offset($touching, $self->flow->scaled_width + $self->object_config->support_material_xy_spacing);
} }
# remove the areas that touched from the projection that will continue on # remove the areas that touched from the projection that will continue on
@ -624,10 +624,11 @@ sub clip_with_object {
# $layer->slices contains the full shape of layer, thus including # $layer->slices contains the full shape of layer, thus including
# perimeter's width. $support contains the full shape of support # perimeter's width. $support contains the full shape of support
# material, thus including the width of its foremost extrusion. # material, thus including the width of its foremost extrusion.
# We leave a gap equal to a full extrusion width. # We leave a gap equal to a full extrusion width + an offset
# if the user wants to play around with this setting.
$support->{$i} = diff( $support->{$i} = diff(
$support->{$i}, $support->{$i},
offset([ map @$_, map @{$_->slices}, @layers ], +($self->flow->scaled_width +($self->object_config->support_material_xy_spacing / 0.000001))), offset([ map @$_, map @{$_->slices}, @layers ], +$self->object_config->support_material_xy_spacing),
); );
} }
} }

View File

@ -426,6 +426,9 @@ $j
Support material angle in degrees (range: 0-90, default: $config->{support_material_angle}) Support material angle in degrees (range: 0-90, default: $config->{support_material_angle})
--support-material-contact-distance --support-material-contact-distance
Vertical distance between object and support material (0+, default: $config->{support_material_contact_distance}) Vertical distance between object and support material (0+, default: $config->{support_material_contact_distance})
--support-material-xy-spacing
horizontal distance between object and support material (0+, default: $config->{support_material_xy_spacing})
--support-material-interface-layers --support-material-interface-layers
Number of perpendicular layers between support material and object (0+, default: $config->{support_material_interface_layers}) Number of perpendicular layers between support material and object (0+, default: $config->{support_material_interface_layers})
--support-material-interface-spacing --support-material-interface-spacing

View File

@ -1121,6 +1121,13 @@ PrintConfigDef::PrintConfigDef()
def->cli = "support-material!"; def->cli = "support-material!";
def->default_value = new ConfigOptionBool(false); def->default_value = new ConfigOptionBool(false);
def = this->add("support_material_xy_spacing", coFloat);
def->label = "Extra separation between part and support (mm)";
def->category = "Support material";
def->tooltip = "Add offset to support material separation (0 is 1 extrusion width).";
def->cli = "support-material-xy-spacing=f";
def->default_value = new ConfigOptionFloat(0.0);
def = this->add("support_material_angle", coInt); def = this->add("support_material_angle", coInt);
def->label = "Pattern angle"; def->label = "Pattern angle";
def->category = "Support material"; def->category = "Support material";

View File

@ -164,6 +164,7 @@ class PrintObjectConfig : public virtual StaticPrintConfig
ConfigOptionBool support_material_synchronize_layers; ConfigOptionBool support_material_synchronize_layers;
ConfigOptionInt support_material_threshold; ConfigOptionInt support_material_threshold;
ConfigOptionBool support_material_with_sheath; ConfigOptionBool support_material_with_sheath;
ConfigOptionFloat support_material_xy_spacing;
ConfigOptionFloat xy_size_compensation; ConfigOptionFloat xy_size_compensation;
PrintObjectConfig(bool initialize = true) : StaticPrintConfig() { PrintObjectConfig(bool initialize = true) : StaticPrintConfig() {
@ -198,6 +199,7 @@ class PrintObjectConfig : public virtual StaticPrintConfig
OPT_PTR(support_material_spacing); OPT_PTR(support_material_spacing);
OPT_PTR(support_material_speed); OPT_PTR(support_material_speed);
OPT_PTR(support_material_synchronize_layers); OPT_PTR(support_material_synchronize_layers);
OPT_PTR(support_material_xy_spacing);
OPT_PTR(support_material_threshold); OPT_PTR(support_material_threshold);
OPT_PTR(support_material_with_sheath); OPT_PTR(support_material_with_sheath);
OPT_PTR(xy_size_compensation); OPT_PTR(xy_size_compensation);

View File

@ -221,6 +221,7 @@ PrintObject::invalidate_state_by_config_options(const std::vector<t_config_optio
|| *opt_key == "support_material_interface_speed" || *opt_key == "support_material_interface_speed"
|| *opt_key == "support_material_buildplate_only" || *opt_key == "support_material_buildplate_only"
|| *opt_key == "support_material_pattern" || *opt_key == "support_material_pattern"
|| *opt_key == "support_material_xy_spacing"
|| *opt_key == "support_material_spacing" || *opt_key == "support_material_spacing"
|| *opt_key == "support_material_synchronize_layers" || *opt_key == "support_material_synchronize_layers"
|| *opt_key == "support_material_threshold" || *opt_key == "support_material_threshold"