Commit Graph

280 Commits

Author SHA1 Message Date
Alessandro Ranellucci
5d6fd7f4d9 Optimizations for better usage of XS code 2013-08-29 01:36:42 +02:00
Alessandro Ranellucci
9254ff9704 Typo in merge 2013-08-28 20:43:23 +02:00
Alessandro Ranellucci
c9f68ed28a Refactor E code and keep track of per-extruder consumend filament 2013-08-28 20:40:13 +02:00
Alessandro Ranellucci
70d824c9a7 One minor optimization in GCode.pm 2013-08-28 20:40:13 +02:00
Alessandro Ranellucci
5f17fa342b Move arc fitting code to its own post-processing filter and remove the built-in ExtrusionPath::Arc class 2013-08-28 20:40:13 +02:00
Alessandro Ranellucci
055273fbc8 Huge speed boost by reducing the number of method calls in GCode.pm 2013-08-28 20:38:22 +02:00
Alessandro Ranellucci
73c05a6092 Moved vibration limit to its own G-code filter 2013-08-28 20:37:56 +02:00
Alessandro Ranellucci
b11b595c97 Ported nearest_point() and nearest_point_index() 2013-08-27 00:52:20 +02:00
Alessandro Ranellucci
f1e9216c70 Save some time in GCode.pm method calls 2013-08-27 00:02:24 +02:00
Alessandro Ranellucci
9fb14f2119 Ported (and used) ExtrusionPath->first_point 2013-08-26 23:42:00 +02:00
Alessandro Ranellucci
fc9cec9d81 Merge branch 'master' into xsdata
Conflicts:
	lib/Slic3r/Layer/Region.pm
	lib/Slic3r/Print/Object.pm
2013-08-25 19:59:42 +02:00
Alessandro Ranellucci
3d6fb1b05c New feature: ability to override specific settings for individual objects in the plater. #344 2013-08-25 14:37:50 +02:00
Alessandro Ranellucci
fa07c512b4 Merge branch 'master' into xsdata
Conflicts:
	lib/Slic3r/Layer/Region.pm
	lib/Slic3r/Print.pm
	lib/Slic3r/Print/Object.pm
2013-08-16 09:09:56 +02:00
Alessandro Ranellucci
4862d832b5 Simplify layer change code now that we have distinct support layers 2013-08-09 19:46:20 +02:00
Alessandro Ranellucci
b956faa153 Adapt avoid_crossing_perimeters code to the recent changes 2013-08-09 16:30:40 +02:00
Alessandro Ranellucci
5d80c26b29 Adjust collision detection for brim and include support islands inside the only_retract_when_crossing_perimeters logic 2013-08-09 15:04:14 +02:00
Alessandro Ranellucci
99816e07a6 New --first-layer-acceleration option 2013-08-09 14:30:43 +02:00
Alessandro Ranellucci
b38cc2c244 Merge branch 'master' into xsdata
Conflicts:
	lib/Slic3r.pm
	lib/Slic3r/ExPolygon.pm
	lib/Slic3r/Fill.pm
	lib/Slic3r/Fill/Rectilinear.pm
	lib/Slic3r/GCode.pm
	lib/Slic3r/GUI/Plater.pm
	lib/Slic3r/Geometry/Clipper.pm
	lib/Slic3r/Layer/Region.pm
	lib/Slic3r/Print.pm
	lib/Slic3r/Print/Object.pm
	lib/Slic3r/TriangleMesh.pm
	t/shells.t
	xs/MANIFEST
2013-08-08 02:10:34 +02:00
Alessandro Ranellucci
4e13d61aed Fix retraction/Z/lift problems after recent changes 2013-07-30 12:15:40 +02:00
Alessandro Ranellucci
10a8f479f9 Bugfix: lift was not working correctly with multiple extruders and multiple skirt layers. Also, we now ignore all lift settings except the one of the first extruder. Includes regression tests. #1332 #1338 2013-07-29 19:43:57 +02:00
Alessandro Ranellucci
9adac636b8 Avoid G92 E0 with sailfish. #1034 2013-07-29 14:17:30 +02:00
Alessandro Ranellucci
51de3ce14f Switch print_z to unscaled coordinates 2013-07-29 00:27:53 +02:00
Alessandro Ranellucci
91cade7e8f Make sure there are no gaps in spiral vase. Includes regression test. #1251 2013-07-28 13:39:15 +02:00
Alessandro Ranellucci
c69edf27e9 Bugfix: only_retract_when_crossing_perimeters was not triggering retraction when moving between islands that are covered/bridged on the above layer. #1308 2013-07-26 10:52:22 +02:00
Alessandro Ranellucci
1b285f3f46 Thread-safe integration of ExtrusionPath::Collection 2013-07-18 22:29:12 +02:00
Alessandro Ranellucci
c030e38908 Ported ExtrusionPath::Collection 2013-07-18 19:09:07 +02:00
Alessandro Ranellucci
bf8c799685 Ported diff_ex, intersection_ex, union_ex, xor_ex 2013-07-17 00:29:09 +02:00
Alessandro Ranellucci
9458c7db97 Fix integration of XS containers 2013-07-16 17:13:01 +02:00
Alessandro Ranellucci
9b582a11ff Adopt XS containers everywhere (incomplete work) 2013-07-16 09:49:34 +02:00
Alessandro Ranellucci
9af2a1c007 Use XS Point everywhere 2013-07-15 20:31:43 +02:00
Alessandro Ranellucci
d0701cdcd4 Implemented Slic3r::ExtrusionLoop 2013-07-15 16:21:09 +02:00
Alessandro Ranellucci
c9749ca3b3 More integration of Slic3r::Point::XS 2013-07-15 16:04:49 +02:00
Alessandro Ranellucci
f612d4c64e Ported ExtrusionPath to XS. Failing test for Surface 2013-07-15 12:14:22 +02:00
Alessandro Ranellucci
7f4dc4e248 Fix merging error 2013-07-14 00:20:03 +02:00
Alessandro Ranellucci
31809d473f Merge branch 'master' into xsdata
Conflicts:
	lib/Slic3r/GCode.pm
	xs/src/Point.hpp
2013-07-13 21:00:19 +02:00
Alessandro Ranellucci
6f6ee40dae Small optimization in case no overhang logic is required at all 2013-07-07 19:12:44 +02:00
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