layer 2 (and 3) using normal infil instead of solid infill in some areas #689

Closed
markspace opened this Issue Sep 12, 2012 · 3 comments

Projects

None yet

3 participants

@markspace

http://dl.dropbox.com/u/315849/Slic3r/layerfill/config-filltest.ini
and sliced
model - http://dl.dropbox.com/u/315849/Slic3r/z-motor-mount.stl

Note that the first layer has a different single wall width to the higher layers:
; single wall width = 0.42mm
; first layer single wall width = 0.80mm

This gives:
problem gcode

as you can see - layer 2 and 3 have the area between the hole and the wall filled with the normal infill (the same as layer 4) instead of the solid infill (config has 3 solid layers).

I think the code doing this is in Print/Object.pm sub discover_horizontal_shells

                # assign resulting inner surfaces to layer
                my $neighbor_fill_surfaces = $self->layers->[$n]->fill_surfaces;
                @$neighbor_fill_surfaces = ();
                push @$neighbor_fill_surfaces, Slic3r::Surface->new
                    (expolygon => $_, surface_type => S_TYPE_INTERNAL)
                    for @$internal;

changing the surface_type here to S_TYPE_INTERNALSOLID fixes the problem for me (if on the 2nd layer)

                # assign resulting inner surfaces to layer
                my $neighbor_fill_surfaces = $self->layers->[$n]->fill_surfaces;
                @$neighbor_fill_surfaces = ();
                push @$neighbor_fill_surfaces, Slic3r::Surface->new
                    (expolygon => $_, surface_type => ($i > 2)?S_TYPE_INTERNAL:S_TYPE_INTERNALSOLID)
                    for @$internal;

after gcode

@brackendawson

I also have this issue, on the Ecksbot bar clamp it forgets solid layer 2 and 3 entirely.

Part: http://www.thingiverse.com/thingiview:168085

Settings:
alan@X121e ~ $ cat BlackPLA_BFB.ini
acceleration = 0
bed_size = 180,200
bed_temperature = 60
bridge_fan_speed = 100
bridge_flow_ratio = 1
bridge_speed = 60
brim_width = 0
complete_objects =
cooling =
disable_fan_first_layers = 1
duplicate = 1
duplicate_distance = 6
duplicate_grid = 1,1
end_gcode = G1 F200\nG1 Y200 ; move part out front\nM140 S0 ; turn off bed\nM104 S100 ; set extruder to 100C\nM116 ; wait for 100C with fan on\nM104 S0 ; turn off temperature\nM84 ; disable motors\nM81 ; disable PSU
extra_perimeters = 1
extruder_clearance_height = 30
extruder_clearance_radius = 15
extrusion_axis = E
extrusion_multiplier = 1.00
extrusion_width = 0
fan_always_on = 0
fan_below_layer_time = 60
filament_diameter = 2.91
fill_angle = 45
fill_density = 0.2
fill_pattern = rectilinear
first_layer_bed_temperature = 60
first_layer_extrusion_width = 0
first_layer_height = 100%
first_layer_speed = 30%
first_layer_temperature = 185
g0 = 0
gcode_arcs = 0
gcode_comments = 0
gcode_flavor = reprap
infill_acceleration = 50
infill_every_layers = 1
infill_extrusion_width = 1.2
infill_speed = 60
layer_gcode =
layer_height = 0.25
max_fan_speed = 100
min_fan_speed = 35
min_print_speed = 10
notes = Original batch of black PLA from BitsFromBytes.\n\nPrints fine at 185 if the extruder is PROPERLY TIGHT!\n\nExt multi @ 1.23 is 0.35/0.37mm, but up to 0.45 in the curves and down to 0.32 on the long streights. Maybe a tweak to the accel needed.
nozzle_diameter = 0.35
output_filename_format = [input_filename_base].gcode
perimeter_acceleration = 25
perimeter_speed = 30
perimeters = 3
perimeters_extrusion_width = 0
post_process = afterslicer.pl
print_center = 90,100
randomize_start = 1
retract_before_travel = 2
retract_length = 0.8
retract_lift = 0
retract_restart_extra = 0
retract_speed = 60
rotate = 0
scale = 1
skirt_distance = 6
skirt_height = 1
skirts = 1
slowdown_below_layer_time = 15
small_perimeter_speed = 30
solid_fill_pattern = rectilinear
solid_infill_speed = 60
solid_layers = 3
start_gcode = G28 ; home all axes
support_material = 0
support_material_angle = 0
support_material_pattern = rectilinear
support_material_spacing = 2.5
support_material_threshold = 45
support_material_tool = 0
temperature = 185
threads = 2
top_solid_infill_speed = 50
travel_speed = 200
use_relative_e_distances =
z_offset = 0

@alexrj
Owner

@markspace, thank you for providing such good test case and screenshots. They're very helpful. I'm looking into this now.

@alexrj
Owner

Fixed!

@alexrj alexrj closed this Dec 21, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment