Further reduction of Perl Config.pm methods.
This commit is contained in:
parent
3bc79e80d5
commit
2455aee97c
@ -8,12 +8,6 @@ use utf8;
|
|||||||
|
|
||||||
use List::Util qw(first max);
|
use List::Util qw(first max);
|
||||||
|
|
||||||
# cemetery of old config settings
|
|
||||||
our @Ignore = qw(duplicate_x duplicate_y multiply_x multiply_y support_material_tool acceleration
|
|
||||||
adjust_overhang_flow standby_temperature scale rotate duplicate duplicate_grid
|
|
||||||
rotate scale duplicate_grid start_perimeters_at_concave_points start_perimeters_at_non_overhang
|
|
||||||
randomize_start seal_position bed_size print_center g0 vibration_limit gcode_arcs pressure_advance);
|
|
||||||
|
|
||||||
# C++ Slic3r::PrintConfigDef exported as a Perl hash of hashes.
|
# C++ Slic3r::PrintConfigDef exported as a Perl hash of hashes.
|
||||||
# The C++ counterpart is a constant singleton.
|
# The C++ counterpart is a constant singleton.
|
||||||
our $Options = print_config_def();
|
our $Options = print_config_def();
|
||||||
@ -29,23 +23,6 @@ $Options->{threads}{readonly} = !$Slic3r::have_threads;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Fill in the underlying C++ Slic3r::DynamicPrintConfig with the content of the defaults
|
|
||||||
# provided by the C++ class Slic3r::FullPrintConfig.
|
|
||||||
# Used by the UI.
|
|
||||||
sub new_from_defaults {
|
|
||||||
my ($class, @opt_keys) = @_;
|
|
||||||
my $self = $class->new;
|
|
||||||
# Instantiating the C++ class Slic3r::FullPrintConfig.
|
|
||||||
my $defaults = Slic3r::Config::Full->new;
|
|
||||||
if (@opt_keys) {
|
|
||||||
$self->set($_, $defaults->get($_))
|
|
||||||
for grep $defaults->has($_), @opt_keys;
|
|
||||||
} else {
|
|
||||||
$self->apply_static($defaults);
|
|
||||||
}
|
|
||||||
return $self;
|
|
||||||
}
|
|
||||||
|
|
||||||
# From command line parameters, used by slic3r.pl
|
# From command line parameters, used by slic3r.pl
|
||||||
sub new_from_cli {
|
sub new_from_cli {
|
||||||
my $class = shift;
|
my $class = shift;
|
||||||
@ -87,27 +64,6 @@ sub new_from_cli {
|
|||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub merge {
|
|
||||||
my $class = shift;
|
|
||||||
my $config = $class->new;
|
|
||||||
$config->apply($_) for @_;
|
|
||||||
return $config;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub clone {
|
|
||||||
my $self = shift;
|
|
||||||
my $new = (ref $self)->new;
|
|
||||||
$new->apply($self);
|
|
||||||
return $new;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub get_value {
|
|
||||||
my ($self, $opt_key) = @_;
|
|
||||||
return $Options->{$opt_key}{ratio_over}
|
|
||||||
? $self->get_abs_value($opt_key)
|
|
||||||
: $self->get($opt_key);
|
|
||||||
}
|
|
||||||
|
|
||||||
# CLASS METHODS:
|
# CLASS METHODS:
|
||||||
|
|
||||||
# Write a "Windows" style ini file with categories enclosed in squre brackets.
|
# Write a "Windows" style ini file with categories enclosed in squre brackets.
|
||||||
|
@ -202,7 +202,7 @@ sub append_option {
|
|||||||
|
|
||||||
# populate repository with the factory default
|
# populate repository with the factory default
|
||||||
my ($opt_key, $opt_index) = split /#/, $full_key, 2;
|
my ($opt_key, $opt_index) = split /#/, $full_key, 2;
|
||||||
$self->config->apply(Slic3r::Config->new_from_defaults($opt_key));
|
$self->config->apply(Slic3r::Config::new_from_defaults_keys($opt_key));
|
||||||
|
|
||||||
# draw the control
|
# draw the control
|
||||||
my $optgroup = Slic3r::GUI::ConfigOptionsGroup->new(
|
my $optgroup = Slic3r::GUI::ConfigOptionsGroup->new(
|
||||||
@ -300,7 +300,7 @@ sub new {
|
|||||||
|
|
||||||
$self->append_text('Set the shape of your printer\'s bed, then click Next.');
|
$self->append_text('Set the shape of your printer\'s bed, then click Next.');
|
||||||
|
|
||||||
$self->config->apply(Slic3r::Config->new_from_defaults('bed_shape'));
|
$self->config->apply(Slic3r::Config::new_from_defaults_keys('bed_shape'));
|
||||||
$self->{bed_shape_panel} = my $panel = Slic3r::GUI::BedShapePanel->new($self, $self->config->bed_shape);
|
$self->{bed_shape_panel} = my $panel = Slic3r::GUI::BedShapePanel->new($self, $self->config->bed_shape);
|
||||||
$self->{bed_shape_panel}->on_change(sub {
|
$self->{bed_shape_panel}->on_change(sub {
|
||||||
$self->config->set('bed_shape', $self->{bed_shape_panel}->GetValue);
|
$self->config->set('bed_shape', $self->{bed_shape_panel}->GetValue);
|
||||||
|
@ -49,7 +49,7 @@ sub new {
|
|||||||
my $class = shift;
|
my $class = shift;
|
||||||
my ($parent) = @_;
|
my ($parent) = @_;
|
||||||
my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
|
my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
|
||||||
$self->{config} = Slic3r::Config->new_from_defaults(qw(
|
$self->{config} = Slic3r::Config::new_from_defaults_keys(qw(
|
||||||
bed_shape complete_objects extruder_clearance_radius skirts skirt_distance brim_width variable_layer_height
|
bed_shape complete_objects extruder_clearance_radius skirts skirt_distance brim_width variable_layer_height
|
||||||
serial_port serial_speed octoprint_host octoprint_apikey
|
serial_port serial_speed octoprint_host octoprint_apikey
|
||||||
nozzle_diameter single_extruder_multi_material
|
nozzle_diameter single_extruder_multi_material
|
||||||
|
@ -312,7 +312,7 @@ sub selection_changed {
|
|||||||
$config = $self->{model_object}->config;
|
$config = $self->{model_object}->config;
|
||||||
}
|
}
|
||||||
# get default values
|
# get default values
|
||||||
my $default_config = Slic3r::Config->new_from_defaults(@opt_keys);
|
my $default_config = Slic3r::Config::new_from_defaults_keys(@opt_keys);
|
||||||
|
|
||||||
# append default extruder
|
# append default extruder
|
||||||
push @opt_keys, 'extruder';
|
push @opt_keys, 'extruder';
|
||||||
@ -490,12 +490,12 @@ sub CanClose {
|
|||||||
# validate options before allowing user to dismiss the dialog
|
# validate options before allowing user to dismiss the dialog
|
||||||
# the validate method only works on full configs so we have
|
# the validate method only works on full configs so we have
|
||||||
# to merge our settings with the default ones
|
# to merge our settings with the default ones
|
||||||
my $config = Slic3r::Config->merge($self->GetParent->GetParent->GetParent->GetParent->GetParent->config, $self->model_object->config);
|
my $config = $self->GetParent->GetParent->GetParent->GetParent->GetParent->config->clone;
|
||||||
eval {
|
eval {
|
||||||
|
$config->apply($self->model_object->config);
|
||||||
$config->validate;
|
$config->validate;
|
||||||
};
|
};
|
||||||
return 0 if Slic3r::GUI::catch_error($self);
|
return ! Slic3r::GUI::catch_error($self);
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub PartsChanged {
|
sub PartsChanged {
|
||||||
|
@ -92,12 +92,12 @@ if ($opt{save}) {
|
|||||||
if (@{$cli_config->get_keys} > 0) {
|
if (@{$cli_config->get_keys} > 0) {
|
||||||
$cli_config->save($opt{save});
|
$cli_config->save($opt{save});
|
||||||
} else {
|
} else {
|
||||||
Slic3r::Config->new_from_defaults->save($opt{save});
|
Slic3r::Config::new_from_defaults->save($opt{save});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# apply command line config on top of default config
|
# apply command line config on top of default config
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->apply($cli_config);
|
$config->apply($cli_config);
|
||||||
|
|
||||||
# locate or create data directory
|
# locate or create data directory
|
||||||
@ -242,7 +242,7 @@ if (@ARGV) { # slicing from command line
|
|||||||
sub usage {
|
sub usage {
|
||||||
my ($exit_code) = @_;
|
my ($exit_code) = @_;
|
||||||
|
|
||||||
my $config = Slic3r::Config->new_from_defaults->as_hash;
|
my $config = Slic3r::Config::new_from_defaults->as_hash;
|
||||||
|
|
||||||
my $j = '';
|
my $j = '';
|
||||||
if ($Slic3r::have_threads) {
|
if ($Slic3r::have_threads) {
|
||||||
|
@ -13,7 +13,7 @@ use Slic3r;
|
|||||||
use Slic3r::Test;
|
use Slic3r::Test;
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('avoid_crossing_perimeters', 2);
|
$config->set('avoid_crossing_perimeters', 2);
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config, duplicate => 2);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config, duplicate => 2);
|
||||||
ok my $gcode = Slic3r::Test::gcode($print), "no crash with avoid_crossing_perimeters and multiple objects";
|
ok my $gcode = Slic3r::Test::gcode($print), "no crash with avoid_crossing_perimeters and multiple objects";
|
||||||
|
@ -109,7 +109,7 @@ sub check_angle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('top_solid_layers', 0); # to prevent bridging on sparse infill
|
$config->set('top_solid_layers', 0); # to prevent bridging on sparse infill
|
||||||
$config->set('bridge_speed', 99);
|
$config->set('bridge_speed', 99);
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ plan tests => 8;
|
|||||||
'infill is only present in correct number of layers';
|
'infill is only present in correct number of layers';
|
||||||
};
|
};
|
||||||
|
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('layer_height', 0.2);
|
$config->set('layer_height', 0.2);
|
||||||
$config->set('first_layer_height', 0.2);
|
$config->set('first_layer_height', 0.2);
|
||||||
$config->set('nozzle_diameter', [0.5]);
|
$config->set('nozzle_diameter', [0.5]);
|
||||||
@ -73,7 +73,7 @@ plan tests => 8;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('layer_height', 0.2);
|
$config->set('layer_height', 0.2);
|
||||||
$config->set('first_layer_height', 0.2);
|
$config->set('first_layer_height', 0.2);
|
||||||
$config->set('nozzle_diameter', [0.5]);
|
$config->set('nozzle_diameter', [0.5]);
|
||||||
@ -98,7 +98,7 @@ plan tests => 8;
|
|||||||
|
|
||||||
# the following needs to be adapted to the new API
|
# the following needs to be adapted to the new API
|
||||||
if (0) {
|
if (0) {
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('solid_layers', 0);
|
$config->set('solid_layers', 0);
|
||||||
$config->set('bottom_solid_layers', 0);
|
$config->set('bottom_solid_layers', 0);
|
||||||
|
@ -12,7 +12,7 @@ use Slic3r;
|
|||||||
use Slic3r::Test;
|
use Slic3r::Test;
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('perimeter_extrusion_width', '250%');
|
$config->set('perimeter_extrusion_width', '250%');
|
||||||
ok $config->validate, 'percent extrusion width is validated';
|
ok $config->validate, 'percent extrusion width is validated';
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ my $print_time1 = 100 / (3000 / 60); # 2 sec
|
|||||||
my $gcode2 = $gcode1 . "G1 X0 E1 F3000\n";
|
my $gcode2 = $gcode1 . "G1 X0 E1 F3000\n";
|
||||||
my $print_time2 = 2 * $print_time1; # 4 sec
|
my $print_time2 = 2 * $print_time1; # 4 sec
|
||||||
|
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
# Default cooling settings.
|
# Default cooling settings.
|
||||||
$config->set('bridge_fan_speed', [ 100 ]);
|
$config->set('bridge_fan_speed', [ 100 ]);
|
||||||
$config->set('cooling', [ 1 ]);
|
$config->set('cooling', [ 1 ]);
|
||||||
@ -138,7 +138,7 @@ $config->set('disable_fan_first_layers', [ 0 ]);
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('cooling', [ 1 ]);
|
$config->set('cooling', [ 1 ]);
|
||||||
$config->set('bridge_fan_speed', [ 100 ]);
|
$config->set('bridge_fan_speed', [ 100 ]);
|
||||||
$config->set('fan_below_layer_time', [ 0 ]);
|
$config->set('fan_below_layer_time', [ 0 ]);
|
||||||
@ -172,7 +172,7 @@ $config->set('disable_fan_first_layers', [ 0 ]);
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('cooling', [ 1 ]);
|
$config->set('cooling', [ 1 ]);
|
||||||
$config->set('fan_below_layer_time', [ 0 ]);
|
$config->set('fan_below_layer_time', [ 0 ]);
|
||||||
$config->set('slowdown_below_layer_time', [ 10 ]);
|
$config->set('slowdown_below_layer_time', [ 10 ]);
|
||||||
|
@ -13,7 +13,7 @@ use Slic3r;
|
|||||||
use Slic3r::Test;
|
use Slic3r::Test;
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
|
|
||||||
my $test = sub {
|
my $test = sub {
|
||||||
my ($conf) = @_;
|
my ($conf) = @_;
|
||||||
@ -47,7 +47,7 @@ use Slic3r::Test;
|
|||||||
|
|
||||||
{
|
{
|
||||||
my $parser = Slic3r::GCode::PlaceholderParser->new;
|
my $parser = Slic3r::GCode::PlaceholderParser->new;
|
||||||
$parser->apply_config(my $config = Slic3r::Config->new_from_defaults);
|
$parser->apply_config(my $config = Slic3r::Config::new_from_defaults);
|
||||||
$parser->set('foo' => '0');
|
$parser->set('foo' => '0');
|
||||||
is $parser->process('[temperature_[foo]]'),
|
is $parser->process('[temperature_[foo]]'),
|
||||||
$config->temperature->[0],
|
$config->temperature->[0],
|
||||||
@ -55,7 +55,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('output_filename_format', 'ts_[travel_speed]_lh_[layer_height].gcode');
|
$config->set('output_filename_format', 'ts_[travel_speed]_lh_[layer_height].gcode');
|
||||||
$config->set('start_gcode', "TRAVEL:[travel_speed] HEIGHT:[layer_height]\n");
|
$config->set('start_gcode', "TRAVEL:[travel_speed] HEIGHT:[layer_height]\n");
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
||||||
@ -108,7 +108,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('before_layer_gcode', ';BEFORE [layer_num]');
|
$config->set('before_layer_gcode', ';BEFORE [layer_num]');
|
||||||
$config->set('layer_gcode', ';CHANGE [layer_num]');
|
$config->set('layer_gcode', ';CHANGE [layer_num]');
|
||||||
$config->set('support_material', 1);
|
$config->set('support_material', 1);
|
||||||
|
8
t/fill.t
8
t/fill.t
@ -163,7 +163,7 @@ SKIP:
|
|||||||
}
|
}
|
||||||
|
|
||||||
for my $pattern (qw(rectilinear honeycomb hilbertcurve concentric)) {
|
for my $pattern (qw(rectilinear honeycomb hilbertcurve concentric)) {
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('fill_pattern', $pattern);
|
$config->set('fill_pattern', $pattern);
|
||||||
$config->set('external_fill_pattern', $pattern);
|
$config->set('external_fill_pattern', $pattern);
|
||||||
$config->set('perimeters', 1);
|
$config->set('perimeters', 1);
|
||||||
@ -194,7 +194,7 @@ for my $pattern (qw(rectilinear honeycomb hilbertcurve concentric)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('infill_only_where_needed', 1);
|
$config->set('infill_only_where_needed', 1);
|
||||||
$config->set('bottom_solid_layers', 0);
|
$config->set('bottom_solid_layers', 0);
|
||||||
$config->set('infill_extruder', 2);
|
$config->set('infill_extruder', 2);
|
||||||
@ -240,7 +240,7 @@ for my $pattern (qw(rectilinear honeycomb hilbertcurve concentric)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('perimeters', 1);
|
$config->set('perimeters', 1);
|
||||||
$config->set('fill_density', 0);
|
$config->set('fill_density', 0);
|
||||||
@ -270,7 +270,7 @@ for my $pattern (qw(rectilinear honeycomb hilbertcurve concentric)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('perimeters', 3);
|
$config->set('perimeters', 3);
|
||||||
$config->set('fill_density', 0);
|
$config->set('fill_density', 0);
|
||||||
|
4
t/flow.t
4
t/flow.t
@ -14,7 +14,7 @@ use Slic3r::Geometry qw(scale PI);
|
|||||||
use Slic3r::Test;
|
use Slic3r::Test;
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 1);
|
$config->set('skirts', 1);
|
||||||
$config->set('brim_width', 2);
|
$config->set('brim_width', 2);
|
||||||
$config->set('perimeters', 3);
|
$config->set('perimeters', 3);
|
||||||
@ -41,7 +41,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('bridge_speed', 99);
|
$config->set('bridge_speed', 99);
|
||||||
$config->set('bridge_flow_ratio', 1);
|
$config->set('bridge_flow_ratio', 1);
|
||||||
$config->set('cooling', [ 0 ]); # to prevent speeds from being altered
|
$config->set('cooling', [ 0 ]); # to prevent speeds from being altered
|
||||||
|
2
t/gaps.t
2
t/gaps.t
@ -16,7 +16,7 @@ use Slic3r::Surface ':types';
|
|||||||
use Slic3r::Test;
|
use Slic3r::Test;
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('perimeter_speed', 66);
|
$config->set('perimeter_speed', 66);
|
||||||
$config->set('external_perimeter_speed', 66);
|
$config->set('external_perimeter_speed', 66);
|
||||||
|
22
t/gcode.t
22
t/gcode.t
@ -21,7 +21,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('wipe', [1]);
|
$config->set('wipe', [1]);
|
||||||
$config->set('retract_layer_change', [0]);
|
$config->set('retract_layer_change', [0]);
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('z_offset', 5);
|
$config->set('z_offset', 5);
|
||||||
$config->set('start_gcode', '');
|
$config->set('start_gcode', '');
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ use Slic3r::Test;
|
|||||||
# - Z moves are correctly generated for both objects
|
# - Z moves are correctly generated for both objects
|
||||||
# - no travel moves go outside skirt
|
# - no travel moves go outside skirt
|
||||||
# - temperatures are set correctly
|
# - temperatures are set correctly
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('gcode_comments', 1);
|
$config->set('gcode_comments', 1);
|
||||||
$config->set('complete_objects', 1);
|
$config->set('complete_objects', 1);
|
||||||
$config->set('extrusion_axis', 'A');
|
$config->set('extrusion_axis', 'A');
|
||||||
@ -130,7 +130,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('retract_length', [1000000]);
|
$config->set('retract_length', [1000000]);
|
||||||
$config->set('use_relative_e_distances', 1);
|
$config->set('use_relative_e_distances', 1);
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
||||||
@ -162,7 +162,7 @@ use Slic3r::Test;
|
|||||||
};
|
};
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('gcode_flavor', 'sailfish');
|
$config->set('gcode_flavor', 'sailfish');
|
||||||
$config->set('raft_layers', 3);
|
$config->set('raft_layers', 3);
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
||||||
@ -170,21 +170,21 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('gcode_flavor', 'sailfish');
|
$config->set('gcode_flavor', 'sailfish');
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config, duplicate => 2);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config, duplicate => 2);
|
||||||
$test->($print, 'two copies of single object');
|
$test->($print, 'two copies of single object');
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('gcode_flavor', 'sailfish');
|
$config->set('gcode_flavor', 'sailfish');
|
||||||
my $print = Slic3r::Test::init_print(['20mm_cube','20mm_cube'], config => $config);
|
my $print = Slic3r::Test::init_print(['20mm_cube','20mm_cube'], config => $config);
|
||||||
$test->($print, 'two objects');
|
$test->($print, 'two objects');
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('gcode_flavor', 'sailfish');
|
$config->set('gcode_flavor', 'sailfish');
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config, scale_xyz => [1,1, 1/(20/$config->layer_height) ]);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config, scale_xyz => [1,1, 1/(20/$config->layer_height) ]);
|
||||||
$test->($print, 'one layer object');
|
$test->($print, 'one layer object');
|
||||||
@ -192,7 +192,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('start_gcode', 'START:[input_filename]');
|
$config->set('start_gcode', 'START:[input_filename]');
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
||||||
my $gcode = Slic3r::Test::gcode($print);
|
my $gcode = Slic3r::Test::gcode($print);
|
||||||
@ -200,7 +200,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('spiral_vase', 1);
|
$config->set('spiral_vase', 1);
|
||||||
my $print = Slic3r::Test::init_print('cube_with_hole', config => $config);
|
my $print = Slic3r::Test::init_print('cube_with_hole', config => $config);
|
||||||
|
|
||||||
@ -220,7 +220,7 @@ use Slic3r::Test;
|
|||||||
{
|
{
|
||||||
# Tests that the Repetier flavor produces M201 Xnnn Ynnn for resetting
|
# Tests that the Repetier flavor produces M201 Xnnn Ynnn for resetting
|
||||||
# acceleration, also that M204 Snnn syntax is not generated.
|
# acceleration, also that M204 Snnn syntax is not generated.
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('gcode_flavor', 'repetier');
|
$config->set('gcode_flavor', 'repetier');
|
||||||
$config->set('default_acceleration', 1337);
|
$config->set('default_acceleration', 1337);
|
||||||
my $print = Slic3r::Test::init_print('cube_with_hole', config => $config);
|
my $print = Slic3r::Test::init_print('cube_with_hole', config => $config);
|
||||||
|
@ -13,7 +13,7 @@ use Slic3r;
|
|||||||
use Slic3r::Test qw(_eq);
|
use Slic3r::Test qw(_eq);
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
|
|
||||||
my $test = sub {
|
my $test = sub {
|
||||||
my ($conf) = @_;
|
my ($conf) = @_;
|
||||||
|
@ -15,7 +15,7 @@ use Slic3r::Geometry::Clipper qw(offset);
|
|||||||
use Slic3r::Test;
|
use Slic3r::Test;
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('raft_layers', 2);
|
$config->set('raft_layers', 2);
|
||||||
$config->set('infill_extruder', 2);
|
$config->set('infill_extruder', 2);
|
||||||
$config->set('solid_infill_extruder', 3);
|
$config->set('solid_infill_extruder', 3);
|
||||||
@ -88,7 +88,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('support_material_extruder', 3);
|
$config->set('support_material_extruder', 3);
|
||||||
|
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
||||||
@ -125,7 +125,7 @@ use Slic3r::Test;
|
|||||||
$upper_config->set('extruder', 2);
|
$upper_config->set('extruder', 2);
|
||||||
$upper_config->set('bottom_solid_layers', 1);
|
$upper_config->set('bottom_solid_layers', 1);
|
||||||
$upper_config->set('top_solid_layers', 0);
|
$upper_config->set('top_solid_layers', 0);
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('fill_density', 0);
|
$config->set('fill_density', 0);
|
||||||
$config->set('solid_infill_speed', 99);
|
$config->set('solid_infill_speed', 99);
|
||||||
$config->set('top_solid_infill_speed', 99);
|
$config->set('top_solid_infill_speed', 99);
|
||||||
@ -171,7 +171,7 @@ use Slic3r::Test;
|
|||||||
my $model = stacked_cubes();
|
my $model = stacked_cubes();
|
||||||
my $object = $model->objects->[0];
|
my $object = $model->objects->[0];
|
||||||
|
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('layer_height', 0.4);
|
$config->set('layer_height', 0.4);
|
||||||
$config->set('first_layer_height', '100%');
|
$config->set('first_layer_height', '100%');
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
|
@ -156,7 +156,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('fill_density', 0);
|
$config->set('fill_density', 0);
|
||||||
$config->set('perimeters', 3);
|
$config->set('perimeters', 3);
|
||||||
@ -284,7 +284,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('perimeters', 3);
|
$config->set('perimeters', 3);
|
||||||
$config->set('layer_height', 0.4);
|
$config->set('layer_height', 0.4);
|
||||||
@ -314,7 +314,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('nozzle_diameter', [0.4]);
|
$config->set('nozzle_diameter', [0.4]);
|
||||||
$config->set('perimeters', 2);
|
$config->set('perimeters', 2);
|
||||||
$config->set('perimeter_extrusion_width', 0.4);
|
$config->set('perimeter_extrusion_width', 0.4);
|
||||||
@ -372,7 +372,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('perimeters', 3);
|
$config->set('perimeters', 3);
|
||||||
$config->set('layer_height', 0.4);
|
$config->set('layer_height', 0.4);
|
||||||
@ -401,7 +401,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('seam_position', 'random');
|
$config->set('seam_position', 'random');
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
||||||
ok Slic3r::Test::gcode($print), 'successful generation of G-code with seam_position = random';
|
ok Slic3r::Test::gcode($print), 'successful generation of G-code with seam_position = random';
|
||||||
@ -410,7 +410,7 @@ use Slic3r::Test;
|
|||||||
{
|
{
|
||||||
my $test = sub {
|
my $test = sub {
|
||||||
my ($model_name) = @_;
|
my ($model_name) = @_;
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('seam_position', 'aligned');
|
$config->set('seam_position', 'aligned');
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('perimeters', 1);
|
$config->set('perimeters', 1);
|
||||||
|
@ -14,7 +14,7 @@ use Slic3r::Geometry qw(unscale X Y);
|
|||||||
use Slic3r::Test;
|
use Slic3r::Test;
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
my $print_center = [100,100];
|
my $print_center = [100,100];
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config, print_center => $print_center);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config, print_center => $print_center);
|
||||||
my @extrusion_points = ();
|
my @extrusion_points = ();
|
||||||
@ -33,7 +33,7 @@ use Slic3r::Test;
|
|||||||
|
|
||||||
{
|
{
|
||||||
# this represents the aggregate config from presets
|
# this represents the aggregate config from presets
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
|
|
||||||
# user adds one object to the plater
|
# user adds one object to the plater
|
||||||
my $print = Slic3r::Test::init_print(my $model = Slic3r::Test::model('20mm_cube'), config => $config);
|
my $print = Slic3r::Test::init_print(my $model = Slic3r::Test::model('20mm_cube'), config => $config);
|
||||||
|
@ -13,7 +13,7 @@ use Slic3r;
|
|||||||
use Slic3r::Test qw(_eq);
|
use Slic3r::Test qw(_eq);
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
my $duplicate = 1;
|
my $duplicate = 1;
|
||||||
|
|
||||||
my $test = sub {
|
my $test = sub {
|
||||||
@ -131,7 +131,7 @@ use Slic3r::Test qw(_eq);
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('start_gcode', ''); # prevent any default priming Z move from affecting our lift detection
|
$config->set('start_gcode', ''); # prevent any default priming Z move from affecting our lift detection
|
||||||
$config->set('retract_length', [0]);
|
$config->set('retract_length', [0]);
|
||||||
$config->set('retract_layer_change', [0]);
|
$config->set('retract_layer_change', [0]);
|
||||||
@ -165,7 +165,7 @@ use Slic3r::Test qw(_eq);
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('use_firmware_retraction', 1);
|
$config->set('use_firmware_retraction', 1);
|
||||||
|
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
||||||
@ -188,7 +188,7 @@ use Slic3r::Test qw(_eq);
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('use_firmware_retraction', 1);
|
$config->set('use_firmware_retraction', 1);
|
||||||
$config->set('retract_length', [0]);
|
$config->set('retract_length', [0]);
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ use Slic3r::Test qw(_eq);
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('start_gcode', '');
|
$config->set('start_gcode', '');
|
||||||
$config->set('retract_lift', [3, 4]);
|
$config->set('retract_lift', [3, 4]);
|
||||||
|
|
||||||
|
14
t/shells.t
14
t/shells.t
@ -14,7 +14,7 @@ use Slic3r::Geometry qw(epsilon);
|
|||||||
use Slic3r::Test;
|
use Slic3r::Test;
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('perimeters', 0);
|
$config->set('perimeters', 0);
|
||||||
$config->set('solid_infill_speed', 99);
|
$config->set('solid_infill_speed', 99);
|
||||||
@ -82,7 +82,7 @@ use Slic3r::Test;
|
|||||||
|
|
||||||
# issue #1161
|
# issue #1161
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('layer_height', 0.3);
|
$config->set('layer_height', 0.3);
|
||||||
$config->set('first_layer_height', '100%');
|
$config->set('first_layer_height', '100%');
|
||||||
$config->set('bottom_solid_layers', 0);
|
$config->set('bottom_solid_layers', 0);
|
||||||
@ -106,7 +106,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
# we need to check against one perimeter because this test is calibrated
|
# we need to check against one perimeter because this test is calibrated
|
||||||
# (shape, extrusion_width) so that perimeters cover the bottom surfaces of
|
# (shape, extrusion_width) so that perimeters cover the bottom surfaces of
|
||||||
# their lower layer - the test checks that shells are not generated on the
|
# their lower layer - the test checks that shells are not generated on the
|
||||||
@ -137,7 +137,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('perimeters', 3);
|
$config->set('perimeters', 3);
|
||||||
$config->set('cooling', [ 0 ]); # prevent speed alteration
|
$config->set('cooling', [ 0 ]); # prevent speed alteration
|
||||||
$config->set('first_layer_speed', '100%'); # prevent speed alteration
|
$config->set('first_layer_speed', '100%'); # prevent speed alteration
|
||||||
@ -161,7 +161,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('perimeters', 1);
|
$config->set('perimeters', 1);
|
||||||
$config->set('fill_density', 0);
|
$config->set('fill_density', 0);
|
||||||
$config->set('top_solid_layers', 0);
|
$config->set('top_solid_layers', 0);
|
||||||
@ -221,7 +221,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('spiral_vase', 1);
|
$config->set('spiral_vase', 1);
|
||||||
$config->set('perimeters', 1);
|
$config->set('perimeters', 1);
|
||||||
$config->set('fill_density', 0);
|
$config->set('fill_density', 0);
|
||||||
@ -292,7 +292,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('perimeters', 1);
|
$config->set('perimeters', 1);
|
||||||
$config->set('fill_density', 0);
|
$config->set('fill_density', 0);
|
||||||
$config->set('top_solid_layers', 0);
|
$config->set('top_solid_layers', 0);
|
||||||
|
@ -14,7 +14,7 @@ use Slic3r::Geometry qw(unscale convex_hull);
|
|||||||
use Slic3r::Test;
|
use Slic3r::Test;
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 1);
|
$config->set('skirts', 1);
|
||||||
$config->set('skirt_height', 2);
|
$config->set('skirt_height', 2);
|
||||||
$config->set('perimeters', 0);
|
$config->set('perimeters', 0);
|
||||||
@ -46,7 +46,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('perimeters', 0);
|
$config->set('perimeters', 0);
|
||||||
$config->set('top_solid_layers', 0); # to prevent solid shells and their speeds
|
$config->set('top_solid_layers', 0); # to prevent solid shells and their speeds
|
||||||
@ -72,7 +72,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 1);
|
$config->set('skirts', 1);
|
||||||
$config->set('brim_width', 10);
|
$config->set('brim_width', 10);
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 1);
|
$config->set('skirts', 1);
|
||||||
$config->set('skirt_height', 0);
|
$config->set('skirt_height', 0);
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('layer_height', 0.4);
|
$config->set('layer_height', 0.4);
|
||||||
$config->set('first_layer_height', 0.4);
|
$config->set('first_layer_height', 0.4);
|
||||||
$config->set('skirts', 1);
|
$config->set('skirts', 1);
|
||||||
@ -135,7 +135,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('min_skirt_length', 20);
|
$config->set('min_skirt_length', 20);
|
||||||
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
|
||||||
ok Slic3r::Test::gcode($print), 'no crash when using min_skirt_length';
|
ok Slic3r::Test::gcode($print), 'no crash when using min_skirt_length';
|
||||||
|
12
t/support.t
12
t/support.t
@ -19,7 +19,7 @@ use Slic3r::Geometry::Clipper qw(diff);
|
|||||||
use Slic3r::Test;
|
use Slic3r::Test;
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('support_material', 1);
|
$config->set('support_material', 1);
|
||||||
my @contact_z = my @top_z = ();
|
my @contact_z = my @top_z = ();
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('raft_layers', 3);
|
$config->set('raft_layers', 3);
|
||||||
$config->set('brim_width', 0);
|
$config->set('brim_width', 0);
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
@ -108,7 +108,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('raft_layers', 3);
|
$config->set('raft_layers', 3);
|
||||||
$config->set('support_material_pattern', 'honeycomb');
|
$config->set('support_material_pattern', 'honeycomb');
|
||||||
@ -153,7 +153,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('layer_height', 0.35);
|
$config->set('layer_height', 0.35);
|
||||||
$config->set('first_layer_height', 0.3);
|
$config->set('first_layer_height', 0.3);
|
||||||
@ -192,7 +192,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('brim_width', 0);
|
$config->set('brim_width', 0);
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('support_material', 1);
|
$config->set('support_material', 1);
|
||||||
@ -232,7 +232,7 @@ use Slic3r::Test;
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('skirts', 0);
|
$config->set('skirts', 0);
|
||||||
$config->set('start_gcode', '');
|
$config->set('start_gcode', '');
|
||||||
$config->set('raft_layers', 8);
|
$config->set('raft_layers', 8);
|
||||||
|
2
t/thin.t
2
t/thin.t
@ -16,7 +16,7 @@ use Slic3r::Test;
|
|||||||
# Disable this until a more robust implementation is provided. It currently
|
# Disable this until a more robust implementation is provided. It currently
|
||||||
# fails on Linux 32bit because some spurious extrudates are generated.
|
# fails on Linux 32bit because some spurious extrudates are generated.
|
||||||
if (0) {
|
if (0) {
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
$config->set('layer_height', 0.2);
|
$config->set('layer_height', 0.2);
|
||||||
$config->set('first_layer_height', '100%');
|
$config->set('first_layer_height', '100%');
|
||||||
$config->set('extrusion_width', 0.5);
|
$config->set('extrusion_width', 0.5);
|
||||||
|
@ -33,7 +33,7 @@ my %opt = ();
|
|||||||
my $model = Slic3r::Model->read_from_file($ARGV[0]);
|
my $model = Slic3r::Model->read_from_file($ARGV[0]);
|
||||||
|
|
||||||
# load config
|
# load config
|
||||||
my $config = Slic3r::Config->new_from_defaults;
|
my $config = Slic3r::Config::new_from_defaults;
|
||||||
if ($opt{load}) {
|
if ($opt{load}) {
|
||||||
$config->apply(Slic3r::Config->load($opt{load}));
|
$config->apply(Slic3r::Config->load($opt{load}));
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
#include "PrintConfig.hpp"
|
#include "PrintConfig.hpp"
|
||||||
|
|
||||||
|
#include <set>
|
||||||
#include <boost/algorithm/string/replace.hpp>
|
#include <boost/algorithm/string/replace.hpp>
|
||||||
#include <boost/lexical_cast.hpp>
|
#include <boost/lexical_cast.hpp>
|
||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
|
|
||||||
#include <float.h>
|
#include <float.h>
|
||||||
|
|
||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
@ -1719,18 +1722,16 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
|
|||||||
value = "60%";
|
value = "60%";
|
||||||
}
|
}
|
||||||
|
|
||||||
// cemetery of old config settings
|
// Ignore the following obsolete configuration keys:
|
||||||
if (opt_key == "duplicate_x" || opt_key == "duplicate_y" || opt_key == "multiply_x"
|
static std::set<std::string> ignore = {
|
||||||
|| opt_key == "multiply_y" || opt_key == "support_material_tool"
|
"duplicate_x", "duplicate_y", "gcode_arcs", "multiply_x", "multiply_y",
|
||||||
|| opt_key == "acceleration" || opt_key == "adjust_overhang_flow"
|
"support_material_tool", "acceleration", "adjust_overhang_flow",
|
||||||
|| opt_key == "standby_temperature" || opt_key == "scale" || opt_key == "rotate"
|
"standby_temperature", "scale", "rotate", "duplicate", "duplicate_grid",
|
||||||
|| opt_key == "duplicate" || opt_key == "duplicate_grid" || opt_key == "rotate"
|
"start_perimeters_at_concave_points", "start_perimeters_at_non_overhang", "randomize_start",
|
||||||
|| opt_key == "scale" || opt_key == "duplicate_grid"
|
"seal_position", "vibration_limit", "bed_size", "octoprint_host",
|
||||||
|| opt_key == "start_perimeters_at_concave_points"
|
"print_center", "g0", "threads", "pressure_advance"
|
||||||
|| opt_key == "start_perimeters_at_non_overhang" || opt_key == "randomize_start"
|
};
|
||||||
|| opt_key == "seal_position" || opt_key == "bed_size" || opt_key == "octoprint_host"
|
if (ignore.find(opt_key) != ignore.end()) {
|
||||||
|| opt_key == "print_center" || opt_key == "g0" || opt_key == "threads")
|
|
||||||
{
|
|
||||||
opt_key = "";
|
opt_key = "";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1744,6 +1745,18 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
|
|||||||
|
|
||||||
PrintConfigDef print_config_def;
|
PrintConfigDef print_config_def;
|
||||||
|
|
||||||
|
DynamicPrintConfig* DynamicPrintConfig::new_from_defaults()
|
||||||
|
{
|
||||||
|
return new_from_defaults_keys(FullPrintConfig::defaults().keys());
|
||||||
|
}
|
||||||
|
|
||||||
|
DynamicPrintConfig* DynamicPrintConfig::new_from_defaults_keys(const std::vector<std::string> &keys)
|
||||||
|
{
|
||||||
|
auto *out = new DynamicPrintConfig();
|
||||||
|
out->apply_only(FullPrintConfig::defaults(), keys);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
void DynamicPrintConfig::normalize()
|
void DynamicPrintConfig::normalize()
|
||||||
{
|
{
|
||||||
if (this->has("extruder")) {
|
if (this->has("extruder")) {
|
||||||
|
@ -142,6 +142,9 @@ public:
|
|||||||
DynamicPrintConfig() {}
|
DynamicPrintConfig() {}
|
||||||
DynamicPrintConfig(const DynamicPrintConfig &other) : DynamicConfig(other) {}
|
DynamicPrintConfig(const DynamicPrintConfig &other) : DynamicConfig(other) {}
|
||||||
|
|
||||||
|
static DynamicPrintConfig* new_from_defaults();
|
||||||
|
static DynamicPrintConfig* new_from_defaults_keys(const std::vector<std::string> &keys);
|
||||||
|
|
||||||
// Overrides ConfigBase::def(). Static configuration definition. Any value stored into this ConfigBase shall have its definition here.
|
// Overrides ConfigBase::def(). Static configuration definition. Any value stored into this ConfigBase shall have its definition here.
|
||||||
const ConfigDef* def() const override { return &print_config_def; }
|
const ConfigDef* def() const override { return &print_config_def; }
|
||||||
|
|
||||||
|
@ -8,6 +8,9 @@
|
|||||||
%name{Slic3r::Config} class DynamicPrintConfig {
|
%name{Slic3r::Config} class DynamicPrintConfig {
|
||||||
DynamicPrintConfig();
|
DynamicPrintConfig();
|
||||||
~DynamicPrintConfig();
|
~DynamicPrintConfig();
|
||||||
|
static DynamicPrintConfig* new_from_defaults();
|
||||||
|
static DynamicPrintConfig* new_from_defaults_keys(std::vector<std::string> keys);
|
||||||
|
DynamicPrintConfig* clone() %code{% RETVAL = new DynamicPrintConfig(*THIS); %};
|
||||||
bool has(t_config_option_key opt_key);
|
bool has(t_config_option_key opt_key);
|
||||||
SV* as_hash()
|
SV* as_hash()
|
||||||
%code{% RETVAL = ConfigBase__as_hash(THIS); %};
|
%code{% RETVAL = ConfigBase__as_hash(THIS); %};
|
||||||
@ -15,6 +18,13 @@
|
|||||||
%code{% RETVAL = ConfigBase__get(THIS, opt_key); %};
|
%code{% RETVAL = ConfigBase__get(THIS, opt_key); %};
|
||||||
SV* get_at(t_config_option_key opt_key, int i)
|
SV* get_at(t_config_option_key opt_key, int i)
|
||||||
%code{% RETVAL = ConfigBase__get_at(THIS, opt_key, i); %};
|
%code{% RETVAL = ConfigBase__get_at(THIS, opt_key, i); %};
|
||||||
|
SV* get_value(t_config_option_key opt_key)
|
||||||
|
%code{%
|
||||||
|
const ConfigOptionDef *def = THIS->def()->get(opt_key);
|
||||||
|
RETVAL = (def != nullptr && ! def->ratio_over.empty()) ?
|
||||||
|
newSVnv(THIS->get_abs_value(opt_key)) :
|
||||||
|
ConfigBase__get(THIS, opt_key);
|
||||||
|
%};
|
||||||
bool set(t_config_option_key opt_key, SV* value)
|
bool set(t_config_option_key opt_key, SV* value)
|
||||||
%code{% RETVAL = ConfigBase__set(THIS, opt_key, value); %};
|
%code{% RETVAL = ConfigBase__set(THIS, opt_key, value); %};
|
||||||
bool set_deserialize(t_config_option_key opt_key, SV* str)
|
bool set_deserialize(t_config_option_key opt_key, SV* str)
|
||||||
|
Loading…
Reference in New Issue
Block a user