Commit Graph

1689 Commits

Author SHA1 Message Date
Alessandro Ranellucci
47d347e1b2 Revert "Disable retraction when moving over infill space. #29"
This reverts commit d6ed9c6f34.
2011-11-24 12:53:09 +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
d13a0e2503 Bugfix: no top surfaces when they were too close to bridges 2011-11-22 21:45:05 +01:00
Alessandro Ranellucci
048410ac52 Bugfix: some infill lines extruded outside objects when using 45° infill angle. #65 2011-11-22 20:35:05 +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
00beb7e118 Merge branch 'new-bridges' 2011-11-21 12:49:41 +01:00
Alessandro Ranellucci
d6ed9c6f34 Disable retraction when moving over infill space. #29 2011-11-21 12:37:12 +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
ed9b4e829c Add a M109 for temperature control 2011-11-19 17:37:04 +01:00
Alessandro Ranellucci
6e02c8f117 Renamed perimeter_offsets to perimeters 2011-11-19 17:36:44 +01:00
Alessandro Ranellucci
4a9fc942cb Add a M109 for temperature control 2011-11-19 17:32:37 +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
1ef4d006a0 Treating "reverse bridges" as bridges should not change the way they're infilled or the chosen flow width 2011-11-18 09:54:28 +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
c8ce989962 Renamed perimeter_offsets to perimeters 2011-11-17 10:38:23 +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
8aca717209 Print solid infill without cutting an internal surface under small regions such as pillars. #39 2011-11-16 16:35:20 +01:00
Alessandro Ranellucci
47c0da8110 Bugfix: some solid layers were skipped. #47 2011-11-16 14:53:30 +01:00
Alessandro Ranellucci
9ab81880c9 Throw a fatal exception if no layers are detected 2011-11-16 10:26:47 +01:00
Alessandro Ranellucci
55f00fdb35 Little refactoring, removing useless methods 2011-11-16 10:16:01 +01:00
Alessandro Ranellucci
2abd8fe240 Bugfix: bottom layer speed settings were ignored. 2011-11-15 12:02:31 +01:00
Alessandro Ranellucci
e65349469b Disable M104 if temperature is 0 2011-11-15 12:00:09 +01:00
Alessandro Ranellucci
9e42158582 Remove G92 E0 if --no-extrusion was supplied 2011-11-14 18:14:12 +01:00
Alessandro Ranellucci
e51310e1b0 Moved print settings to first tab 2011-11-14 17:21:44 +01:00
Alessandro Ranellucci
612b2e6ded Slic3r::Fill::PlanePath was not explicitely included, puzzling the packager 2011-11-14 15:23:17 +01:00
Alessandro Ranellucci
c2a2d9ae6d Combine Z changes and retractions using G0. #51 2011-11-14 12:45:20 +01:00
Alessandro Ranellucci
db35faeabb New experimental --g0 option for fast retractions. #51 2011-11-14 12:15:32 +01:00
Alessandro Ranellucci
12b06b0ab0 Speed boost for new infill patterns. #20 2011-11-14 10:54:04 +01:00
Alessandro Ranellucci
86f3e4fcd2 Implemented a new "line" fill pattern. #20 2011-11-14 10:31:07 +01:00
Alessandro Ranellucci
d47a7bebbc Display current version in GUI 2011-11-13 22:57:58 +01:00
Alessandro Ranellucci
60f6ce363e GUI text boxes for start/end GCODE. #12 2011-11-13 22:48:21 +01:00
Alessandro Ranellucci
b2f0f85d96 Reorganized GUI with tabs 2011-11-13 22:22:34 +01:00
Alessandro Ranellucci
8f32ee8f5a Bugfix: recent changes broke the "Infill every N layers" feature 2011-11-13 21:46:32 +01:00
Alessandro Ranellucci
ba1b59f54c New --close-after-slicing option to allow for easy integration with Pronterface 2011-11-13 20:45:15 +01:00
Alessandro Ranellucci
a10d13120c Better toolpaths for infills with different density 2011-11-13 20:22:44 +01:00
Alessandro Ranellucci
fe9ed84f64 Infill is now overlapped with perimeters by 15%. #19 2011-11-13 19:25:15 +01:00
Alessandro Ranellucci
75a71a23a5 New --first-layer-height-ratio option. #36 2011-11-13 19:08:19 +01:00
Alessandro Ranellucci
097b8d9acb New --skirt-height option. #11 2011-11-13 18:41:12 +01:00
Alessandro Ranellucci
b123194522 New --no-extrusion option to disable E values 2011-11-13 18:26:31 +01:00
Alessandro Ranellucci
76dfda3b09 Comment for M104 was erroneously saying that it would wait for temperature. #49 2011-11-13 18:22:33 +01:00
Alessandro Ranellucci
a2b4f9f671 Use nozzle diameter as flow width when bridging 2011-11-13 18:21:25 +01:00
Alessandro Ranellucci
038caddcda New fill types (hilbertcurve, archimedeanchords, octagramspiral) and ability to use different patterns for solid layers. #20 2011-11-13 18:14:02 +01:00
Alessandro Ranellucci
041e9877a3 Bugfix: parsing fatal error on Windows. #38 2011-11-12 11:57:22 +01:00
Alessandro Ranellucci
a13e4c6fb5 Detect membranes (solid parts generating both a bottom and a top surface on the same layers) and don't infill twice. #28 2011-11-12 11:05:32 +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
91e250a2fd Infill solid layers even when --fill-density is set to zero. #37 2011-11-09 09:21:09 +01:00
Alessandro Ranellucci
80adbb7044 Support for legacy multiply options in config files. #7 2011-11-07 17:16:34 +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
b4e268efad New --retract-lift option to lift Z while doing travel moves. #25 2011-11-07 15:58:47 +01:00
Alessandro Ranellucci
71a44e253c Renamed "multiply" to "duplicate". #7 2011-11-07 15:49:07 +01:00
Alessandro Ranellucci
279bfbb10d Organize perimeters with a nearest point search to avoid unnecessary travel moves. #21 2011-11-07 15:40:09 +01:00
Alessandro Ranellucci
e860254780 Do all perimeters for each island/object at once without moving between multiple objects. #34 2011-11-07 14:25:36 +01:00
Alessandro Ranellucci
d620b46beb Bugfix: arcs now work (some glitches in detecting their center, though). #30 2011-11-07 14:12:07 +01:00
Alessandro Ranellucci
8172bcb772 Bugfix: G2/G3 I and J coordinates were wrong. #30 2011-11-06 20:24:42 +01:00
Alessandro Ranellucci
b5ca83abf8 Enforce the requirement for recent versions of Wx and Math::ConvexHull. #27 2011-11-05 18:19:35 +01:00
Alessandro Ranellucci
6d6533831e New experimental --gcode-arcs options to generate G2/G3 commands. #23 2011-10-28 14:13:44 +02: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
54cc6216a1 Bugfix: extrusion distance wasn't reset at print start, causing a possible huge retraction. 2011-10-17 21:38:41 +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
2d784fac9b New --start-gcode and --end-gcode options. #12 2011-10-14 16:24:55 +02:00
Alessandro Ranellucci
f7335b6d1e Bugfix: latest retraction changes broke retraction 2011-10-14 12:14:20 +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
774717c8bb Implement our own STL relaxed parser to be tolerant with malformed STL files and remove a dependency 2011-10-12 10:47:26 +02:00
Alessandro Ranellucci
a65befe08c Require Math::Clipper 1.02 otherwise fail with a hard error
This is to force people to upgrade their dependencies in order to avoid their previous bugs
2011-10-11 17:56:56 +02:00
Alessandro Ranellucci
82d8d0896f Reset extrusion distance during retracts 2011-10-11 17:53:50 +02:00
Alessandro Ranellucci
ef485e511e Remove useless F params to shrink gcode size (#14) and Reset E before exceeding 65535 (#13) 2011-10-11 16:04:50 +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
bca3abb755 More fixes. 2011-10-10 17:27:00 +02:00
Alessandro Ranellucci
34681af6ae Improvements for bottom and top surfaces perimeters 2011-10-10 16:31:37 +02:00
Alessandro Ranellucci
a7d5e643ae Bugfix: couldn't set fill density to zero 2011-10-10 14:37:40 +02:00
Alessandro Ranellucci
332d55f854 Moved Temperature under filament options 2011-10-09 22:29:13 +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
3274f3978b Additions to Geometry.pm and allow function exporting 2011-10-07 21:19:18 +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
Alessandro Ranellucci
1cb515a8e5 Merge branch 'high-res-perimeters'
Conflicts:
	lib/Slic3r/Extruder.pm
2011-10-06 20:09:50 +02:00
Alessandro Ranellucci
5daaf454b1 Faster algorithm for rectilinear fill 2011-10-06 17:13:42 +02:00
Alessandro Ranellucci
119eb0693f New high_res_perimeters option (like the "Skin" plugin for Skeinforge) 2011-10-06 17:11:59 +02:00
Alessandro Ranellucci
1978a99416 Faster algorithm for rectilinear fill 2011-10-06 16:22:22 +02:00
Alessandro Ranellucci
33d7b8c7cf Code refactored to allow for multiple infill types 2011-10-06 15:13:09 +02:00
Alessandro Ranellucci
bfd1d0e1dd Got rid of Math::Geometry::Planar 2011-10-06 12:39:58 +02:00
Alessandro Ranellucci
e2d2574b8b New algorithm for clipping lines to complex polygons 2011-10-06 12:20:25 +02:00
Alessandro Ranellucci
5812804d6b Refactored the can_connect() logic (includes a refactoring of the SVG library) 2011-10-06 11:55:26 +02:00
Alessandro Ranellucci
5a07137def Fixes to retraction and skirt 2011-10-05 21:25:17 +02:00
Alessandro Ranellucci
a1d518f1a2 Save and load configurations 2011-10-05 18:13:47 +02:00
Alessandro Ranellucci
92dec2db2a Fixed detection of horizontal shells 2011-10-04 22:36:05 +02:00
Alessandro Ranellucci
2da5ee7448 Bugfixes and improvements in surface detection 2011-10-04 22:27:45 +02:00
Alessandro Ranellucci
f1a36502e1 Additions to the polygon library 2011-10-04 20:06:17 +02:00
Alessandro Ranellucci
706586f150 Allow .STL files as well as .stl 2011-10-04 18:00:01 +02:00
Alessandro Ranellucci
794b7a99d2 Fixes for hi-res STL models 2011-10-04 17:55:55 +02:00
Alessandro Ranellucci
6444c3d7a9 Bugfix in dealing with very small STL facets 2011-10-03 20:57:56 +02:00
Alessandro Ranellucci
ef201a99cc Bugfix in polyline simplification 2011-10-03 20:40:49 +02:00
Alessandro Ranellucci
865e234a44 Workaround for Wx/GTK bug on Linux 2011-10-03 19:15:07 +02:00
Alessandro Ranellucci
71a373e437 Bugfix: error during skein freezed the GUI 2011-10-03 17:41:45 +02:00
Alessandro Ranellucci
558e86e72d GUI fixes for Windows 2011-10-03 13:08:43 +02:00
Alessandro Ranellucci
f2f9178e07 GUI 2011-10-03 11:55:32 +02:00
Alessandro Ranellucci
21d287504c New --perimeter-feed-rate and --retract-before-travel options. Includes some refactoring and fixes. 2011-10-02 09:57:37 +02:00
Alessandro Ranellucci
55f2247cd9 New extrusion math 2011-10-01 18:10:33 +02:00
Alessandro Ranellucci
ea88cad8e3 Don't extrude acute angles 2011-10-01 14:26:54 +02:00
Alessandro Ranellucci
25ea8a0204 Bugfixes for complex and dirty geometries 2011-09-30 15:46:48 +02:00
Alessandro Ranellucci
b61b543243 Minor cleanups 2011-09-26 19:53:01 +02:00
Alessandro Ranellucci
81085433fd New options to multiply input object 2011-09-26 16:58:08 +02:00
Alessandro Ranellucci
c16ecb4316 Fixed regression which prevented horizontal shells to be processed for external top surfaces 2011-09-26 16:19:32 +02:00
Alessandro Ranellucci
404c76adc8 New option to rotate input object 2011-09-26 16:07:12 +02:00
Alessandro Ranellucci
8d13d4b21e New option to shift Z coordinates 2011-09-26 15:59:03 +02:00
Alessandro Ranellucci
b0433097d4 New option to customize infill angle 2011-09-26 15:51:22 +02:00
Alessandro Ranellucci
742f646372 Minor fixes to time computation and right-hand rule 2011-09-26 15:08:05 +02:00
Alessandro Ranellucci
478047fad3 Fixes and improvements after testing with more complex objects 2011-09-26 14:48:22 +02:00
Alessandro Ranellucci
bfad101c8c Ability to scale input object 2011-09-26 12:07:29 +02:00
Alessandro Ranellucci
c2a62891da Remove features that are too small to be printed 2011-09-26 11:59:06 +02:00
Alessandro Ranellucci
081f65852d Refactor extrusion logic in a dedicated class 2011-09-26 11:42:08 +02:00
Alessandro Ranellucci
415d1a5170 Optimization of travel paths for fills 2011-09-26 10:52:58 +02:00
Alessandro Ranellucci
0cd10441a1 Optimization of travel paths for perimeters 2011-09-25 23:15:45 +02:00
Alessandro Ranellucci
03341f3485 Multiple solid layers near external surfaces 2011-09-25 22:11:56 +02:00
Alessandro Ranellucci
f892fde123 Make rounded corners for skirt 2011-09-25 20:24:14 +02:00
Alessandro Ranellucci
5fec13353c Use latest Math::Clipper updated to Clipper 4.4.4 to get sharp corners 2011-09-25 20:09:30 +02:00
Alessandro Ranellucci
f48dec9e41 Remove old code 2011-09-25 19:51:03 +02:00
Alessandro Ranellucci
18c7aef1a7 Lots of changes and refactoring after testing with hollow objects 2011-09-18 19:28:12 +02:00
Alessandro Ranellucci
26b05ab155 Replaced Moose with Moo => big performance boost and easier packaging 2011-09-06 11:50:43 +02:00
Alessandro Ranellucci
3421e8fef8 Improvements to avoid blobs 2011-09-05 20:29:07 +02:00
Alessandro Ranellucci
ff5044c031 Implemented skirt 2011-09-05 20:00:59 +02:00
Alessandro Ranellucci
d8b848a67f Implemented retraction and fixed extrusion math 2011-09-05 18:52:09 +02:00
Alessandro Ranellucci
5595839b31 Command line interface 2011-09-05 13:33:09 +02:00
Alessandro Ranellucci
778e4f6ffa Allow for different speed on bottom layer 2011-09-05 12:22:54 +02:00
Alessandro Ranellucci
9e111d0a6d Rectilinear fill 2011-09-05 12:21:27 +02:00
Alessandro Ranellucci
428006264d Generate boundaries of areas to fill (includes some refactoring) 2011-09-04 12:04:01 +02:00
Alessandro Ranellucci
416ad241ea Require at least one perimeter 2011-09-04 11:06:15 +02:00
Alessandro Ranellucci
a5ba0af7ef Generate GCODE 2011-09-03 20:47:38 +02:00
Alessandro Ranellucci
74b4d8d612 Bugfix (harmless for now) in calculation of extents; using constants now for code readability 2011-09-03 20:08:48 +02:00
Alessandro Ranellucci
febd655e22 Extrusion of perimeters 2011-09-02 21:10:20 +02:00
Alessandro Ranellucci
55a523e1fa Initial import 2011-09-01 21:06:28 +02:00