diff --git a/lib/Slic3r/GUI/Plater/3DPreview.pm b/lib/Slic3r/GUI/Plater/3DPreview.pm index fa71fcb1d..af31ae61f 100644 --- a/lib/Slic3r/GUI/Plater/3DPreview.pm +++ b/lib/Slic3r/GUI/Plater/3DPreview.pm @@ -123,6 +123,7 @@ sub load_print { foreach my $object (@{$self->print->objects}) { $self->canvas->load_print_object_toolpaths($object); + # Show the objects in very transparent color. #my @volume_ids = $self->canvas->load_object($object->model_object); #$self->canvas->volumes->[$_]->color->[3] = 0.2 for @volume_ids; } diff --git a/lib/Slic3r/GUI/Tab.pm b/lib/Slic3r/GUI/Tab.pm index 72e798b5e..d1ea0e432 100644 --- a/lib/Slic3r/GUI/Tab.pm +++ b/lib/Slic3r/GUI/Tab.pm @@ -775,7 +775,8 @@ sub _update { my $new_conf = Slic3r::Config->new; if ($dialog->ShowModal() == wxID_YES) { - $new_conf->set("fill_pattern", 1); + $new_conf->set("fill_pattern", 'rectilinear'); + $new_conf->set("fill_density", 100); } else { $new_conf->set("fill_density", 40); } diff --git a/lib/Slic3r/Print/GCode.pm b/lib/Slic3r/Print/GCode.pm index 27cca3221..e862a59e1 100644 --- a/lib/Slic3r/Print/GCode.pm +++ b/lib/Slic3r/Print/GCode.pm @@ -40,6 +40,8 @@ sub BUILD { my $gcodegen = Slic3r::GCode->new; $self->_gcodegen($gcodegen); $gcodegen->set_placeholder_parser($self->placeholder_parser); + # Tell the G-code generator, how many times the $gcodegen->change_layer() will be called. + # $gcodegen->change_layer() in turn increments the progress bar status. $gcodegen->set_layer_count($layer_count); $gcodegen->set_enable_cooling_markers(1); $gcodegen->apply_print_config($self->config); @@ -353,6 +355,8 @@ sub _print_first_layer_temperature { # Called per object's layer. # First a $gcode string is collected, # then filtered and finally written to a file $fh. +#FIXME If printing multiple objects at once, this incorrectly applies cooling logic to a single object's layer instead +# of all the objects printed. sub process_layer { my $self = shift; my ($layer, $object_copies) = @_; @@ -610,7 +614,8 @@ sub process_layer { $layer->print_z, ) if defined $self->_cooling_buffer; - print {$self->fh} $self->filter($gcode); + $gcode = $self->filter($gcode); + print {$self->fh} $gcode if defined($gcode); } # Extrude perimeters: Decide where to put seams (hide or align seams). @@ -655,6 +660,7 @@ sub flush_filters { sub filter { my ($self, $gcode, $flush) = @_; + $flush //= 0; # apply vibration limit if enabled; # this injects pauses according to time (thus depends on actual speeds) diff --git a/xs/xsp/Surface.xsp b/xs/xsp/Surface.xsp index ebacd1795..597ed1b5d 100644 --- a/xs/xsp/Surface.xsp +++ b/xs/xsp/Surface.xsp @@ -109,6 +109,7 @@ _constant() S_TYPE_INTERNALSOLID = stInternalSolid S_TYPE_INTERNALBRIDGE = stInternalBridge S_TYPE_INTERNALVOID = stInternalVoid + S_TYPW_PERIMETER = stPerimeter PROTOTYPE: CODE: RETVAL = ix;