Alessandro Ranellucci
65b11fa850
Minor refactoring for better readability of perimeter generation logic
2012-08-24 21:58:51 +02:00
Alessandro Ranellucci
92518d28fc
New option to configure the threshold for enforcing solid infill. #224
2012-08-24 19:38:36 +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
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