Commit Graph

123 Commits

Author SHA1 Message Date
Alessandro Ranellucci
08a0bbd7f0 Optimization: split meshes automatically when avoid_crossing_perimeters is enabled, so that we reduce the complexity of the MotionPlanner graphs. This commit includes a very large refactoring of the Model class which is now responsible for duplication and arrangement 2013-05-18 16:48:26 +02:00
Alessandro Ranellucci
c2301c5796 Don't extend solid layers when fill density is 0 2013-04-29 15:55:50 +02:00
Mark Hindess
407de02fe4 Use binary search for get_layer_range.
Gives a 13% speed up on Teethy_Tiki.stl (thing:49334) with default settings
on my laptop.
When $self->layers->[0]->slice_z == $min_z the returned $min_layer value is
0 rather than the (incorrect?) -1 returned by the old code.
2013-04-18 19:29:05 +01:00
Alessandro Ranellucci
e088d9b3f7 Cache Slic3r::Fill object 2013-04-18 18:40:59 +02:00
Alessandro Ranellucci
430c825918 Align rectilinear and line infill across layers (new implementation). #712 2013-04-18 17:34:21 +02:00
Alessandro Ranellucci
04d2231901 Bugfix: is_printable() wasn't discarding narrow ring-shaped top/bottom surfaces because it was only considering the contour. This caused extra shell material even in hollow prints. #1049 2013-03-30 11:22:12 +01:00
Alessandro Ranellucci
1b79b1cb20 Refactoring: use the clone() method for inflating Surface objects 2013-03-29 19:18:06 +01:00
Alessandro Ranellucci
6bc5de0b5d Allow custom ranges with layer_height = 0 2013-03-24 15:26:55 +01:00
Alessandro Ranellucci
0b81911cff Bugfix: artifacts near walls. #1049 2013-03-18 17:55:16 +01:00
Alessandro Ranellucci
8ce31c2a2b Don't exclude any infill under internal bridges; revert infill pattern to rectilinear for internal bridges. #240 2013-03-18 13:32:19 +01:00
Alessandro Ranellucci
1064c9bb2a Merge branch 'master' into grow-narrow
Conflicts:
	lib/Slic3r/Fill.pm
	lib/Slic3r/Print/Object.pm
2013-03-17 02:30:20 +01:00
Alessandro Ranellucci
83065b0789 Bugfix: wrong flow and bad pattern rotation when infill-every-layers was set to an arbitrary high value 2013-03-17 01:10:40 +01:00
Alessandro Ranellucci
04c0caad0b Fix honeycomb infill overlap with perimeters 2013-03-17 00:57:58 +01:00
Alessandro Ranellucci
35bd5a3423 New --solid-infill-extrusion-width option 2013-03-17 00:02:31 +01:00
Alessandro Ranellucci
c13d9e9fb3 Don't collapse overhangs too early 2013-03-16 21:51:38 +01:00
Alessandro Ranellucci
0f5064dd32 Untested fix for incomplete honeycomb support material. #1032 2013-03-16 21:10:12 +01:00
Alessandro Ranellucci
25554a345f Reorder object copies using a nearest neighbor search 2013-03-16 20:56:14 +01:00
Alessandro Ranellucci
10b6bc9d15 Removed keep_meshes 2013-03-16 19:39:00 +01:00
Alessandro Ranellucci
f4b8185698 Fixed typo preventing support material to work with new simplify() syntax 2013-03-16 19:11:49 +01:00
Alessandro Ranellucci
33b40eda18 Always fix self-intersecting polygons that Douglas-Peucker might return 2013-03-16 18:42:56 +01:00
Alessandro Ranellucci
0f8ca6191a Merge branch 'master' into grow-narrow 2013-03-16 16:22:03 +01:00
Alessandro Ranellucci
dc0f706789 Bugfix: simplification of support areas could lead to complex polygons with bad orientation, thus causing wrong pattern clipping. #1032 2013-03-14 14:27:08 +01:00
Alessandro Ranellucci
d9b82c79da Grow narrow infill regions into void - to be tested more 2013-03-13 01:03:54 +01:00
Alessandro Ranellucci
6058384978 Fixed regression causing crash when support material threshold angle was defined. #1048 2013-03-12 19:39:43 +01:00
Alessandro Ranellucci
999af84c54 Don't make internal bridges when fill_density == 1. #1045 2013-03-11 18:41:12 +01:00
Alessandro Ranellucci
0eecf33198 Bugfix: narrow solid shells were collapsed when spacing was added before generating infill, so we grow them 2013-03-11 18:37:01 +01:00
Alessandro Ranellucci
b7945ac790 Finished new extra perimeters implementation 2013-03-11 14:23:16 +01:00
Alessandro Ranellucci
74e21d7a04 New implementation of extra perimeters - to test 2013-03-10 19:08:36 +01:00
Alessandro Ranellucci
f670acb4b1 Slice a single object with multiple layer heights. :-) 2013-03-10 14:58:49 +01:00
Alessandro Ranellucci
17cbca5e06 Factor out layer height in support material generation 2013-03-10 12:22:40 +01:00
Alessandro Ranellucci
2ab5fa9c72 Factor out layer height from combine_infill() 2013-03-10 12:08:18 +01:00
Alessandro Ranellucci
2275de9f0d Factored out the layer height logic 2013-03-10 11:37:16 +01:00
Alessandro Ranellucci
36d24ccb0b Infill refactoring and cleanup complete 2013-03-07 15:47:32 +01:00
Alessandro Ranellucci
a9df56670f Bugfix: internal-bridge regions were not touching perimeters 2013-03-05 19:33:06 +01:00
Alessandro Ranellucci
a9090688f9 Refactor bridge flow to Slic3r::Flow::Bridge class 2013-02-27 10:43:50 +01:00
Alessandro Ranellucci
d00c2882c4 Remove debug line slipped into last commit 2013-02-27 10:30:05 +01:00
Alessandro Ranellucci
37be4f7319 Some cleanup for detect_surfaces_type() 2013-02-26 20:52:13 +01:00
Alessandro Ranellucci
f4e8cdbf36 Better logic for extra perimeters 2013-02-26 20:00:05 +01:00
Alessandro Ranellucci
bd76e7677c Adjust extra perimeters 2013-02-24 17:04:19 +01:00
Alessandro Ranellucci
c3dde74776 Fix brim and extra perimeters after recent changes to ->slices 2013-02-24 16:40:14 +01:00
Alessandro Ranellucci
de0c2febd9 Remove useless lines 2013-02-23 23:50:46 +01:00
Alessandro Ranellucci
08a72c0824 Use bridge math for the first solid infill layer above sparse infill. #240 2013-02-23 21:39:13 +01:00
Alessandro Ranellucci
5eade0f9e1 Don't validate the number of layers for infill combination, just limit it automatically. #993 2013-02-22 16:24:24 +01:00
Alessandro Ranellucci
91bcfc8a74 Remove $Slic3r::flow and $Slic3r::first_layer_flow 2013-02-22 16:08:11 +01:00
Alessandro Ranellucci
b9c84490b8 Get rid of most calls to $Slic3r::flow 2013-02-19 12:37:26 +01:00
Alessandro Ranellucci
6dc62d3cf2 Disable extra perimeters if fill density is zero as they wouldn't be supported by anything and would just float inside the object. infill_only_where_needed should be the method of choice for hollow objects 2013-02-19 12:37:26 +01:00
Mike Sheldrake
c2f04f2861 avoid overlap of single layer and multilayer fill
A single-layer rectilinear or honeycomb fill under a low slope
wall/ceiling or extra perimeter will stick out from under the
overhang, because those fills get extended beyond their fill_surface
boundaries to purposely overlap perimeters. This causes interference
with multil-layer fills. This commit clips the single layer fill
boundaries a bit more where they interface with multi-layer fill
boundaries, to avoid overlap.
2013-02-18 07:26:19 -08:00
Mike Sheldrake
9a86edc70c account for extrusion width when clearing layers for combined infill
Otherwise you get extraneous fill up against sloped walls in regions
of layers that should not have fill, like in #834.
2013-02-16 07:53:47 -08:00
Alessandro Ranellucci
c9b506fa02 New simpler and more robust implementation of infill every 'n' layers 2013-02-10 12:40:43 +01:00
Alessandro Ranellucci
cac79c0575 New option to only infill where strictly needed for supporting ceilings 2013-02-09 23:36:32 +01:00