Commit Graph

1599 Commits (b33b30b09df4ad33f42a53ef4e51518a9af1e1af)

Author SHA1 Message Date
Alessandro Ranellucci 5f06cea821 Prevent --extrusion-multiplier <= 0. #1183 2013-05-31 12:45:18 +02:00
Alessandro Ranellucci 5c7dd2cf78 Some fixes to the cooling logic and new test suite for cooling 2013-05-31 12:18:33 +02:00
Alessandro Ranellucci da76496988 Store config in Slic3r::GCode object 2013-05-31 11:19:36 +02:00
Alessandro Ranellucci 7baaf6bf5d Fixed regression causing skirt_height to he honored incorrectly when printing more than one object. Includes regression test #1200 2013-05-30 20:06:05 +02:00
Alessandro Ranellucci 8f5a958948 Rename do_slice() to quick_slice() 2013-05-20 11:02:12 +02:00
Alessandro Ranellucci 71d6f428ca Apparent fix for "Attempt to free unreferenced scalar" 2013-05-20 10:57:27 +02:00
Alessandro Ranellucci c43ef45064 Require the newest Math::Clipper and Boost::Geometry::Utils to avoid the huge memory leaks present in previous versions 2013-05-20 09:56:55 +02:00
Alessandro Ranellucci f13d4e4e66 Restore skirt preview and extrude clearance after recent usage of int_offset() 2013-05-19 18:03:18 +02:00
Alessandro Ranellucci 5494f4f385 Free @_ before spawning a new thread (known old Perl bug) as an attempt to fix the unref scalars error 2013-05-19 17:34:33 +02:00
Alessandro Ranellucci 48e37f97b4 Fixed bad copy and paste causing multiple extruders to throw an error 2013-05-19 15:33:54 +02:00
Alessandro Ranellucci bbb190dc68 Generate infill using each object's bounding_box instead of full print. #1177 2013-05-19 11:35:41 +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 b5b0c2cc89 Bad copy and paste in commit from yesterday causing loss of perimeters. #1178 2013-05-19 10:47:00 +02:00
Alessandro Ranellucci 7180e7cb30 Speed optimization in avoid_crossing_perimeters 2013-05-19 10:35:11 +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 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 e33ca54943 Some code cleanup in MotionPlanner 2013-05-17 20:03:38 +02:00
Alessandro Ranellucci ba433822b6 Disable OpenGL code in master branch for now 2013-05-17 15:44:23 +02:00
Alessandro Ranellucci 8f77d3b945 Increase spacing for bridge traces. #1090 2013-05-17 15:03:42 +02:00
Alessandro Ranellucci 8e2063397a Merge branch 'opengl' 2013-05-17 14:17:02 +02:00
Alessandro Ranellucci 5c74fd095b Very basic implementation of 3D preview - install Wx::GLCanvas to get it working 2013-05-17 14:14:33 +02:00
Alessandro Ranellucci 61c1045331 Merge branch 'master' into overhang 2013-05-16 18:36:11 +02:00
Alessandro Ranellucci 228c84ddc1 Use glDrawArrays() 2013-05-16 13:42:19 +02:00
Alessandro Ranellucci 09989ab8bd Fix regression in --gcode-arcs 2013-05-16 12:54:38 +02:00
Alessandro Ranellucci 521d668712 Reduce overlap for bridges. #1090 2013-05-16 12:34:24 +02:00
Alessandro Ranellucci 55071e544f Fix brim spacing. #1174 2013-05-16 12:29:46 +02:00
Alessandro Ranellucci fc1a23f5b0 Quick and dirty OpenGL mockup 2013-05-16 12:09:01 +02:00
Alessandro Ranellucci bff31d7002 Fix split_mesh() not working anymore since analyze() is lazy 2013-05-16 11:25:15 +02:00
Alessandro Ranellucci a94d26b1ce Fix overhang detection for contours 2013-05-15 10:50:38 +02:00
Alessandro Ranellucci 575127151b New algorithm for overhang detection 2013-05-14 20:19:42 +02:00
Alessandro Ranellucci 90280fe63b Little fix for bridge rendering in SectionCut 2013-05-14 20:11:05 +02:00
Alessandro Ranellucci 967d567db0 Fix bridge rendering in SectionCut 2013-05-14 19:48:52 +02:00
Alessandro Ranellucci 632652d924 Unfinished work for displaying bridge paths in section cuts 2013-05-14 19:48:47 +02:00
Alessandro Ranellucci 06ad6b70f8 Bugfix: scaling object from the plater applied scale factor over the factor used in the previous slicing job. #1075 2013-05-14 16:31:50 +02:00
Alessandro Ranellucci 7eff002e21 Memory and speed optimization: only study meshes when needed 2013-05-14 14:47:00 +02:00
Alessandro Ranellucci e51dbb994d One more speed optimization in STL.pm 2013-05-14 14:17:46 +02:00
Alessandro Ranellucci 745cea8e6c One more little speed optimization in STL.pm 2013-05-14 14:12:32 +02:00
Alessandro Ranellucci 25bafe7ff1 Memory (and maybe speed?) optimization in STL reader 2013-05-14 13:54:25 +02:00
Alessandro Ranellucci 4121a7ece5 Set support material enforce layers to 0 when spiral printing 2013-05-14 13:54:24 +02:00
Mark Hindess 7979dd9e9c Avoid expensive TriangleMesh BUILD method during clone.
Gives 6% speedup and uses less memory when slicing yoda.stl and should
give significantly bigger speedup on more complex models and plates.
2013-05-13 21:27:55 +01:00
Alessandro Ranellucci a86c48d85c Disable retract on layer change when doing spiral vase; also check that we're printing a single-material object 2013-05-13 21:55:34 +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 ccdb29ddc9 New --spiral-vase option to continously raise Z when printing single-walled vases. #997 2013-05-13 20:15:45 +02:00
Alessandro Ranellucci baa1a8c736 Move Slic3r::Test::GCodeReader to Slic3r::GCode::Reader 2013-05-13 20:14:33 +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 7c89476602 Move fan_always_on in the Enable options group. #1166 2013-05-13 18:33:44 +02:00
Alessandro Ranellucci 1aae311148 Fix menus for --no-plater. #1112 2013-05-13 18:30:12 +02:00
Alessandro Ranellucci f6dc712158 Bugfix: most of the File menu items didn't work with --no-plater. #1112 2013-05-13 18:22:47 +02:00
Alessandro Ranellucci d2425748a3 Code cleanup and remove arc compensation code 2013-05-13 13:18:58 +02:00
Alessandro Ranellucci 5efa409c7c Move gap fill to its own method 2013-05-13 13:07:22 +02:00
Alessandro Ranellucci 1d94618c5e Correctly detect external hole perimeters 2013-05-13 12:52:57 +02:00
Alessandro Ranellucci ca549cd2fe Perimeters refactoring complete 2013-05-11 21:30:26 +02:00
Alessandro Ranellucci 67b24efd49 Incomplete work - still wrong order 2013-05-11 21:05:29 +02:00
Alessandro Ranellucci df62c25c8f One more offset_ex() optimization 2013-05-11 09:39:38 +02:00
Alessandro Ranellucci 0e100827f8 Avoid useless looping and usage of ExPolygons 2013-05-11 09:35:33 +02:00
Alessandro Ranellucci 6e216e2fd9 New traverse_pt() 2013-05-11 09:24:48 +02:00
Alessandro Ranellucci 7953dcfb12 Merge branch 'better-brim'
Conflicts:
	lib/Slic3r/Geometry/Clipper.pm
	lib/Slic3r/Print.pm
2013-05-11 09:19:23 +02:00
Alessandro Ranellucci bac5093de4 Alwyas apply disable_fan_first_layers, even if cooling is disabled, since fan_always_on is applied in that case as well. Update descriptive text and have it appear in case of disabled auto cooling. #1166 2013-05-10 15:09:27 +02:00
Alessandro Ranellucci 6b8894cf9a Rename ex_int_offset2 to offset2_ex 2013-05-10 13:56:29 +02:00
Alessandro Ranellucci 993fcd9182 Revert "Smarter ordering of brim loops. #687" until new Math::Clipper is out
This reverts commit 4aad2f6243.
2013-05-10 13:51:28 +02:00
Alessandro Ranellucci 5bf3f5f5e4 Make sure brim paths don't overlap 2013-05-10 13:47:40 +02:00
Alessandro Ranellucci 4aad2f6243 Smarter ordering of brim loops. #687 2013-05-09 14:52:56 +02:00
Alessandro Ranellucci 855ba90332 New script to generate vertical section cuts from any given G-code file 2013-05-02 11:42:51 +02:00
Alessandro Ranellucci dde3e6e870 Disable Net::DBus. #1015 2013-04-29 15:57:07 +02:00
Alessandro Ranellucci c2301c5796 Don't extend solid layers when fill density is 0 2013-04-29 15:55:50 +02:00
Alessandro Ranellucci f7153d67d0 Make preset placeholders available in Quick Slice too. #921 2013-04-28 23:26:50 +02:00
Alessandro Ranellucci bde730a611 Little fix in SectionCut.pm 2013-04-28 11:31:03 +02:00
Alessandro Ranellucci 6db8afe36d New option to remember last output directory. #698 2013-04-27 21:07:30 +02:00
Alessandro Ranellucci f5bda326b8 Version check. #1006 2013-04-27 20:55:43 +02:00
Alessandro Ranellucci bc9ff47d3f New module to output SVG vertical sections of extrusion paths with real width and height. The commit includes a bugfix to the Polyline->grow() method and some simplification in the Line class which is now child of Polyline 2013-04-27 15:02:13 +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 24fd152ce4 Bugfix: cooling buffer was broken. #1149 2013-04-24 11:19:08 +02:00
Miro Hrončok 55c413627f Bugfix: configuration wizard crash 2 #1077 2013-04-23 16:17:43 +03:00
Mark Hindess 8c26f0da30 Avoid memory leaks by breaking reference cycle: Print -> Fill -> Print 2013-04-18 22:49:43 +01:00
Mark Hindess aac2c45450 Avoid merging meshes when there is only one mesh to merge.
When slicing yoda.stl it reduces peak memory usage by 5% and speeds up
slicing by 13%.
Further optimization using a simple proxy to implement the two methods
(size/extends) needed on the merge meshes is also possible and
undoubtedly worthwhile.
2013-04-18 19:50:05 +01:00
Mark Hindess 407de02fe4 Use binary search for get_layer_range.
Gives a 13% speed up on Teethy_Tiki.stl (thing:49334) with default settings
on my laptop.
When $self->layers->[0]->slice_z == $min_z the returned $min_layer value is
0 rather than the (incorrect?) -1 returned by the old code.
2013-04-18 19:29:05 +01:00
Alessandro Ranellucci 4e6c58f749 TYpo 2013-04-18 19:49:02 +02:00
Alessandro Ranellucci 17f76c4951 Move bridge detection to its own method 2013-04-18 18:43:46 +02:00
Alessandro Ranellucci e088d9b3f7 Cache Slic3r::Fill object 2013-04-18 18:40:59 +02:00
Alessandro Ranellucci 312bb285a0 Fix initialization of Rectilinear filler 2013-04-18 18:37:46 +02:00
Alessandro Ranellucci c46bfc71b4 Merge branch 'master' into boost-optimizations 2013-04-18 17:48:46 +02:00
Alessandro Ranellucci 01bd9040f5 Fix syntax for ex_int_offset2() 2013-04-18 17:46:13 +02:00
Alessandro Ranellucci b160feacfd Merge branch 'master' into clipper-optimizations 2013-04-18 17:36:42 +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 c2aa119c09 Require Boost::Geometry::Utils 0.08 2013-04-09 14:03:24 +02:00
Alessandro Ranellucci 94ed6cd239 Always move Z at travel speed. #1093 2013-04-08 22:23:51 +02:00
Jesse Vincent 7ec6332141 split apart the math in nearest_point_index and short-circuit if we know the candidate is no good 2013-04-07 19:53:15 -04:00
Jesse Vincent e8ca1e59a6 no functional change. only return from one place for clarity 2013-04-07 19:44:32 -04:00
Jesse Vincent da0e67a891 Only look up $point's X and Y once, rather than once on every pass through the loop.
(Those lookups are expensive)
2013-04-07 18:28:08 -04:00
Jesse Vincent 3e8c5804fe Inline comparable_distance_between_points
It was called on an incredibly hot codepath from a single place. At 12313276 calls
on my test .stl, the sub call overhead alone was a significant perf hit.
2013-04-07 18:13:40 -04:00
Jesse Vincent 060d2da7fe Small optimization on an incredibly hot codepath. 2013-04-07 18:01:15 -04:00
Alessandro Ranellucci 7e51cbcf69 Allow 0.1mm slots. #959 #1056 2013-04-04 01:24:40 +02:00
Alessandro Ranellucci b4be61b703 Bugfix: time estimates for cooling were computed for each object separately instead of the whole actual layer. #1071 2013-04-04 01:17:44 +02:00
Alessandro Ranellucci a563801304 Merge branch 'master' of github.com:alexrj/Slic3r 2013-04-04 01:15:46 +02:00
Alessandro Ranellucci 3afeb5c7b5 Second layer commands were written multiple times 2013-04-04 00:52:11 +02:00
Alessandro Ranellucci b725847a51 Bugfix: configuration wizard led to crash with simple mode. #1077 2013-04-03 19:26:59 +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
Devin Grady e602aad998 inspired by f5e48a3, a seems to work to fix 1076 2013-04-01 22:12:51 -05:00
Alessandro Ranellucci bf809d1fd0 Use linestring_length() from Boost 2013-03-31 19:50:22 +02:00
Alessandro Ranellucci 1187f4846d Some Clipper optimizations 2013-03-31 19:40:25 +02:00
Alessandro Ranellucci 0d6ff22e19 Merge branch 'wipe' 2013-03-31 11:36:04 +02:00
Alessandro Ranellucci 0e6d80d33c Bump version number 2013-03-31 11:24:33 +02:00
Alessandro Ranellucci 01e86c2615 Releasing 0.9.9 2013-03-30 15:59:17 +01:00
Alessandro Ranellucci 04d2231901 Bugfix: is_printable() wasn't discarding narrow ring-shaped top/bottom surfaces because it was only considering the contour. This caused extra shell material even in hollow prints. #1049 2013-03-30 11:22:12 +01:00
Alessandro Ranellucci 7f23e72a10 Display preview for small files too. #929 2013-03-30 00:52:45 +01:00
Alessandro Ranellucci 33a4ec660d better handling of too-small and too-short models #929.
These changes handle small models better in the plater preview.
Extremely small thumbnails are preserved instead of culled,
allowing the model to be scaled up. The scale range is extended to
100000% to allow mm-scale objects expressed in meters to be opened
and scaled to mm.
Original coding by mesheldrake
2013-03-30 00:47:13 +01:00
Alessandro Ranellucci ac2356f66a Don't crash at the end of empty prints. #1042 2013-03-30 00:36:14 +01:00
Alessandro Ranellucci 7b7c9f6330 Launch even if config is corrupted. #1067 2013-03-30 00:30:21 +01:00
Alessandro Ranellucci f5e48a306d Bugfix: support material and brim didn't work correctly. Includes unit test. #1074 2013-03-30 00:21:09 +01:00
Alessandro Ranellucci d4119b0eb1 Better bridge direction detection. #1068 2013-03-29 23:49:58 +01:00
Alessandro Ranellucci 5beb2187d3 Bugfix: infill direction wasn't correctly alternated when infilling every 2 layers. #1068 2013-03-29 19:24:08 +01:00
Alessandro Ranellucci 1b79b1cb20 Refactoring: use the clone() method for inflating Surface objects 2013-03-29 19:18:06 +01:00
Alessandro Ranellucci e563c62094 Replace SetValue with ChangeValue to avoid wxWidgets to fire useless events 2013-03-29 18:56:34 +01:00
Alessandro Ranellucci d2b451d9a1 Merge branch 'master' into wipe 2013-03-26 16:28:01 +01:00
Alessandro Ranellucci aae9625a13 Bugfix: solid-infill-below-area wasn't ignored when fill_density = 0, causing solid layers here and there. #1049 2013-03-26 15:47:40 +01:00
Alessandro Ranellucci 2f046799f2 Removed offset() method from Slic3r::Polygon because it only works with ccw polygons 2013-03-26 14:03:24 +01:00
Alessandro Ranellucci 4c41f6c462 Safer safety_offset() for ExPolygons 2013-03-26 13:57:37 +01:00
Alessandro Ranellucci 769ec0cb03 Better clipping of honeycomb paths 2013-03-26 13:04:57 +01:00
Alessandro Ranellucci 843a700e96 Fixes for wipe 2013-03-25 23:06:18 +01:00
Alessandro Ranellucci 4cb36fcbe2 Remove cooling checkbox from simple mode 2013-03-24 21:28:16 +01:00
Alessandro Ranellucci 6bc5de0b5d Allow custom ranges with layer_height = 0 2013-03-24 15:26:55 +01:00
Alessandro Ranellucci b7cd362820 Remove scale from G-code comments 2013-03-19 19:16:13 +01:00
Alessandro Ranellucci 7ec6c6ffba Lower 0.5*w to 0.4*w to fill finer gaps. #1057 2013-03-19 16:08:19 +01:00
Alessandro Ranellucci 34b192fde3 Merge pull request #1059 from cakeller98/Universal_File_Visibility
Added "known" as a valid model file type
2013-03-19 08:05:19 -07:00
Alessandro Ranellucci 9c122bda5e Fix memory leak in avoid_crossing_perimeters. #1044 2013-03-19 16:02:03 +01:00
Alessandro Ranellucci 813aa5b307 Allow drag and drop for OBJ files 2013-03-19 12:25:10 +01:00
Alessandro Ranellucci fd2a5e894a Respect perimeter/infill order when multiple extruders are configured but only one is used 2013-03-19 11:58:03 +01:00
Christopher Keller 8bbaafd830 Added "known" as a valid model file type
=> 'Known files (*.stl, *.obj, *.amf)|*.stl;*.STL;*.obj;*.OBJ;*.amf;*.AMF;*.xml;*.XML',

When dialog pops up, it can see ALL known file types instead of only stl.
2013-03-18 20:52:55 -07:00
Alessandro Ranellucci ec5f0635f7 Add wipe in GUI 2013-03-18 21:20:32 +01:00
Alessandro Ranellucci 96f1b7ab57 Merge branch 'master' into wipe 2013-03-18 21:18:24 +01:00
Alessandro Ranellucci 1abd8c9a9e Remove the 'simplify' handle in ExtrusionPath after the recent refactoring. #1054 2013-03-18 18:03:14 +01:00
Alessandro Ranellucci f0ac1c704e Fix test framework detecting dE=0 as retraction 2013-03-18 18:01:01 +01:00
Alessandro Ranellucci 0b81911cff Bugfix: artifacts near walls. #1049 2013-03-18 17:55:16 +01:00
Alessandro Ranellucci 8ce31c2a2b Don't exclude any infill under internal bridges; revert infill pattern to rectilinear for internal bridges. #240 2013-03-18 13:32:19 +01:00
Alessandro Ranellucci 7f917671ab Bugfix: horizontal projection for high-res models might show corrupted result 2013-03-17 15:39:51 +01:00
Alessandro Ranellucci 8d2c651ef2 $surface->thickness was erroneously defaulting to 1 mm 2013-03-17 14:58:10 +01:00
Alessandro Ranellucci 1064c9bb2a Merge branch 'master' into grow-narrow
Conflicts:
	lib/Slic3r/Fill.pm
	lib/Slic3r/Print/Object.pm
2013-03-17 02:30:20 +01:00
Alessandro Ranellucci 7de8b20bc4 New wipe feature 2013-03-17 02:22:50 +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 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 700fee14aa Set honeycomb as default fill pattern, as it works better at low layer heights and makes stronger parts 2013-03-17 00:24:53 +01:00
Alessandro Ranellucci c999d0c44f Set default value for first_layer_height to 0.35mm so that first_layer_extrusion_width = 200% works fine even when user sets layer_height to 0.1. A first layer height of 0.35mm works fine for both 0.35 and 0.5 nozzles so it should be fine for most users 2013-03-17 00:22:53 +01:00
Alessandro Ranellucci 78a4ae4835 Use full flow for sparse infill by default 2013-03-17 00:21:17 +01:00
Alessandro Ranellucci 35bd5a3423 New --solid-infill-extrusion-width option 2013-03-17 00:02:31 +01:00
Alessandro Ranellucci c13d9e9fb3 Don't collapse overhangs too early 2013-03-16 21:51:38 +01:00