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
Alessandro Ranellucci
cf8cfc1380
Bugfix: angle threshold was considered even when enforcing support
2013-02-09 21:49:00 +01:00
Alessandro Ranellucci
e593a30fc7
Skip support material for one-layer objects
2013-02-06 10:40:08 +01:00
Alessandro Ranellucci
4f91bed904
Optimize cycling in get_layer_range()
2013-02-05 21:59:18 +01:00
Alessandro Ranellucci
8efe46e58d
New option to enforce support material on a given number of layers to improve adhesion of objects with poor footprint
2013-02-04 15:48:57 +01:00
Alessandro Ranellucci
9222526e03
Customizable number of interface layers for support material and raft
2013-02-03 17:23:50 +01:00
Alessandro Ranellucci
acada05068
Merge branch 'raft'
2013-02-02 16:17:05 +01:00
Alessandro Ranellucci
c7b4d99d7e
Generate raft automatically even when support material is disabled
2013-02-02 16:16:43 +01:00
Alessandro Ranellucci
02c0f3658f
Use 50% density for support base flange
2013-02-02 15:37:09 +01:00
Alessandro Ranellucci
d3727a1699
Add ability to have cross-hatched rectilinear support material. #509
2013-02-02 00:14:45 +01:00
Alessandro Ranellucci
547dfb857d
Workaround for Boost clipping not being idempotent and causing lack of support material
2013-02-01 23:45:46 +01:00
Alessandro Ranellucci
eae1e7adc2
Make a solid base below support material on first layer
2013-02-01 22:13:12 +01:00
Alessandro Ranellucci
1de0169910
Multithreaded perimeter generation. #154
2013-01-31 15:44:55 +01:00
Alessandro Ranellucci
177f1a9bf0
New raft_layers option. #123
2013-01-28 14:12:01 +01:00
Alessandro Ranellucci
92feebf5fe
Fixed regression introduced in 4d8757bf5d
causing crash during support material generation
2013-01-17 12:32:57 +01:00
Alessandro Ranellucci
4d8757bf5d
Interface support layers were clipped badly. Also, reduce simplification of the clipping boundaries. #583
2013-01-17 11:59:14 +01:00
Mike Sheldrake
f3a1221039
per-thread clipper object for parallel support generation #888
2013-01-16 06:00:04 -08:00
Mike Sheldrake
85934e1738
use infill flow spacing, not perimeter, for combine_infill() clip offsets
2013-01-15 22:13:11 -08:00
Mike Sheldrake
bce3e96210
extraneous fill against sloped walls with fill every N layers #834
...
Polygons used for N x depth fill surfaces need to be offset
by flow spacing before they are reused to clip lower fill surfaces.
Otherwise thin fill sections remain on clipped layers against sloping
walls, and the N x depth fill collides with them.
2013-01-14 21:18:31 -08:00
Alessandro Ranellucci
34e047205a
Automatic detection of support material threshold angle
2013-01-02 19:40:48 +01:00
Alessandro Ranellucci
30d9b2e508
Refactoring: initialize all layers at once and avoid duplication of slicing height math. #637
2013-01-01 23:28:48 +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
5930267de9
Bugfix: some top/bottom solid shells are not treated as solid. #689
2012-12-21 20:25:48 +01:00
Alessandro Ranellucci
d5537e7797
Enable retraction for support material too, but only when moving away from support islands. #831
2012-12-20 18:47:40 +01:00
Alessandro Ranellucci
d6d96391a9
Avoid overextrusion when support material spacing is configured to < the extrusion spacing. #821
2012-11-23 17:15: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
44d91774a6
Get rid of useless Slic3r::Fill instances
2012-10-30 15:38:17 +01:00
Alessandro Ranellucci
709cbc1c15
Fixed regression causing support material generation to fail under threaded perls
2012-10-29 19:38:40 +01:00
Alessandro Ranellucci
ccb49a8439
Do a slightly thinner interface layer at the top of support material structures by taking into account the diameter of bridge extrudates (nophead's idea)
2012-10-28 16:59:20 +01:00
Alessandro Ranellucci
b5bd216f5c
Do not combine infill for bottom layer
2012-10-28 14:23:47 +01:00
Alessandro Ranellucci
f35cdef2aa
Renamed ExtrusionPath->depth_layers to height
2012-10-28 14:22:51 +01:00
Alessandro Ranellucci
2796041a6c
Bugfix: --top-solid-layers was ignored. #769
2012-10-28 12:52:53 +01:00
Alessandro Ranellucci
cee3864fc9
Independently set number of top/bottom solid layers. #676
2012-10-25 12:21:04 +02:00
Alessandro Ranellucci
3c7785aaf3
Useless extra perimeters were generated sometimes. #444 #732
2012-10-22 13:21:11 +02:00
Alessandro Ranellucci
c68862582c
Fix fatal error on empty layers caused by recent large refactorings
2012-09-28 15:48:32 +02:00
Alessandro Ranellucci
ab7697ec1c
New option to force a solid layer every given number of layers. #617
2012-09-28 15:46:29 +02: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
Alessandro Ranellucci
04be94023b
Refactoring: move the 'copies' property to each Print::Object
2012-09-22 16:19:24 +02:00
Alessandro Ranellucci
9bd1b0f6ba
Revert "Refactoring: initialize all layers at once and avoid duplication of slicing height math". #637
...
This reverts commit 08270022dd
.
2012-08-26 17:47:00 +02:00
Alessandro Ranellucci
08270022dd
Refactoring: initialize all layers at once and avoid duplication of slicing height math
2012-08-25 20:40:44 +02:00
Alessandro Ranellucci
a1ac866b84
Refactoring: turn x_length and y_length in size
2012-08-25 20:14:01 +02:00
Alessandro Ranellucci
7e34244b05
Refactored configuration handling.
...
Slic3r::Config is now an object. Multiple partial config objects are used throughout the codebase as local repositories, then merged and serialized when necessary.
2012-07-27 21:16:11 +02:00
Alessandro Ranellucci
1d04e15b63
Refactor/clean up. Merge remove_small_surfaces() into prepare_fill_surfaces(), rename infill_every_layers() to combine_infill(), remove $layer->fill_boundaries, initialize layer properties explicitely for clarity.
2012-07-22 21:00:02 +02:00
Alessandro Ranellucci
1697cb24a6
Memory optimization and code cleanup. Don't keep deserialized paths
2012-07-20 14:39:56 +02:00
Mark Hindess
b4a21bea40
Fix for #499 .
2012-06-29 17:02:37 +01:00
Alessandro Ranellucci
80501d5b3c
New option to customize support material extrusion width
2012-06-28 16:33:07 +02:00
Alessandro Ranellucci
a6dca1d82a
New option for support material pattern spacing; also, fixes and speedups to the overhang detection
2012-06-24 14:39:35 +02:00
Alessandro Ranellucci
36753d85b7
New option to define the overhang threshold angle for support material generation
2012-06-23 23:54:39 +02:00
Alessandro Ranellucci
1fb44474a9
Connect support material paths
2012-06-23 22:58:12 +02:00
Alessandro Ranellucci
bf1aba3d08
New --support-material-pattern and --support-material-angle options
2012-06-23 22:43:23 +02:00
Alessandro Ranellucci
410279823c
New separate option to control the addition of automatic extra perimeters. Also, add none if perimeters are set to 0. #459
2012-06-23 17:10:30 +02:00
Alessandro Ranellucci
a578af9d28
Fix support material
2012-06-21 11:51:24 +02:00
Alessandro Ranellucci
82dd3c7a3e
New --perimeters-extrusion-width and --infill-extrusion-width options. #302
2012-06-06 18:05:03 +02:00
Alessandro Ranellucci
8a031fe501
New --first-layer-extrusion-width option. #385
2012-06-06 17:29:12 +02:00
Alessandro Ranellucci
34e3dfdb08
Large memory savings (down to about 50%) for high-res input files
2012-05-28 19:58:27 +02:00
Alessandro Ranellucci
d550f3fb5f
Fixed regression preventing top solid shells to be computed
2012-05-20 13:03:34 +02:00
Alessandro Ranellucci
0bb487fe9f
Recent memory optimizations broke support material generation
2012-05-19 22:53:30 +02:00
Alessandro Ranellucci
882a022e3a
Even more constants, less memory, more speed
2012-05-19 16:04:33 +02:00
Alessandro Ranellucci
aa9563f00b
More constants, less strings => ess memory usage
2012-05-19 15:40:11 +02:00
Alessandro Ranellucci
edbdc5ec55
New automatic detection of additional required perimeters for better quality with domes and sloping walls. #198
2012-05-05 16:36:10 +02:00
Alessandro Ranellucci
abe048686b
More distance between object and support material. #343
2012-05-04 20:37:51 +02:00
Alessandro Ranellucci
847cf3c5b8
Bugfix: when slicing the same plate multiple times, the results contained old and duplicate data
2012-05-02 15:20:05 +02:00
Alessandro Ranellucci
d59d4a2c55
Bugfix: infill every N layers was consuming large amounts of memory when used with models having sloping walls. #259
2012-05-01 18:51:47 +02:00
Alessandro Ranellucci
b457089a1e
Bugfix: fatal error when using --debug
2012-05-01 12:09:46 +02:00
Alessandro Ranellucci
91d1b21c40
Use honeycomb pattern for support material
2012-04-30 23:50:38 +02:00
Alessandro Ranellucci
54e1d934a7
Fixed regression with support material
2012-04-30 23:36:49 +02:00
Alessandro Ranellucci
d03925a18d
New GUI with plating facilities
2012-04-30 14:56:01 +02:00
Alessandro Ranellucci
ed4a5739f6
Multiple objects autoplating (--merge, from command line only)
2012-04-29 12:51:20 +02:00