Commit Graph

179 Commits

Author SHA1 Message Date
Alessandro Ranellucci
ab6b3d41a7 XS interface completed, including new Line class 2013-07-15 22:57:22 +02:00
Alessandro Ranellucci
9af2a1c007 Use XS Point everywhere 2013-07-15 20:31:43 +02:00
Alessandro Ranellucci
f612d4c64e Ported ExtrusionPath to XS. Failing test for Surface 2013-07-15 12:14:22 +02:00
Alessandro Ranellucci
a1e4bda670 Have Clipper.pm only return ExPolygon::XS objects 2013-07-07 15:17:09 +02:00
Alessandro Ranellucci
8061cc6e30 Optimization in Polyline instantiation 2013-07-05 14:44:41 +02:00
Alessandro Ranellucci
cd1a39397b Optimize concentric loops 2013-06-23 00:50:44 +02:00
Alessandro Ranellucci
78f1527ab7 Compensate perimeter/infill overlap for concentric infill 2013-06-23 00:37:04 +02:00
Alessandro Ranellucci
45611d6742 Fix connection algorithm for rectilinear infill as sometimes it wasn't connecting segments correctly 2013-06-16 18:05:56 +02:00
Alessandro Ranellucci
32aafd2eb9 Temporary workaround until Boost::Geometry::Utils 0.14 is available 2013-06-16 15:11:39 +02:00
Alessandro Ranellucci
258842b845 New logic for connecting honeycomb loops 2013-06-16 13:31:10 +02:00
Alessandro Ranellucci
9ff85898b1 New logic for connecting honeycomb paths 2013-06-16 13:26:57 +02:00
Alessandro Ranellucci
961586fe8f Rewrite honeycomb infill so that it only generates the pattern for the bounding box of the region instead of the full print, so reduce complexity of the clipping routine 2013-06-16 13:13:52 +02:00
Alessandro Ranellucci
ac4a0bcdd8 Refactoring: use Slic3r::Geometry::BoundingBox objects everywhere 2013-06-16 12:21:25 +02:00
Alessandro Ranellucci
8d9d023dd7 Merge branch 'honeycomb-clipping' 2013-06-15 18:10:16 +02:00
Alessandro Ranellucci
627debf284 Scale bounding_box by sqrt(2) in honeycomb too to ensure it will cover the object even after rotation, like we already did for Rectilinear 2013-05-19 11:25:41 +02:00
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
a73020c10e Faster implementation of concentric infill, with loop order reversed so that smaller loops will be printed at the end. #898 2013-05-13 21:22:57 +02:00
Alessandro Ranellucci
6842114d3d Fix for rectilinear infill failing in plates with new caching 2013-04-26 17:14:30 +02:00
Alessandro Ranellucci
850690cf79 Minor optimization 2013-04-18 17:36:06 +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
bd3384525e Revert "Align rectilinear and line infill across layers. #712"
This reverts commit a0a54ea706.
2013-04-15 11:33:24 +02:00
Alessandro Ranellucci
a0a54ea706 Align rectilinear and line infill across layers. #712 2013-04-11 19:36:49 +02:00
Alessandro Ranellucci
769ec0cb03 Better clipping of honeycomb paths 2013-03-26 13:04:57 +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
0f5064dd32 Untested fix for incomplete honeycomb support material. #1032 2013-03-16 21:10:12 +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
2963e54d21 Use the faster polygon_multi_linestring_intersection() 2013-01-28 00:32:19 +01:00
Alessandro Ranellucci
1774143011 Bugfix: PlanePath fill patterns were not working anymore. #880 2012-12-31 14:11:36 +01:00
Alessandro Ranellucci
aff0898f35 Typo 2012-11-16 18:24:09 +01:00
Alessandro Ranellucci
86f5cb8654 Previous commit about bridge spacing was incomplete 2012-11-16 18:10:09 +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
cec7bf815c Get rid of the ExtrusionLoop objects in concentric filler 2012-10-30 15:29:13 +01:00
Alessandro Ranellucci
20e73face2 Get rid of max_print_dimension in filler objects 2012-10-30 15:09:54 +01:00
Alessandro Ranellucci
6c97e588b1 Don't require the print object in filler objects 2012-10-30 14:34:41 +01:00
Alessandro Ranellucci
5943114574 Only take layer_id instead of layer in filler objects 2012-10-30 14:25:48 +01:00
Alessandro Ranellucci
61047f0df5 Define perimeter/infill overlap over spacing instead of width and increase it slightly to compensate 2012-10-30 14:21:59 +01:00
Alessandro Ranellucci
610862a97f Use the actual flow spacing for clipping concentric loops 2012-10-30 14:17:30 +01:00
Alessandro Ranellucci
0a5016a509 Cleaner usage of the PI constant 2012-10-30 14:15:48 +01:00
Alessandro Ranellucci
be7e211bb6 Make flow_spacing required for ExtrusionPath objects 2012-10-30 14:07:01 +01:00
Alessandro Ranellucci
f2389682b6 Factor out some hard-coded settings 2012-10-29 00:23:33 +01: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
0990a9418c Bugfix: honeycomb infill was overlapping too much with perimeters. #732 2012-10-22 13:38:37 +02:00
Alessandro Ranellucci
bbe0a45b58 Optimization: cache scaled flow width and spacing 2012-09-23 03:03:08 +02:00
Alessandro Ranellucci
e0d5f4e528 Replace 'scale epsilon' with 'scaled_epsilon' 2012-09-12 15:22:43 +02:00
Alessandro Ranellucci
bb5f00cf0c Bugfix: extrusion width setting for support material was only affecting the path spacing but not the actual flow. #666 2012-09-12 12:13:43 +02:00
Alessandro Ranellucci
ba58e0733f Avoid backwards moves when doing honeycomb infill. #492 2012-08-24 19:19:45 +02:00
Alessandro Ranellucci
5281b101f9 Some infill paths were still disconnected, causing unnecessary retractions 2012-08-24 18:59:23 +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
1697cb24a6 Memory optimization and code cleanup. Don't keep deserialized paths 2012-07-20 14:39:56 +02:00
Alessandro Ranellucci
9e77e6e8b6 Removed comment about the shortest path search for honeycomb not being useful: it is. #512 2012-07-04 10:02:45 +02:00
Mark Hindess
35ecd65e77 Implement nearest point index and split at index to avoid search for point. 2012-07-02 20:26:56 +01:00
Alessandro Ranellucci
0372d06247 Releasing 0.8.4 2012-06-24 16:50:09 +02:00
Alessandro Ranellucci
f88f516c30 Optimize honeycomb travels 2012-06-24 16:09:24 +02:00
Alessandro Ranellucci
bf1aba3d08 New --support-material-pattern and --support-material-angle options 2012-06-23 22:43:23 +02:00
Alessandro Ranellucci
53d24bc580 Bugfix: some infill paths were not connected. #477 2012-06-23 20:27:28 +02:00
Alessandro Ranellucci
be8970b497 Fixed regression causing infill lines not being always connected near perimeters 2012-06-19 18:49:46 +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
74c00cdb7a Yes, recent memory optimizations broke concentric infill too 2012-05-19 23:47:36 +02:00
Alessandro Ranellucci
b360b2bcea Fixed regression causing side gaps in solid infill 2012-05-19 21:57:47 +02:00
Alessandro Ranellucci
aa9563f00b More constants, less strings => ess memory usage 2012-05-19 15:40:11 +02:00
Alessandro Ranellucci
4b7e9fc284 Fixed regression causing poor adhesion of rectilinear infill to perimeters 2012-05-04 20:51:09 +02:00
Alessandro Ranellucci
84d9368bf6 Bugfix: error on Honeycomb infill 2012-04-30 17:55:32 +02:00
Alessandro Ranellucci
d03925a18d New GUI with plating facilities 2012-04-30 14:56:01 +02:00
Alessandro Ranellucci
17a4426358 Fixed regression throwing fatal error with honeycomb infill 2012-04-29 18:05:23 +02:00
Alessandro Ranellucci
fc0fa0c738 Remove Rectilinear2 infill 2012-04-16 14:06:52 +02:00
Alessandro Ranellucci
d51ba94e8a Remove XXX from dependencies 2012-04-16 14:03:36 +02:00
Alessandro Ranellucci
cb182b8bc2 Honeycomb infill. #300 2012-04-16 11:55:14 +02:00
Alessandro Ranellucci
fc76104aa7 Merge branch 'boost-geometry' 2012-04-10 15:52:44 +02:00
Alessandro Ranellucci
a8adff53ca New implementation of support material 2012-04-09 22:06:30 +02:00
Alessandro Ranellucci
5bfe19a8b9 Huge speed Boost (pun intended). Also fixes a problem where infill was escaping perimeters sometimes (#305). 2012-04-09 11:04:32 +02:00
Alessandro Ranellucci
965a4e1bfd Make sure all concentric fill loops are extruded ccw. #298 2012-04-03 14:11:12 +02:00
Alessandro Ranellucci
64892c2203 Bugfix: fatal error on some models. #255 2012-03-10 23:49:24 +01:00
Alessandro Ranellucci
4a72c77150 Maximize fill/perimeter contact for line infill pattern 2012-03-04 11:45:45 +01:00
Alessandro Ranellucci
be9886eac3 Bugfix: fill escapes perimeters. #139 2012-03-04 11:26:11 +01:00
Alessandro Ranellucci
be0e1a6e0b Bugfix: fill escapes perimeters. However, we keep it disabled. #139 2012-02-25 22:41:53 +01:00
Alessandro Ranellucci
c98f6734c7 Code optimization 2012-02-25 22:18:07 +01:00
Alessandro Ranellucci
7b67fae686 Support material 2012-02-19 12:03:36 +01:00
Alessandro Ranellucci
4ade11b26e Some minor fixes related to polyline refactoring 2012-01-27 14:29:06 +01:00
Alessandro Ranellucci
00c6287488 Bugfix: fill escapes perimeters. #139 2012-01-21 17:11:14 +01:00
Alessandro Ranellucci
63972a3a35 Some more overlap 2012-01-21 16:35:23 +01:00
Alessandro Ranellucci
f1b1454b36 Loops were not closing well 2012-01-21 11:51:31 +01:00
Alessandro Ranellucci
0e23f20df1 Poor overlap between perimeters and infill 2012-01-21 11:48:03 +01:00
Alessandro Ranellucci
a3a9cf5749 Yet other things not changed when refactored. #163 2012-01-12 10:48:18 +01:00
Alessandro Ranellucci
b605381132 Bugfix: more errors in infills after refactoring. #162 2012-01-11 23:19:56 +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
ab0300bb70 Bugfix for recent solid infill adjustment math, to take float math into account 2011-12-22 18:55:18 +01:00
Alessandro Ranellucci
4af295bce3 Bugfix: very wrong infill for low density regions. #127 2011-12-19 09:55:03 +01:00
Alessandro Ranellucci
e5619ee543 Bugfix: not all paths were closed correctly due to float rounding 2011-12-18 11:53:15 +01:00
Alessandro Ranellucci
eca6d0b6d0 Adjust flow for solid surfaces when using concentric infill too. #120 2011-12-17 20:29:06 +01:00
Alessandro Ranellucci
6a3eeef83b Removed warnings for concentric infill. #121 2011-12-17 19:59:31 +01:00
Alessandro Ranellucci
f73febff7a Always start concentric infill from the center. #120 2011-12-17 19:56:56 +01:00
Alessandro Ranellucci
d63eabcfa5 Clip less from loops to avoid gaps 2011-12-17 19:54:35 +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
cd0fd80a69 Restore better perimeter/infill overlap for solid surfaces 2011-12-16 18:37:43 +01:00
Alessandro Ranellucci
8e06a4f6f2 Bugfix: fatal error when using concentric infill 2011-12-15 21:46:29 +01:00
Alessandro Ranellucci
18cfc15ead Restored a little overlap between perimeters and infill (we're only explicitely overlapping in the direction of infill lines, because side overlap is handled by the flow logic in Extruder.pm) 2011-12-15 20:21:34 +01:00
Alessandro Ranellucci
569e737ae1 Only connect infill edges when not doing solid surfaces 2011-12-13 17:36:03 +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