Automatic detection of support material threshold angle
This commit is contained in:
parent
cbd298bc36
commit
34e047205a
@ -189,7 +189,8 @@ The author of the Silk icon set is Mark James.
|
|||||||
Support material options:
|
Support material options:
|
||||||
--support-material Generate support material for overhangs
|
--support-material Generate support material for overhangs
|
||||||
--support-material-threshold
|
--support-material-threshold
|
||||||
Overhang threshold angle (range: 0-90, default: 45)
|
Overhang threshold angle (range: 0-90, set 0 for automatic detection,
|
||||||
|
default: 0)
|
||||||
--support-material-pattern
|
--support-material-pattern
|
||||||
Pattern to use for support material (default: rectilinear)
|
Pattern to use for support material (default: rectilinear)
|
||||||
--support-material-spacing
|
--support-material-spacing
|
||||||
|
@ -536,11 +536,11 @@ our $Options = {
|
|||||||
},
|
},
|
||||||
'support_material_threshold' => {
|
'support_material_threshold' => {
|
||||||
label => 'Overhang threshold',
|
label => 'Overhang threshold',
|
||||||
tooltip => 'Support material will not generated for overhangs whose slope angle is above the given threshold.',
|
tooltip => 'Support material will not generated for overhangs whose slope angle is above the given threshold. Set to zero for automatic detection.',
|
||||||
sidetext => '°',
|
sidetext => '°',
|
||||||
cli => 'support-material-threshold=i',
|
cli => 'support-material-threshold=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
default => 45,
|
default => 0,
|
||||||
},
|
},
|
||||||
'support_material_pattern' => {
|
'support_material_pattern' => {
|
||||||
label => 'Pattern',
|
label => 'Pattern',
|
||||||
|
@ -2,7 +2,7 @@ package Slic3r::Print::Object;
|
|||||||
use Moo;
|
use Moo;
|
||||||
|
|
||||||
use Slic3r::ExtrusionPath ':roles';
|
use Slic3r::ExtrusionPath ':roles';
|
||||||
use Slic3r::Geometry qw(Z scale unscale deg2rad scaled_epsilon);
|
use Slic3r::Geometry qw(Z PI scale unscale deg2rad rad2deg scaled_epsilon);
|
||||||
use Slic3r::Geometry::Clipper qw(diff_ex intersection_ex union_ex);
|
use Slic3r::Geometry::Clipper qw(diff_ex intersection_ex union_ex);
|
||||||
use Slic3r::Surface ':types';
|
use Slic3r::Surface ':types';
|
||||||
|
|
||||||
@ -531,8 +531,12 @@ sub combine_infill {
|
|||||||
sub generate_support_material {
|
sub generate_support_material {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
|
my $threshold_rad = $Slic3r::Config->support_material_threshold
|
||||||
|
? deg2rad($Slic3r::Config->support_material_threshold + 1) # +1 makes the threshold inclusive
|
||||||
|
: PI/2 - atan2($self->layers->[1]->regions->[0]->perimeter_flow->width/$Slic3r::Config->layer_height/2, 1);
|
||||||
|
Slic3r::debugf "Threshold angle = %d°\n", rad2deg($threshold_rad);
|
||||||
|
|
||||||
my $flow = $self->print->support_material_flow;
|
my $flow = $self->print->support_material_flow;
|
||||||
my $threshold_rad = deg2rad($Slic3r::Config->support_material_threshold + 1); # +1 makes the threshold inclusive
|
|
||||||
my $overhang_width = $threshold_rad == 0 ? undef : scale $Slic3r::Config->layer_height * ((cos $threshold_rad) / (sin $threshold_rad));
|
my $overhang_width = $threshold_rad == 0 ? undef : scale $Slic3r::Config->layer_height * ((cos $threshold_rad) / (sin $threshold_rad));
|
||||||
my $distance_from_object = 1.5 * $flow->scaled_width;
|
my $distance_from_object = 1.5 * $flow->scaled_width;
|
||||||
my $pattern_spacing = ($Slic3r::Config->support_material_spacing > $flow->spacing)
|
my $pattern_spacing = ($Slic3r::Config->support_material_spacing > $flow->spacing)
|
||||||
|
@ -237,7 +237,8 @@ $j
|
|||||||
Support material options:
|
Support material options:
|
||||||
--support-material Generate support material for overhangs
|
--support-material Generate support material for overhangs
|
||||||
--support-material-threshold
|
--support-material-threshold
|
||||||
Overhang threshold angle (range: 0-90, default: $config->{support_material_threshold})
|
Overhang threshold angle (range: 0-90, set 0 for automatic detection,
|
||||||
|
default: $config->{support_material_threshold})
|
||||||
--support-material-pattern
|
--support-material-pattern
|
||||||
Pattern to use for support material (default: $config->{support_material_pattern})
|
Pattern to use for support material (default: $config->{support_material_pattern})
|
||||||
--support-material-spacing
|
--support-material-spacing
|
||||||
|
Loading…
Reference in New Issue
Block a user