Commit Graph

164 Commits

Author SHA1 Message Date
Alessandro Ranellucci
67b415a2b3 Remove almost duplicated logic for small infill regions detection 2012-07-22 21:06:19 +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
3edf42e98e Little workflow simplification 2012-07-21 15:53:38 +02:00
Alessandro Ranellucci
f899deb6b6 Prevent internal infill at all when fill density is set to zero. #545 2012-07-21 14:41:21 +02:00
Alessandro Ranellucci
bce2663ed8 Restore thin walls and thin fills after last commit 2012-07-20 15:02:25 +02:00
Alessandro Ranellucci
1697cb24a6 Memory optimization and code cleanup. Don't keep deserialized paths 2012-07-20 14:39:56 +02:00
Alessandro Ranellucci
3714fbe0f9 Fixed regression causing random extrudates outside the object perimeter 2012-07-04 10:35:42 +02:00
Alessandro Ranellucci
566a0456ca Fixed regression causing objects to be 0.1mm larger. #495 #507 2012-07-03 20:34:19 +02:00
Alessandro Ranellucci
c4b9a6cf61 Bugfix: flow wasn't adjusted for perimeters when a custom perimeters extrusion width was applied 2012-07-01 18:13:48 +02:00
Alessandro Ranellucci
96a3234eaa Different speed for external perimeters. #488 2012-06-27 19:42:16 +02:00
Alessandro Ranellucci
ac08cf7469 Disable arc compensation code 2012-06-23 20:19:58 +02:00
Alessandro Ranellucci
44c636aea1 Do not oversimplify outer perimeters and keep the full resolution of the input file. #340 #462 2012-06-23 20:08:08 +02:00
Alessandro Ranellucci
ca8a91b2b0 Only apply arc compensation to circular holes. #418 2012-06-14 15:06:22 +02:00
Alessandro Ranellucci
c0c53c4397 Fill gaps. #281 2012-06-07 15:31:51 +02:00
Alessandro Ranellucci
85ef7ce665 Bugfix: many thin walls were not detected correctly. #313 2012-06-06 21:27:39 +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
16b774603c Accept either absolute or relative values for --first-layer-height. #151 2012-06-06 16:11:38 +02:00
Alessandro Ranellucci
2c28d2f874 Bugfix: with 0 solid layers, no infill was generated at all on fist and last layer. #325 2012-05-22 12:24:48 +02:00
Alessandro Ranellucci
494f4f94bf After recent memory optimizations, no solid layers were made when using fill density == 0 2012-05-20 17:28:53 +02:00
Alessandro Ranellucci
12c6e39837 Bugfix: hole compensation was making holes too large. #348 2012-05-19 23:12:21 +02:00
Alessandro Ranellucci
fa4f2c8b97 New option to randomize starting points across layers 2012-05-19 22:36:29 +02:00
Alessandro Ranellucci
b246480535 Massive reduction of memory usage (down to one third). 2012-05-19 17:57:38 +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
4bffa9cb6b Use perimeter length, not area, to detect small perimeters. #355 2012-05-14 00:30:52 +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
dde71418d4 Bugfix: skip arc compensation when holes are not round 2012-05-02 16:28:47 +02:00
Alessandro Ranellucci
d164d13517 Bugfix: arc compensation code was filling some small holes 2012-05-01 19:19:31 +02:00
Alessandro Ranellucci
710275f7c0 Reverse perimeter order for holes. #214 2012-05-01 15:33:24 +02:00
Alessandro Ranellucci
da43cd70b2 Prevent tiny extrusion points. #323 2012-05-01 15:25:35 +02:00
Alessandro Ranellucci
21893efa68 Removed a debugging statement left in, preventing hole compensation 2012-05-01 15:09:32 +02:00
Alessandro Ranellucci
ee33d570d7 Use Douglas-Peucker simplification always and remove the inefficient parallel lines merging algorithm. #277 2012-05-01 11:41:08 +02:00
Alessandro Ranellucci
a165ad4ecb Large memory saving and speed boost 2012-05-01 10:53:52 +02:00
Alessandro Ranellucci
ed4a5739f6 Multiple objects autoplating (--merge, from command line only) 2012-04-29 12:51:20 +02:00
Alessandro Ranellucci
96d5e513b8 Rename $Slic3r::resolution to $Slic3r::scaling_factor 2012-04-16 14:05:38 +02:00
Alessandro Ranellucci
d51ba94e8a Remove XXX from dependencies 2012-04-16 14:03:36 +02:00
Alessandro Ranellucci
1845abab70 Bugfix: warnings when trying to process bridges with no anchors 2012-04-12 10:30:54 +02:00
Alessandro Ranellucci
70e69be60a Bugfix: support material was generated under most bridges 2012-02-25 21:39:01 +01:00
Alessandro Ranellucci
375829204f Removed the bogus hole code which is not necessary anymore. Also fixes #160 2012-02-19 16:02:58 +01:00
Alessandro Ranellucci
7b67fae686 Support material 2012-02-19 12:03:36 +01:00
Alessandro Ranellucci
eb33c03926 Bugfix: flow wasn't adjusted for first layer according to its height setting. #182 2012-01-30 14:03:12 +01:00
Alessandro Ranellucci
c5b6787a19 Print the number of bogus holes to debug output 2012-01-21 11:24:26 +01:00
Alessandro Ranellucci
d1ad02cc71 Removed one more fatal error caused by recent refactoring 2012-01-18 19:28:49 +01:00
Alessandro Ranellucci
bba91fc0a5 Some better debug messages and a note about self-intersecting polygons. #160 2012-01-18 18:59:34 +01:00
Alessandro Ranellucci
90d10b24a8 Fill gaps using medial axis detection 2012-01-12 22:05:35 +01:00
Alessandro Ranellucci
5fefcc0dc4 More fixes after refactoring 2012-01-11 23:14:59 +01:00
Alessandro Ranellucci
468f09d3c1 Bugfix: small surfaces where still infilled even with fill_density = 0 2012-01-11 22:38:06 +01:00
Alessandro Ranellucci
0184b0f205 Fixed many little things that were not updated along with recent large refactoring. #157 #144 2012-01-11 20:13:26 +01:00
Alessandro Ranellucci
8ed91a8ec4 Very large refactoring. Ditched Slic3r::Polyline::Closed and reorganized geometric classes. 2011-12-30 19:59:51 +01:00
Alessandro Ranellucci
f08ebe97b2 Bugfix: fatal error for some models and thin walls not considered for skirt 2011-12-30 18:51:48 +01:00
Alessandro Ranellucci
1c7564e4a4 Thin walls. #24 2011-12-30 17:17:37 +01:00
Alessandro Ranellucci
a86bc260e7 Bugfix: some islands having ho holes and contained in holes themselves were ignored 2011-12-24 11:01:28 +01:00
Alessandro Ranellucci
98a8c64ed7 Extended (and fixed) unit testing to track down (and fix) an issue caused by floating point math that reversed some holes into contours when they should actually be ignored 2011-12-22 11:24:46 +01:00
Alessandro Ranellucci
fbea5dae8f Bugfix: consider holes when searching for supporting surfaces 2011-12-20 22:37:59 +01:00
Alessandro Ranellucci
e2a5c2119f Bugfix: some holes were skipped 2011-12-19 12:09:14 +01:00
Alessandro Ranellucci
1e6ecd9eab Corrections to math. Threads are not always rectangles with semicircles. Better calculation of overlap. 2011-12-17 19:52:34 +01:00
Alessandro Ranellucci
4bee1a12b8 Take overlap into account for external dimensions 2011-12-14 11:21:43 +01:00
Alessandro Ranellucci
56691c1dea Model extrusion threads as rectangles with semicircles at the end. Remove overlap_ratio setting. #109 #112 2011-12-13 17:34:31 +01:00
Alessandro Ranellucci
0a74e068a3 Merge branch 'infill-overlap' 2011-12-08 10:53:24 +01:00
Alessandro Ranellucci
d9a70ea80d Customizable overlap ratio (it defaults to 0.15 now) 2011-12-08 10:53:07 +01:00
Alessandro Ranellucci
1f64a01ed4 Remove empty layers from bottom. They could be caused by little contact with the print bed, resulting in the need of thin walls. While thin walls will be supported one day, it's still not optimal to have so little contact on bottom layer(s), so we remove such layers. #96 2011-12-08 10:25:19 +01:00
Alessandro Ranellucci
2ba513bdb2 Bugfix: after recent changes, objects had slight dimension errors. #56 2011-12-05 18:48:48 +01:00
Alessandro Ranellucci
eb64cc4965 More fixes for bridges. #58 2011-12-04 18:37:37 +01:00
Alessandro Ranellucci
d056535bd8 Further corrections to the bridge angle detection algorithm. #58 2011-12-04 17:19:03 +01:00
Alessandro Ranellucci
4fe340cc56 Many fixes to the bridge direction detection algorithm and other things. #58 2011-12-03 18:31:31 +01:00
Alessandro Ranellucci
792960aae1 Slic3r should now be able to detect optimal bridging direction for any kind of bridge. #58 2011-12-02 23:35:39 +01:00
Alessandro Ranellucci
f7a9c9be63 Bugfix: sometimes holes were detected as contours 2011-12-01 20:57:38 +01:00
Alessandro Ranellucci
133f3a0495 Bugfix: Clipper error occurred under certain circumstances 2011-12-01 19:40:45 +01:00
Alessandro Ranellucci
b03afc7f1c Bugfix: some bridges were not detected correctly. #57 2011-11-30 20:32:28 +01:00
Alessandro Ranellucci
42383dec84 Warn about models with overlapping or intersecting facets but try to repair wrong layers. #16 2011-11-30 16:28:09 +01:00
Alessandro Ranellucci
d51a37a0ae Refactoring: moved slicing code to new TriangleMesh class, leaving in STL just what's needed to read that particular input format. Slic3r will now warn if model is not manifold. #16 2011-11-30 16:07:31 +01:00
Alessandro Ranellucci
d168ecbb4e Bugfix: fill density = 0 was preventing generation of extra solid layers. #75 2011-11-29 10:15:50 +01:00
Alessandro Ranellucci
4cdd0f6fd0 Bugfix: sparse and wrong infill was generated for objects with null fill density. Also fixed a division by zero. 2011-11-27 10:12:44 +01:00
Alessandro Ranellucci
8598b66b0a Large refactoring. Cleaner logic, smaller memory footprint. 2011-11-23 12:29:27 +01:00
Alessandro Ranellucci
13ef24b5eb Fixes, improvements and refactoring for bridges and solid surfaces. 2011-11-23 09:49:39 +01:00
Alessandro Ranellucci
84d9f5fd9d Bugfix: some regions near bridges were left blank. #58 2011-11-21 21:05:00 +01:00
Alessandro Ranellucci
36e1ea0caa Make sure bridges don't overlap. #58 2011-11-21 16:35:10 +01:00
Alessandro Ranellucci
74786185e4 Don't die on non-manifold models, after having tried the slower detection algorithm too. #16 2011-11-21 16:09:13 +01:00
Alessandro Ranellucci
bde3c11e82 Fixes to the new bridging algorithm. It appears to be working fine now 2011-11-20 22:09:59 +01:00
Alessandro Ranellucci
4540f2377d Some minor fixes for the new bridging logic #58 2011-11-19 17:31:00 +01:00
Alessandro Ranellucci
a1c766cc52 New bridging logic, more robust. #58 2011-11-19 16:44:24 +01:00
Alessandro Ranellucci
1a066caecc Compute bridge overlap as twice the total thickness of perimeters 2011-11-17 10:41:20 +01:00
Alessandro Ranellucci
580f42c1de Use the same bridging logic for "reverse bridges" (top surfaces) 2011-11-17 10:34:40 +01:00
Alessandro Ranellucci
47c0da8110 Bugfix: some solid layers were skipped. #47 2011-11-16 14:53:30 +01:00
Alessandro Ranellucci
75a71a23a5 New --first-layer-height-ratio option. #36 2011-11-13 19:08:19 +01:00
Alessandro Ranellucci
c5d5e4d244 Cleanup lines resulting from plane intersection before detecting polygons. This allows for more tolerance with dirty models. Performance impact depends on how many layers are detected as dirty. #16 #28 2011-11-12 10:18:20 +01:00
Alessandro Ranellucci
fec816b065 Collect undetected lines (caused by dirty or non-manifold models), warn the user, post debug info. Includes some further ExPolygon refactoring. 2011-11-11 10:21:48 +01:00
Alessandro Ranellucci
0b42139e54 Print first layer at Z = 1 * layer_height instead of zero like it was until now. #17 2011-11-07 16:04:27 +01:00
Alessandro Ranellucci
7f341cfcd3 New --fill-every-layers option to get high accuracy on external surfaces while speeding up infill 2011-10-18 15:57:53 +02:00
Alessandro Ranellucci
5090ae561c Refactored Perimeter code with new Slic3r::Polygon and Slic3r::ExPolygon objects
Large refactoring. Speed gains. Removed convex hull for bridges.
2011-10-15 21:14:13 +02:00
Alessandro Ranellucci
56619871b2 Bugfix: some bridges had wrong perimeters inside 2011-10-13 22:22:45 +02:00
Alessandro Ranellucci
c97a89c07c Refactored Line objects to arrayrefs 2011-10-12 16:27:40 +02:00
Alessandro Ranellucci
e410410dc7 Refactoring. Point objects are now plain arrayrefs. Slicing is 30% faster. 2011-10-12 14:54:49 +02:00
Alessandro Ranellucci
f01ddae974 Some compatibility bugs. Slic3r will still fail hard with non-manifold objects 2011-10-11 15:51:08 +02:00
Alessandro Ranellucci
34681af6ae Improvements for bottom and top surfaces perimeters 2011-10-10 16:31:37 +02:00
Alessandro Ranellucci
84abd41cf4 Fixes for bridges 2011-10-09 22:18:06 +02:00
Alessandro Ranellucci
459577f9a2 Completely rewritten the slicing algorithm
It should work with any model now. There are still problems with some
bridges.
2011-10-09 19:47:21 +02:00
Alessandro Ranellucci
ad27f25c71 Skeining algorithm totally rewritten 2011-10-08 19:02:05 +02:00
Alessandro Ranellucci
743f2abcf2 Detection of optimal infill direction for bridges. Includes many fixes and improvements. 2011-10-07 19:07:57 +02:00