Commit Graph

294 Commits

Author SHA1 Message Date
Alessandro Ranellucci
c57a88c943 start_perimeters_at_non_overhang was still partially enforced 2013-07-07 19:11:23 +02:00
Alessandro Ranellucci
a1e4bda670 Have Clipper.pm only return ExPolygon::XS objects 2013-07-07 15:17:09 +02:00
Alessandro Ranellucci
f455ecb7da Rename adjust_overhang_flow to overhangs 2013-07-06 11:35:40 +02:00
Alessandro Ranellucci
f8ae8d3e8d New option to disable overhang flow 2013-07-05 22:12:58 +02:00
Alessandro Ranellucci
0a7e0ffecf New options: start_perimeters_at_concave_points start_perimeters_at_non_overhang 2013-07-05 22:06:58 +02:00
Alessandro Ranellucci
339c487077 Fix starting point after overhang clipping is performed 2013-07-05 17:25:56 +02:00
Alessandro Ranellucci
b3b2a1e891 One more fix in overhang starting point detection 2013-07-05 17:08:26 +02:00
Alessandro Ranellucci
df4612a209 Prefer starting points that are NOT in overhangs 2013-07-05 17:00:14 +02:00
Alessandro Ranellucci
d074b98aba Optimization: don't store wipe path if wipe is not requested 2013-07-05 15:03:08 +02:00
Alessandro Ranellucci
8061cc6e30 Optimization in Polyline instantiation 2013-07-05 14:44:41 +02:00
Alessandro Ranellucci
1e3ce9b8c4 Complete retraction if the wipe path was too short for the full retract. #1264 2013-06-23 00:10:57 +02:00
Alessandro Ranellucci
c03f9f0197 Fixed regression causing wrong direction for inwards move in holes. Includes regression test. #1265 2013-06-23 00:05:08 +02:00
Alessandro Ranellucci
aba7641fe4 Avoid starting loops on convex vertices and/or overhangs. #296 #135 2013-06-21 19:43:15 +02:00
Alessandro Ranellucci
19b40baf55 Add regression test to ensure fan is enabled when printing overhangs. #432 2013-06-21 15:38:58 +02:00
Alessandro Ranellucci
c707073a73 Some fixes about overhang detection. Includes regression tests 2013-06-21 14:52:35 +02:00
Alessandro Ranellucci
f5322596d9 Note to self in code 2013-06-20 20:16:15 +02:00
Alessandro Ranellucci
7e875393f5 New algorithm for overhang detection 2013-06-20 20:11:46 +02:00
Alessandro Ranellucci
07407e5dbd Merge branch 'master' into overhang
Conflicts:
	lib/Slic3r/GCode.pm
2013-06-16 10:49:33 +02:00
Alessandro Ranellucci
b12a09ed71 Rename makerbot G-code flavor to makerware; also mention Repetier among RepRap firmwares. #1034 2013-06-07 23:24:53 +02:00
Alessandro Ranellucci
8c40cefe1e Also use G1 when traveling with avoid_crossing_perimeters enabled 2013-06-05 17:12:34 +02:00
Alessandro Ranellucci
532ae53d0b Use G1 instead of G0 for restart after retraction to avoid blending with the previous travel move. #1212 2013-06-05 16:58:30 +02:00
Alessandro Ranellucci
167ec7a4e7 Use M135 for makerbot toolchange; also disable any G90 and G21 command. #1034 2013-06-03 16:21:22 +02:00
Alessandro Ranellucci
974379c955 Add M103 after retraction and M101 before restart when Makerbot G-code flavor is selected. #1119 2013-06-03 15:37:32 +02:00
Alessandro Ranellucci
71608e799e Keep per-extruder E absolute value for Makerbot flavour to avoid any G92 E0. #950 2013-06-03 15:27:58 +02:00
Alessandro Ranellucci
81bae56e92 Limit only_retract_when_crossing_perimeters to travel moves that are completely enclosed in the upper layer's slices so that we avoid visible traces on top layers. #1091 2013-06-03 12:25:32 +02:00
Alessandro Ranellucci
da76496988 Store config in Slic3r::GCode object 2013-05-31 11:19:36 +02:00
Alessandro Ranellucci
f599ed00c6 Avoid closures, move planning code to _plan() and layer G-code generation to Slic3r::GCode::Layer 2013-05-18 17:41:37 +02:00
Alessandro Ranellucci
575127151b New algorithm for overhang detection 2013-05-14 20:19:42 +02:00
Alessandro Ranellucci
ece6dd8a0b Only make the inwards move when we have more than one perimeter 2013-05-13 19:35:42 +02:00
Alessandro Ranellucci
94ed6cd239 Always move Z at travel speed. #1093 2013-04-08 22:23:51 +02:00
Alessandro Ranellucci
88e70a59c7 Don't wipe if option is disabled 2013-04-03 19:08:12 +02:00
Alessandro Ranellucci
d089d2b2d4 Bugfix: crash introduced by wipe 2013-04-03 19:06:33 +02:00
Alessandro Ranellucci
843a700e96 Fixes for wipe 2013-03-25 23:06:18 +01:00
Alessandro Ranellucci
7de8b20bc4 New wipe feature 2013-03-17 02:22:50 +01:00
Alessandro Ranellucci
537fca47c5 Use solid infill speed for internal bridges; apply slowdown if any; don't use bridge fan settings. #240 2013-03-17 00:42:53 +01:00
Alessandro Ranellucci
b73c301c55 Bugfix: double lift at toolchange. #953 2013-03-11 17:06:05 +01:00
Alessandro Ranellucci
e9c7460c11 New --bridge-acceleration option 2013-03-09 20:31:09 +01:00
Alessandro Ranellucci
2acda9973e Don't apply acceleration settings to travel moves 2013-03-09 20:28:03 +01:00
Alessandro Ranellucci
460e169c67 New option to disable retraction on layer change 2013-03-09 20:05:43 +01:00
Alessandro Ranellucci
d50e0af548 Make sure the inwards move after last perimeter loop doesn't exceed object boundary 2013-03-09 17:15:45 +01:00
Alessandro Ranellucci
4fc435f0fd Bugfix: retract speed was applied to travel 2013-03-08 17:52:33 +01:00
Alessandro Ranellucci
f494335f77 Bugfix: not all the calls to travel_to() were updated 2013-03-08 13:50:50 +01:00
Alessandro Ranellucci
2f192bddca Make tests happy 2013-03-07 16:24:25 +01:00
Alessandro Ranellucci
37810f777f Make only_retract_when_crossing_perimeters work with avoid_crossing_perimeters 2013-03-05 17:30:27 +01:00
Alessandro Ranellucci
70092a9cf5 Apply only_retract_when_crossing_perimeters to all infills 2013-03-04 23:37:58 +01:00
Robert Giseburt
6c12bd32ad Fix for Replicator 1 not finishing builds.
If the progress reaches 100% before last layer, the firmware erroneously stops reading the file.
2013-02-06 22:32:37 -06:00
Alessandro Ranellucci
73a661e6c1 shortest_path() in MotionPlanner was actually correctly named shortest_path() 2013-02-05 19:41:56 +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
ddaeaa7591 Fix last_pos shifting and add unit test 2013-01-27 13:08:13 +01:00
Alessandro Ranellucci
ad48fdc7f9 Fix external motionplanner too 2013-01-27 12:48:16 +01:00
Alessandro Ranellucci
f1230312e3 Fixes for merge issues 2013-01-26 23:55:47 +01:00
Alessandro Ranellucci
61b164b539 Merge branch 'master' into avoid-crossing-perimeters
Conflicts:
	lib/Slic3r/GCode.pm
	lib/Slic3r/Print.pm
2013-01-26 21:45:17 +01:00
Alessandro Ranellucci
73c70021df Change toolchange and G92 E0 order for makerbot and sailfish G-code flavors. #855 2013-01-17 15:02:40 +01:00
Alessandro Ranellucci
177347137f New G-code flavor for Sailfish (thanks to fros1y for working on it). #826 2013-01-17 14:56:31 +01:00
Alessandro Ranellucci
48e00a4c40 Merge branch 'master' into avoid-crossing-perimeters
Conflicts:
	lib/Slic3r/GCode.pm
	lib/Slic3r/GUI/Plater.pm
	lib/Slic3r/Print.pm
	lib/Slic3r/SVG.pm
2013-01-12 19:00:18 +01:00
Alessandro Ranellucci
32fd58d531 Acceleration control. #185 2013-01-10 15:29:40 +01:00
Alessandro Ranellucci
e59ed7efb7 New toolchange_gcode option. #547 2012-12-23 16:29:08 +01:00
Alessandro Ranellucci
8cd8e8b209 Merge branch 'test-dual-retraction' 2012-12-21 15:23:07 +01:00
Alessandro Ranellucci
dc4ada2374 Fix retraction tests and fix retract_extra_length and lift in multiple extruders environments 2012-12-21 15:14:44 +01:00
Alessandro Ranellucci
d5537e7797 Enable retraction for support material too, but only when moving away from support islands. #831 2012-12-20 18:47:40 +01:00
Alessandro Ranellucci
ea304a4803 Bugfix: custom layer G-code was applied before Z change, and not after like it was documented. #869 2012-12-20 17:01:01 +01:00
Alessandro Ranellucci
1a3497b71d Add tests for vibration limiting and fix implementation. Also includes a fix in set_shift() 2012-12-09 18:33:25 +01:00
Alessandro Ranellucci
4078bb0476 Fix error when vibration limit is disabled 2012-12-06 10:54:28 +01:00
Alessandro Ranellucci
ca0aa5c287 Apply vibration limit to every move except perimeters 2012-12-05 16:32:50 +01:00
Alessandro Ranellucci
cf32cd6510 Implement vibration limit using G4 pauses 2012-12-05 15:03:36 +01:00
Alessandro Ranellucci
f001374c6e New implementation of the little inwards move before leaving a loop. #186 2012-12-05 11:31:35 +01:00
Alessandro Ranellucci
283809f5c2 No need for a role to identify small perimeters 2012-12-05 10:47:41 +01:00
Alessandro Ranellucci
accc598eb5 Revert "Experimental feature: make a little move inwards by 45° after finishing the external perimeter and before retracting. #186"
This reverts commit c57e94c065.

Conflicts:

	lib/Slic3r/GCode.pm
2012-11-29 19:16:07 +01:00
Alessandro Ranellucci
12873e973b One more missing bit for gap_fill_speed 2012-11-23 18:37:47 +01:00
Alessandro Ranellucci
556e59bbe4 Last commit erroneously reverted gap fill speed 2012-11-23 17:41:15 +01:00
Alessandro Ranellucci
0f0992e39a Speed for support material. #813 2012-11-23 17:20:26 +01:00
Alessandro Ranellucci
5dba02fdeb New separate speed setting for gap fill. #785 2012-11-23 11:25:02 +01:00
Alessandro Ranellucci
21a6219b62 Disable vibration limit. #785 2012-11-23 11:14:06 +01:00
Alessandro Ranellucci
8ae96a8868 Only apply vibration limit to gaps fill while it's not very mature to work with long segments 2012-11-21 19:27:38 +01:00
Alessandro Ranellucci
de8a845d81 Disable retraction for support material 2012-11-19 18:03:20 +01:00
Alessandro Ranellucci
99c942b5ea Merge branch 'vibration-limit' 2012-11-19 15:54:50 +01:00
Alessandro Ranellucci
3c7321ab80 Bugfix: some retractions between objects/copies were skipped. #786 2012-11-19 15:34:52 +01:00
Alessandro Ranellucci
300734db38 Emit M106 S0 instead of M107 for Teacup 2012-11-19 15:30:55 +01:00
Alessandro Ranellucci
a66e8e547d Apply Douglas-Peucker to all paths before generating G-code 2012-11-18 18:00:33 +01:00
Alessandro Ranellucci
c99ff0cfe2 Apply Douglas-Peucker to all paths before generating G-code 2012-11-18 17:38:08 +01:00
Alessandro Ranellucci
7a87a76391 Refactor frequency limit to avoid processing G-code 2012-11-18 15:28:13 +01:00
Alessandro Ranellucci
008633f013 Working implementation of frequency limit 2012-11-18 12:23:11 +01:00
Alessandro Ranellucci
f3164594eb More incomplete work 2012-11-18 11:33:53 +01:00
Alessandro Ranellucci
72007c4f6a Rewrite frequency limiting code 2012-11-17 18:07:13 +01:00
Alessandro Ranellucci
600e951fd8 Completed vibration limit 2012-11-17 12:08:19 +01:00
Alessandro Ranellucci
ac5be309e3 Do not call merge_continuous_lines() anymore 2012-11-16 19:20:46 +01:00
Alessandro Ranellucci
1c2bc94d5a Bugfix: only_retract_when_crossing_perimeters might cause some missed retractions when printing multiple copies of the same object. #786 2012-11-16 12:39:55 +01:00
Alessandro Ranellucci
06b475a4ed Clone last_pos before storing it otherwise it will be translated. #786 2012-11-16 11:05:45 +01:00
Alessandro Ranellucci
1db614a5a9 Revert "Use G92 to apply Z offset. #486" #778 2012-11-06 20:04:44 +01:00
Alessandro Ranellucci
ab2b31672f Fixed regression causing a long string between copies 2012-11-06 19:54:21 +01:00
Alessandro Ranellucci
d4ccd39ad3 Minor code cleanup 2012-10-30 15:53:01 +01:00
Alessandro Ranellucci
92ab53868e Remove unused methods 2012-10-30 15:49:11 +01:00
Alessandro Ranellucci
25d88bddff Remove the change_layer method 2012-10-30 14:11:32 +01:00
Alessandro Ranellucci
be7e211bb6 Make flow_spacing required for ExtrusionPath objects 2012-10-30 14:07:01 +01:00
Alessandro Ranellucci
4c6fe0b3d4 Fixed regression preventing lift to work correctly 2012-10-30 10:45:55 +01:00
Alessandro Ranellucci
887634e1e2 Use G92 to apply Z offset. #486 2012-10-29 19:54:04 +01:00
Alessandro Ranellucci
df4dcf0534 Move by 30° instead of 45° when completing an external loop. #186 2012-10-29 11:21:41 +01:00
Alessandro Ranellucci
9b94a661d9 Fixed regression causing too much clipping at the endpoints of loops 2012-10-29 11:20:27 +01:00
Alessandro Ranellucci
f2389682b6 Factor out some hard-coded settings 2012-10-29 00:23:33 +01:00
Alessandro Ranellucci
8da4151c6d Fix regression causing skirt to be printed at Z = 0 after a recent commit 2012-10-28 19:24:24 +01:00
Alessandro Ranellucci
c57e94c065 Experimental feature: make a little move inwards by 45° after finishing the external perimeter and before retracting. #186 2012-10-28 19:15:34 +01:00
Alessandro Ranellucci
ccb49a8439 Do a slightly thinner interface layer at the top of support material structures by taking into account the diameter of bridge extrudates (nophead's idea) 2012-10-28 16:59:20 +01:00
Alessandro Ranellucci
f35cdef2aa Renamed ExtrusionPath->depth_layers to height 2012-10-28 14:22:51 +01:00
Alessandro Ranellucci
b0f24a2666 Bugfix: unnecessary tool changes were generated when using the same tool for subsequent parts 2012-10-25 18:49:59 +02:00
Alessandro Ranellucci
1627268fd4 Merge branch 'master' into avoid-crossing-perimeters
Conflicts:
	lib/Slic3r/GCode.pm
2012-10-24 11:49:31 +02:00
Alessandro Ranellucci
76f75db055 Always specify tool number in M104/M109 when printing with multiple extruders 2012-10-21 21:44:06 +02:00
Alessandro Ranellucci
d1e0bcf113 Bugfix: tool numbers written in G-code were wrong 2012-10-01 18:22:35 +02:00
Alessandro Ranellucci
a49b045ce4 Do not call srand for each layer, to get better randomization of starting points. #694 2012-09-28 14:01:59 +02:00
Alessandro Ranellucci
d8c192ae05 Fix fatal error caused by recent refactorings 2012-09-23 18:07:44 +02:00
Alessandro Ranellucci
bbe0a45b58 Optimization: cache scaled flow width and spacing 2012-09-23 03:03:08 +02:00
Alessandro Ranellucci
e696764af8 Assign extruders and flows to materials 2012-09-23 02:40:25 +02:00
Alessandro Ranellucci
cc8d8bd26f Merge branch 'master' into avoid-crossing-perimeters
Conflicts:
	README.markdown
	lib/Slic3r/Config.pm
	lib/Slic3r/GCode.pm
	lib/Slic3r/Print.pm
	slic3r.pl
2012-09-12 16:04:16 +02:00
Alessandro Ranellucci
9934f8957f Bugfix: only_retract_when_crossing_perimeters was almost not working. #680 2012-09-12 15:20:37 +02:00
Alessandro Ranellucci
5017f17171 Adjust M-codes for temperature handling for Teacup. #539 2012-08-30 23:13:28 +02:00
Alessandro Ranellucci
873ea93832 Fix missing module inclusion preventing the recently introduced option from working 2012-08-25 17:18:12 +02:00
Alessandro Ranellucci
0c22250740 New option to disable retraction when moving between infill paths inside the same island. #29 2012-08-25 16:30:11 +02:00
Alessandro Ranellucci
c98e9515ed Better implementation of the external motion planner 2012-08-23 21:10:04 +02:00
Alessandro Ranellucci
0eadc5adba Manual rebase of the avoid_crossing_perimeters feature 2012-08-23 15:42:58 +02:00
Alessandro Ranellucci
b35c41c1a3 Bugfix: retraction was still not working correctly at tool change 2012-08-22 20:31:03 +02:00
Alessandro Ranellucci
edfdf236da Fix for the recent commit about the new retraction settings 2012-08-22 19:47:59 +02:00
Alessandro Ranellucci
4bddb66513 Always emit T0 at the beginning of a multi-extruder print 2012-08-22 19:20:34 +02:00
Alessandro Ranellucci
9e682924c7 New separate options for retraction length to be used when switching tools 2012-08-22 19:11:45 +02:00
Alessandro Ranellucci
075213c731 Refactoring: make 'retracted' an attribute of the Extruder object 2012-08-22 18:57:03 +02:00
Alessandro Ranellucci
97c3756034 Don't force automatic unretraction after tool change 2012-08-22 18:06:50 +02:00
Alessandro Ranellucci
9ca21c835c Merge branch 'per-extruder-retraction-settings'
Conflicts:
	lib/Slic3r/Config.pm
	lib/Slic3r/GUI/Tab.pm
2012-08-08 22:06:47 +02:00
Alessandro Ranellucci
866b09f3f9 New --extruder-offset option 2012-08-07 21:39:45 +02:00
Alessandro Ranellucci
cf01c142de Make retraction configurable for each extruder 2012-08-07 21:08:56 +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
ea604384dd Typo 2012-07-23 17:56:20 +02:00
Alessandro Ranellucci
ba475cae45 Fixed fatal error introduced after recent refactoring 2012-07-23 17:52:02 +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
0aa3cc230f Merge branch 'new-flow' 2012-07-14 21:40:57 +02:00
Alessandro Ranellucci
e703e78504 A typo caused no newline after Tn. #530 2012-07-11 21:48:30 +02:00
Alessandro Ranellucci
079f6072a6 Use M109 P1 for Teacup 2012-07-10 19:31:09 +02:00
Henrik Brix Andersen
0266729635 Merge branch 'master' into new-flow 2012-07-06 22:10:47 +02:00
Henrik Brix Andersen
9f4444a7d4 Add missing sprintf spotted by olasd
Fixes 3c00573805
2012-07-06 22:09:17 +02:00
Alessandro Ranellucci
4f6934bab8 Merge branch 'master' into new-flow 2012-07-06 20:06:09 +02:00
Alessandro Ranellucci
3c00573805 Reset E and compensate retraction after changing extruder 2012-07-06 19:57:58 +02:00
Alessandro Ranellucci
77123ada7c New spacing math. Speed optimizations 2012-07-04 09:33:33 +02:00
Alessandro Ranellucci
dd37867324 Bugfix: wrong spacing was calculated 2012-07-04 09:33:33 +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
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
f9f2361acb Allow setting different temperatures and first layer temperatures for each extruder. Also make support material extruder selection compatible with the new architecture 2012-06-28 16:22:11 +02:00
Alessandro Ranellucci
898266fd34 Initial refactoring for supporting multiple extruders. Little speed optimization included 2012-06-28 14:44:54 +02:00