Commit Graph

166 Commits

Author SHA1 Message Date
Alessandro Ranellucci
1187f4846d Some Clipper optimizations 2013-03-31 19:40:25 +02:00
Alessandro Ranellucci
d4119b0eb1 Better bridge direction detection. #1068 2013-03-29 23:49:58 +01:00
Alessandro Ranellucci
1b79b1cb20 Refactoring: use the clone() method for inflating Surface objects 2013-03-29 19:18:06 +01:00
Alessandro Ranellucci
aae9625a13 Bugfix: solid-infill-below-area wasn't ignored when fill_density = 0, causing solid layers here and there. #1049 2013-03-26 15:47:40 +01:00
Alessandro Ranellucci
7ec6c6ffba Lower 0.5*w to 0.4*w to fill finer gaps. #1057 2013-03-19 16:08:19 +01:00
Alessandro Ranellucci
35bd5a3423 New --solid-infill-extrusion-width option 2013-03-17 00:02:31 +01:00
Alessandro Ranellucci
db2e76a0df New option to change perimeter order. #534 2013-03-16 18:56: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
b7945ac790 Finished new extra perimeters implementation 2013-03-11 14:23:16 +01:00
Alessandro Ranellucci
caa79583ff Tiny optimization 2013-03-09 17:08:17 +01:00
Alessandro Ranellucci
fa41e15c68 Fixed regression causing thin walls to be processed twice, thus producing overlapping straight paths and zigzag. #1035 2013-03-09 17:07:11 +01:00
Alessandro Ranellucci
2f192bddca Make tests happy 2013-03-07 16:24:25 +01:00
Alessandro Ranellucci
97e864699e New top-infill-extrusion-width option 2013-03-07 16:00:58 +01:00
Alessandro Ranellucci
36d24ccb0b Infill refactoring and cleanup complete 2013-03-07 15:47:32 +01:00
Alessandro Ranellucci
d928f005e6 Some incomplete work for cleaner infill logic 2013-03-05 20:03:46 +01:00
Mike Sheldrake
28467b68e0 typo - fix wrong bridge direction #621
fixes two out of three reported in #621 (but not the first one)
likely the same issue in #706 and #1003
2013-02-27 15:16:07 -08:00
Alessandro Ranellucci
919d1131f8 Use nearest-neighbor search for internal perimeters too. #1025 2013-02-27 11:04:14 +01:00
Alessandro Ranellucci
a9090688f9 Refactor bridge flow to Slic3r::Flow::Bridge class 2013-02-27 10:43:50 +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
0634437364 Keep the full geometries in $layer->slices, including thin walls 2013-02-23 18:21:29 +01:00
Alessandro Ranellucci
28638019ae Bugfix: perimeter/infill overlap was calculated regardless of the infill extrusion width. #994 2013-02-22 18:23:23 +01:00
Alessandro Ranellucci
bec2371604 Fix regression introduced in 91bcfc8a74 2013-02-22 16:56:43 +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
cac79c0575 New option to only infill where strictly needed for supporting ceilings 2013-02-09 23:36:32 +01:00
Alessandro Ranellucci
26a3cd5542 Refactor chained_path(), add chained_path_items() and chained_path_points() 2013-02-06 12:03:53 +01:00
Alessandro Ranellucci
090e3b1fe3 Rename shortest_path to chained_path, which reflects its algorithm more correctly 2013-02-05 17:27:45 +01:00
Alessandro Ranellucci
ecc7e4560e Don't fill gaps if fill density is 0. #915 2013-01-17 10:39:05 +01:00
Mike Sheldrake
73aae07e74 842, 847 slightly enlarge a clip polygon to counteract integer truncation
Geomery in referenced issues triggered Clipper problems, but also
pointed to a situation where integer truncation (as coordinates pass
into Clipper) might be shrinking a clip polygon in a way that leaves
degenerate or unwanted thin clip results. Growing the clip polygon by 2
is expected to overcome any issues caused by truncation of floats.
2013-01-11 10:15:42 -08:00
Alessandro Ranellucci
141a8d3989 Bugfix: some holes being closed incorrectly. #858 2012-12-30 17:57:30 +01:00
Alessandro Ranellucci
6e6bc74636 Added failing test case for troubleshooting unexpected filled holes. #858 2012-12-30 16:27:20 +01:00
Alessandro Ranellucci
0da71dbdfa Fix regression causing wrong number of solid shells when using fill_density = 0 (includes regression test) 2012-12-23 20:20:17 +01:00
Alessandro Ranellucci
15f07197d8 Don't store ->surfaces anymore. Save memory, save time 2012-12-22 23:57:39 +01:00
Alessandro Ranellucci
b70404bb23 Disable gap filling if gap fill speed is set to zero 2012-12-17 19:55:25 +01:00
Alessandro Ranellucci
283809f5c2 No need for a role to identify small perimeters 2012-12-05 10:47:41 +01:00
Alessandro Ranellucci
8ae96a8868 Only apply vibration limit to gaps fill while it's not very mature to work with long segments 2012-11-21 19:27:38 +01:00
Alessandro Ranellucci
cd892fdce8 Connect zigzag gaps fill paths to benefit from simplification 2012-11-19 18:57:42 +01:00
Alessandro Ranellucci
c99ff0cfe2 Apply Douglas-Peucker to all paths before generating G-code 2012-11-18 17:38:08 +01:00
Alessandro Ranellucci
a1a12ffe8e Allow setting top-solid-layers and bottom-solid-layers to 0 independently 2012-11-16 12:37:47 +01:00
Alessandro Ranellucci
b625c3b2b2 Simplify gaps fills to avoid some shaking 2012-11-16 10:47:42 +01:00
Alessandro Ranellucci
68e1edab80 Require Math::Clipper 1.14 and increase scale factor for offset(). #720 2012-11-05 00:17:46 +01:00
Alessandro Ranellucci
93a8391e18 Alternate gaps fill direction 2012-11-01 11:53:18 +01:00
Alessandro Ranellucci
37c0b45187 Detect gaps even after the desired number of perimeters has been generated 2012-11-01 11:51:52 +01:00
Alessandro Ranellucci
cb4ede7f9e Do not pass the Print object to SVG::output anymore 2012-11-01 11:34:53 +01:00
Alessandro Ranellucci
554d10c854 Only put ExtrusionPath objects in ExtrusionPath::Collection (no ExtrusionLoop objects) 2012-10-31 19:08:29 +01:00
Alessandro Ranellucci
44d91774a6 Get rid of useless Slic3r::Fill instances 2012-10-30 15:38:17 +01:00
Alessandro Ranellucci
1ecadc10fb Fixed regression causing one perimeter to be generated even when perimeters where set to 0. #759 2012-10-28 19:27:54 +01:00
Alessandro Ranellucci
f35cdef2aa Renamed ExtrusionPath->depth_layers to height 2012-10-28 14:22:51 +01:00
Alessandro Ranellucci
f9b6caaecb Bugfix, last commit was incomplete 2012-10-28 12:22:30 +01:00
Alessandro Ranellucci
a0fe93e8cf Bugfix: sometimes first layer extrusion width was not applied 2012-10-28 10:28:40 +01:00
Alessandro Ranellucci
49916b6178 Revert 2bcac88683 by setting the scale factor manually to 1. #720 2012-10-27 22:09:22 +02:00
Alessandro Ranellucci
f9e20db156 Update t/dynamic.t 2012-10-27 21:20:32 +02:00
Alessandro Ranellucci
cee3864fc9 Independently set number of top/bottom solid layers. #676 2012-10-25 12:21:04 +02:00
Alessandro Ranellucci
f0d2b0e5ea Avoid overlapping regions (thanks Mike Sheldrake!). #726 2012-10-24 16:46:40 +02:00
Alessandro Ranellucci
1c50c8a401 Merge branch 'dynamic-flow' 2012-10-24 16:19:13 +02:00
Alessandro Ranellucci
6beaf5e597 New faster algorithm for filling gaps, while we work on a new medial axis implementation 2012-10-24 16:17:09 +02:00
Alessandro Ranellucci
1445820673 External perimeter first on bottom layer when brim is enabled. #761 2012-10-24 12:04:44 +02:00
Alessandro Ranellucci
19e77a28a1 Merge branch 'master' into dynamic-flow 2012-10-24 10:55:57 +02:00
Alessandro Ranellucci
b92642459f Merge branch 'master' into dynamic-flow
Conflicts:
	lib/Slic3r/Flow.pm
	lib/Slic3r/Layer.pm
2012-10-04 15:23:19 +02:00
Mike Sheldrake
2bcac88683 Increase scale factor for Clipper::offset
A default scale of 1 was being calculated most of the time. That's too
low to avoid artifacts from offsetting concave curves. Setting scale to
a default of 100000 eliminates artifacts in the test cases in issues
#700, #702 and #703. There is a risk of large point proliferation with
this scale in combination with the JT_ROUND option, but in the four
places where that option is used, scale is already explicitly set to a
safer low value.
2012-09-27 05:50:54 -07:00
Alessandro Ranellucci
bbe0a45b58 Optimization: cache scaled flow width and spacing 2012-09-23 03:03:08 +02:00
Alessandro Ranellucci
ec0d3987db Rename materials to regions 2012-09-23 02:52:31 +02:00
Alessandro Ranellucci
e696764af8 Assign extruders and flows to materials 2012-09-23 02:40:25 +02:00
Alessandro Ranellucci
e2ab340edb Fix positioning and other things 2012-09-22 21:03:57 +02:00
Alessandro Ranellucci
d488afd243 More work (breaks centering and internal surfaces detection) 2012-09-22 19:38:25 +02:00
Alessandro Ranellucci
02356fd613 Large refactoring to allow processing multimaterial files 2012-09-22 19:04:36 +02:00