Commit Graph

263 Commits

Author SHA1 Message Date
Alessandro Ranellucci
1998801a58 Read OBJ files. #324 2012-05-20 11:40:37 +02:00
Alessandro Ranellucci
b246480535 Massive reduction of memory usage (down to one third). 2012-05-19 17:57:38 +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
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
7ee08be0b8 Allow [version], [timestamp], [year], [month], [day], [hour], [minute], [second] in filenames. #318 2012-05-01 15:02:33 +02:00
Alessandro Ranellucci
49ff9a0ebe Emit G92 E0 when in relative mode. #322 2012-05-01 14:49:41 +02:00
Alessandro Ranellucci
0f3cbe6fa4 Bugfix: G-code errors with multiple objects 2012-05-01 13:18:01 +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
4bc49dcc5b Fixed regression throwing fatal error when using --duplicate-grid 2012-04-29 19:01:18 +02:00
Alessandro Ranellucci
ed4a5739f6 Multiple objects autoplating (--merge, from command line only) 2012-04-29 12:51:20 +02:00
Alessandro Ranellucci
285caffa9c Omit G92 if No Extrusion 2012-04-16 20:06:53 +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
356e750cf4 Bugfix: support material was oversimplifying the first outer perimeter. #314 2012-04-16 13:48:55 +02:00
Alessandro Ranellucci
0faebad4da Make new support material algorithm effective 2012-04-14 19:47:33 +02:00
Alessandro Ranellucci
74c02e7aed added skirt to print size calculation for --duplicate
Conflicts:

	lib/Slic3r/Print.pm
2012-04-11 20:44:09 +02:00
Michael Moon
757f8a2404 move duplicate stuff around a bit 2012-04-12 03:30:15 +10:00
Alessandro Ranellucci
e58ed195fd New --bed-size option 2012-04-11 16:30:58 +02:00
Alessandro Ranellucci
4ae551a424 Ditch --duplicate-x and --duplicate-y, add --duplicate-grid 2012-04-11 15:58:09 +02:00
Alessandro Ranellucci
a8adff53ca New implementation of support material 2012-04-09 22:06:30 +02:00
Alessandro Ranellucci
82a16ed8ee Merge branch 'triffid-duplicate' 2012-04-09 15:14:40 +02:00
Michael Moon
f2edfd1a76 initial implementation of algorithm for #249
fix typo that put things in the wrong position

use int() builtin instead of POSIX::floor()

fix typo

use alternate method of creating local routines

remove aliases for new duplicate option

use coderefs for linear interpolate function, make binary insertion sort inline

add \n at end of die message regarding too many objects for print area

fix case where no duplication is done

fix whitespace according to slic3r coding style

assume 200x200 bed area if center is 0,0

Some cleanup to the autoarrange duplication logic
2012-04-09 15:14:07 +02:00
Alessandro Ranellucci
64e669d893 Refactored parallelization code. #154 2012-04-09 13:53:13 +02:00
Alessandro Ranellucci
68b48fa807 Multithreaded mesh processing. #154 2012-04-09 12:29:47 +02:00
Alessandro Ranellucci
43ebaa9d94 Don't slow down travel moves. #293 2012-04-03 14:22:18 +02:00
Alessandro Ranellucci
13e573a8e4 Only output M109 if there's none in user-supplied start G-code 2012-04-03 12:50:06 +02:00
Alessandro Ranellucci
0afb5ad9dd Bugfix: some holes were filled. #291 2012-04-02 11:40:12 +02:00
Alessandro Ranellucci
d791315b4a Bugfix: fatal error when generating skirt for layers having only two-point thin walls. #295 2012-03-31 18:32:53 +02:00
Alessandro Ranellucci
1355833cbf Use M109 for Makerbot bed control. #294 2012-03-31 18:24:12 +02:00
Alessandro Ranellucci
2aa786c95f Bugfix: extrude_skirt() was assuming that a copy existed at 0,0 (not harmful but incorrect) 2012-03-26 19:47:21 +02:00
Alessandro Ranellucci
69942d2076 Bugfix: certain values of first layer height ratio caused slicing errors 2012-03-11 16:31:39 +01:00
Alessandro Ranellucci
d0807aa807 Allow to use config options in start/end G-code 2012-03-03 23:29:08 +01:00
Alessandro Ranellucci
f2032686da Ensure fan is turned off at start if disable_fan_first_layers > 0 2012-03-03 23:18:02 +01:00
Michael Moon
35e7877437 bed temperature handling. TODO: gui elements 2012-03-03 23:08:50 +01:00
Alessandro Ranellucci
2c16509e8a Slowdown wasn't triggered when fan_below_layer_time was set to zero. #237 2012-03-03 22:28:44 +01:00
Alessandro Ranellucci
06c22c9db3 New --fan-always-on option. #241 #110 2012-03-03 22:21:30 +01:00
Alessandro Ranellucci
c7006fed26 Bugfix: an awful _BRIDGE_FAN_END string was sometimes left in the output. #245 2012-03-03 22:16:38 +01:00
Alessandro Ranellucci
b5cba48e55 Put the relative E checkbox back in the GUI and disable M82/M83 for MakerBot 2012-03-03 21:27:33 +01:00
Alessandro Ranellucci
f0e434f8c1 Fix typo in previous commit and in config options. #234 2012-02-28 22:04:48 +01:00
Alessandro Ranellucci
0520d1645b Bugfix: retraction wasn't triggered when moving between copies. #232 2012-02-28 21:55:32 +01:00
Alessandro Ranellucci
79bc2240fb Use first layer temperature for M109 too 2012-02-26 15:09:28 +01:00
Alessandro Ranellucci
dccd7d19a9 First layer temperature. #134 2012-02-26 14:54:38 +01:00
Alessandro Ranellucci
170d29a789 New --cooling option and checkbox to enable/disable fan and cooling control 2012-02-25 21:56:36 +01:00
Alessandro Ranellucci
70e69be60a Bugfix: support material was generated under most bridges 2012-02-25 21:39:01 +01:00
Alessandro Ranellucci
1d0a852679 Cooling and fan control. #110 2012-02-25 21:01:00 +01:00
Alessandro Ranellucci
f4fde54bf3 Add extrusion multiplier to gcode comments. #222 2012-02-25 19:24:46 +01:00
Alessandro Ranellucci
848bf91244 Multithreaded support material generation 2012-02-25 16:51:08 +01:00
Alessandro Ranellucci
cc695c6c22 Support material: refactoring 2012-02-25 16:23:41 +01:00
Alessandro Ranellucci
eba7c10018 Faster support generation. Includes a new implementation of the Douglas-Peucker algorithm 2012-02-25 14:46:21 +01:00
Alessandro Ranellucci
94e673e050 Backwards compatibility for people using relative E distances on RepRap firmwares 2012-02-24 23:12:16 +01:00
Alessandro Ranellucci
555c23069d New --post-process option. Includes some cleaning of the STDOUT messages 2012-02-20 12:50:05 +01:00
Alessandro Ranellucci
ae35df716f Little refactoring, new TriangleMesh->align_to_origin method 2012-02-20 11:47:21 +01:00
Alessandro Ranellucci
615bcb27dd New --gcode-flavor option. extrusion_axis, use_relative_e_distances options hidden and implied. #158 2012-02-20 11:44:30 +01:00
Alessandro Ranellucci
94a2585b97 Dual extruder for support material 2012-02-19 17:02:49 +01:00
Alessandro Ranellucci
7b67fae686 Support material 2012-02-19 12:03:36 +01:00
Alessandro Ranellucci
e0e2023a5a Duplication is now performed on generated toolpaths instead of mesh (speed boost). #179 2012-02-19 10:48:58 +01:00
Alessandro Ranellucci
a9e7204fc6 New slicing algorithm based on a topological approach rather than numeric. It should be much more robust 2012-02-18 20:36:14 +01:00
Alessandro Ranellucci
f814ccf062 Refactoring: use indexed vertices 2012-02-17 13:56:17 +01:00
Alessandro Ranellucci
68f001a7de Mark acceleration settings as experimental and add a M501 command at the end of the print if acceleration control is enabled 2012-02-14 21:57:53 +01:00
Alessandro Ranellucci
74c71b4ef2 Acceleration control. #185 2012-02-10 14:53:44 +01:00
Alessandro Ranellucci
ad8c9d4ea1 Bugfix: model with rounded walls had small useless infill regions. #177 2012-02-10 14:42:54 +01:00
Henrik Brix Andersen
121895d3fc Add support for notes field in configuration profiles. #130 2012-02-05 20:55:17 +01:00
Alessandro Ranellucci
4a9672bd88 Use about 40% less memory 2012-01-28 21:52:31 +01:00
Alessandro Ranellucci
a4194554c9 Write single wall width (extrusion width) to the G-code file 2012-01-21 17:02:55 +01:00
Alessandro Ranellucci
a0ebee2ca3 Warn if no layers were detected 2012-01-21 11:34:03 +01:00
Alessandro Ranellucci
92cdaf2f2d Retract at end of print 2012-01-20 14:48:51 +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
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
4b2bd7f779 Bugfix: wrong month number in output 2011-12-30 18:57:58 +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
55045e0437 Limit skirt height to the print height. #128 2011-12-22 11:57:26 +01:00
Alessandro Ranellucci
caf41f07dd Output required filament length and volume to command line and to the gcode file itself 2011-12-20 15:29:15 +01:00
Alessandro Ranellucci
627e1b32e2 Add Slic3r version to gcode comment 2011-12-20 14:20:39 +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
f5eb4f03e1 Skirt can be disabled by either setting skirts to 0 or skirt-height to 0 2011-12-16 09:55:13 +01:00
Alessandro Ranellucci
b422537cc4 Bugfix: do not die when no layers are detected at all 2011-12-15 20:36:46 +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
869cb48c1a Merge branch 'master' of github.com:alexrj/Slic3r 2011-12-12 17:35:18 +01:00
Alessandro Ranellucci
3c2b2cfef2 Bugfix: duplicate options did not work correctly for copies > 2. #113 2011-12-12 17:32:45 +01:00
Richard Goodwin
557afcc4b1 Added scale to settings output 2011-12-11 15:32:47 -06: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
525855dc7d Bugfix: fatal error when combining infills. #96 2011-12-07 20:15:08 +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
3d0cde2fce Fixed regression. The repair algorithm was not working after recent changes. Releasing 0.5.5b. #16 #28 2011-12-05 13:01:02 +01:00
Alessandro Ranellucci
eb64cc4965 More fixes for bridges. #58 2011-12-04 18:37:37 +01:00
Alessandro Ranellucci
0aff5fab24 Connect infill segments and adjust spacing and flow rate to fill the area completely without leaving gaps. #89 2011-12-04 16:24:46 +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
52c9897eda New --extrusion-axis option; removed --no-extrusion 2011-12-01 22:34:21 +01:00
Alessandro Ranellucci
830965fc0b Note used settings in exported gcode. #52 2011-12-01 22:20:48 +01:00
Alessandro Ranellucci
2a02d26ca5 Fixed regression: fill density = 0 was preventing extra solid layers. #75 2011-12-01 21:15:02 +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
975387d953 New --bridge-feed-rate option. #68 2011-11-28 18:37:53 +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
afd8e0a1bd Bugfix: setting temperature to zero didn't remove it from output 2011-11-26 15:11:11 +01:00
Alessandro Ranellucci
f3b689d4e0 Bugfix: infill every 'n' layers was broken after recent changes 2011-11-25 18:16:31 +01:00
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
84d9f5fd9d Bugfix: some regions near bridges were left blank. #58 2011-11-21 21:05:00 +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
ed9b4e829c Add a M109 for temperature control 2011-11-19 17:37:04 +01:00
Alessandro Ranellucci
4a9fc942cb Add a M109 for temperature control 2011-11-19 17:32:37 +01:00
Alessandro Ranellucci
a1c766cc52 New bridging logic, more robust. #58 2011-11-19 16:44:24 +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
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
8f32ee8f5a Bugfix: recent changes broke the "Infill every N layers" feature 2011-11-13 21:46:32 +01:00
Alessandro Ranellucci
097b8d9acb New --skirt-height option. #11 2011-11-13 18:41:12 +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
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
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
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
56619871b2 Bugfix: some bridges had wrong perimeters inside 2011-10-13 22:22:45 +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
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
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
743f2abcf2 Detection of optimal infill direction for bridges. Includes many fixes and improvements. 2011-10-07 19:07:57 +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
33d7b8c7cf Code refactored to allow for multiple infill types 2011-10-06 15:13:09 +02:00
Alessandro Ranellucci
2da5ee7448 Bugfixes and improvements in surface detection 2011-10-04 22:27:45 +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
b61b543243 Minor cleanups 2011-09-26 19:53:01 +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
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