Commit Graph

586 Commits

Author SHA1 Message Date
Alessandro Ranellucci
6e207d3830 Merge branch 'sapir-modelcpp' 2014-05-08 11:13:21 +02:00
Alessandro Ranellucci
c37ef2f18b New semantics for ExtrusionLoop objects. Early processing of perimeter overhangs for paralellizing such work and making G-code export lighter. Lots of refactoring. This should fix a number of minor bugs, including reversals of perimeter overhangs. 2014-05-08 11:07:37 +02:00
Alessandro Ranellucci
093d1cbe2f Don't transfer ownership of Model to Print::Object 2014-05-07 01:11:49 +02:00
Alessandro Ranellucci
13af16ea24 Use Pointf for origin_translation and pass const refs whenever possible 2014-05-07 00:58:29 +02:00
Y. Sapir
05b2993769 Translate Model class' storage to C++.
Some code copied from xs-model branch.

Also:
* Generate ::Ref classes programatically.
* Add separate __REGISTER_CLASS macro
    (for use where forward declaration won't work, i.e. typedefs)
2014-05-05 16:30:19 +03:00
Alessandro Ranellucci
2a3923934e Update timestamp before the Export G-code dialog is shown. #1995 2014-05-01 21:42:12 +02:00
Alessandro Ranellucci
98e40d3fe4 Store width and height in ExtrusionEntity objects for debugging purposes 2014-04-29 23:16:16 +02:00
Y. Sapir
2565d80679 Replace multitude of Extruder fields with querying a PrintConfig object by id. 2014-04-27 23:43:44 +03:00
Alessandro Ranellucci
6780e930cb Update the [timestamp] placeholder(s) at every G-code export. #1957 2014-04-25 19:47:13 +02:00
Alessandro Ranellucci
7ac0095018 Fix regression causing default extrusion width to be ignored. #1958 2014-04-25 19:39:27 +02:00
Alessandro Ranellucci
071097d3f1 Fix extruder assignment and tests 2014-03-27 00:01:33 +01:00
Alessandro Ranellucci
10bf334a58 Added one more failing test to address bad option priority hierarchy 2014-03-26 19:42:01 +01:00
Alessandro Ranellucci
b4ac63d749 Error in previous commit: Bugfix: prevent crash when user entered Unicode characters in notes. #1590 2014-03-24 17:52:50 +01:00
Alessandro Ranellucci
ce984ef78c Revert "Error in previous commit: Bugfix: prevent crash when user entered Unicode characters in notes. #1590"
This reverts commit e355e521d4.
2014-03-24 17:52:14 +01:00
Alessandro Ranellucci
e355e521d4 Error in previous commit: Bugfix: prevent crash when user entered Unicode characters in notes. #1590 2014-03-24 17:02:25 +01:00
Alessandro Ranellucci
d9d2f3b3ab Bugfix: prevent crash when user entered Unicode characters in notes. #1590 2014-03-24 16:37:20 +01:00
Alessandro Ranellucci
fec41d6dfd Update plater and print upon changing object parts and their settings 2014-03-23 16:45:55 +01:00
Alessandro Ranellucci
21e6de0e59 Only expand shortcut options in StaticConfig objects. This way we can keep a default extruder value in the parts panel 2014-03-22 20:12:54 +01:00
Alessandro Ranellucci
34f1511e0c Better fix for non-global options not being replaced in filename placeholders. Includes refactoring and a new PlaceholderParser class. Also includes regression tests. #1831 2014-03-17 00:39:07 +01:00
Alessandro Ranellucci
bc054e613c Fix regression causing non-global config options to be ignored when replacing placeholders in output filename format. #1831 2014-03-15 20:45:10 +01:00
Alessandro Ranellucci
96c2c21707 Minor bugfix for preventing wrong extruder numbers from being assigned 2014-03-15 18:24:56 +01:00
Alessandro Ranellucci
fd43ada293 Remove duplicated "Generating skirt" status message 2014-01-18 16:36:13 +01:00
Alessandro Ranellucci
12b661e877 Adapt skirt logic to the potential situation of objects with different layer heights 2014-01-12 11:06:21 +01:00
Alessandro Ranellucci
ea173cf815 Bugfix: ambiguous semantics of the layers_count() method caused M73 to go beyond 100%. #1670
Conflicts:

	lib/Slic3r/GCode.pm
	lib/Slic3r/Print.pm
	lib/Slic3r/Print/Object.pm
2014-01-11 17:40:09 +01:00
Alessandro Ranellucci
ed3a6349c7 Adapt the new gcode.t test to master (and subtract final retraction from used filament length) 2014-01-11 14:42:31 +01:00
Alessandro Ranellucci
c8a48b4527 Implement modifier volumes and port _merge_loops() to XS 2014-01-07 15:40:38 +01:00
Alessandro Ranellucci
b17d06f9d1 Finished porting BoundingBox to XS 2014-01-07 12:48:09 +01:00
Alessandro Ranellucci
07b9b12475 Make tests pass 2014-01-05 00:36:33 +01:00
Alessandro Ranellucci
a2cbb261cb More work for refactoring Flow/Extruder 2014-01-03 20:02:00 +01:00
Alessandro Ranellucci
8ed738d3f7 More incomplete work for Flow/Extruder refactoring 2014-01-03 18:27:46 +01:00
Alessandro Ranellucci
52ce6e4a7b Some initial work for refactoring Print->extruders 2014-01-03 10:44:36 +01:00
Alessandro Ranellucci
b9793b3f12 Moved first_layer_extrusion_width to PrintConfig 2014-01-03 00:34:30 +01:00
Alessandro Ranellucci
81663215c5 Adapt plater to the new split config 2014-01-02 22:06:58 +01:00
Alessandro Ranellucci
5bf0942f45 Satisfy test suite and CLI 2014-01-02 17:24:23 +01:00
Alessandro Ranellucci
e2f1040a76 More work 2014-01-02 10:44:54 +01:00
Alessandro Ranellucci
0883d0f4eb More work here and there 2014-01-01 17:29:15 +01:00
Alessandro Ranellucci
83326845dd More incomplete work 2013-12-31 14:33:03 +01:00
Alessandro Ranellucci
beb1baa096 Incomplete work for refactoring regions and flows 2013-12-30 18:28:41 +01:00
Alessandro Ranellucci
57e4e5c8e1 One more fix for ooze_prevention and skirt_height == -1 2013-12-24 15:33:54 +01:00
Alessandro Ranellucci
f9d38f6655 Allow value -1 for skirt_height with the meaning of: as tall as the object. This might fix an overflow on 32-bit systems when ooze_prevention is enabled 2013-12-24 15:16:10 +01:00
Alessandro Ranellucci
bd133d9434 Update Clipper to 6.1.2 2013-12-24 12:40:46 +01:00
Alessandro Ranellucci
2956c1a2e5 More work for removing references to $Slic3r::Config 2013-12-24 11:58:36 +01:00
Alessandro Ranellucci
1157a7f859 Remove package variable $Slic3r::Config 2013-12-24 11:29:31 +01:00
Alessandro Ranellucci
7ddf4f3ddf Fixes to complete_objects to make t/gcode.t pass 2013-12-24 01:13:02 +01:00
Alessandro Ranellucci
4f58a1c401 Rewrite avoid_crossing_perimeters() to fix a regression and get better performance by choosing regular points along contours. #1531
Conflicts:

	lib/Slic3r/GCode/MotionPlanner.pm
2013-12-22 19:07:07 +01:00
Alessandro Ranellucci
ab25cc4940 Merge branch 'xs-config'
Conflicts:
	lib/Slic3r/Config.pm
	xs/MANIFEST
2013-12-22 01:41:55 +01:00
Alessandro Ranellucci
c0070a8d54 Satisfy test suite with new XS based config 2013-12-22 01:38:10 +01:00
Alessandro Ranellucci
1cee992604 Temporarily disabled step-based slicing 2013-12-20 01:38:00 +01:00
Alessandro Ranellucci
a6a6a6888b Ported Slic3r::Print::State to XS 2013-12-20 01:36:42 +01:00
Alessandro Ranellucci
d2295cdf70 New Slic3r::Print::State class 2013-12-19 18:54:24 +01:00
Alessandro Ranellucci
685e8e4dfa More work for step-based slicing 2013-12-19 15:23:10 +01:00
Alessandro Ranellucci
5280b05ebb Initial work for step refactoring 2013-12-19 12:11:02 +01:00
Alessandro Ranellucci
15235699e4 Completed adapting plater behavior to new Print object API 2013-12-18 18:54:11 +01:00
Alessandro Ranellucci
916a0a0e58 Fix compilation and test suite 2013-12-18 16:34:31 +01:00
Alessandro Ranellucci
0591eecab7 Lazy mesh generation so that we only keep it in model object 2013-12-18 00:13:41 +01:00
Alessandro Ranellucci
02df73c94b More refactoring to clean up the Print object API 2013-12-16 00:54:59 +01:00
Alessandro Ranellucci
d3171b1eea More work for updating the embedded Print object when Model is changed in plater 2013-12-16 00:36:53 +01:00
Alessandro Ranellucci
250608aa52 Move centering outside the Print object 2013-12-15 16:17:12 +01:00
Alessandro Ranellucci
2eff7c238e Some initial work for stateful Print object 2013-12-13 14:02:01 +01:00
Alessandro Ranellucci
5470fbbebc Make quick_slice() work with new model handling 2013-12-13 12:18:30 +01:00
Alessandro Ranellucci
0e8a0ef1ca Refactoring. Use Model class for representing the plate in GUI 2013-12-12 20:19:33 +01:00
Alessandro Ranellucci
f55e057504 More work for refactoring add_model() to add_model_object(). Tests pass 2013-12-09 01:12:37 +01:00
Alessandro Ranellucci
7871673bf6 Initial work for new model handling 2013-11-27 12:18:24 +01:00
Alessandro Ranellucci
bd8c430afd Merge branch 'stable'
Conflicts:
	lib/Slic3r/Geometry/Clipper.pm
	lib/Slic3r/Layer/Region.pm
2013-11-24 22:48:31 +01:00
Alessandro Ranellucci
387df3b900 Fix regression causing toolchange_gcode to crash Slic3r. Includes regression test. #1545 2013-11-24 13:04:16 +01:00
Alessandro Ranellucci
a93c862338 Ported traverse_pt() to XS 2013-11-23 23:21:59 +01:00
Alessandro Ranellucci
0516aac715 Ported chained_path() to XS 2013-11-23 21:39:05 +01:00
Alessandro Ranellucci
e75dbf37fa Never scale TriangleMesh objects 2013-11-23 19:25:33 +01:00
Alessandro Ranellucci
de9d5403e8 Finished porting convex_hull() to XS and removed dependency on Math::ConvexHull::MonotoneChain 2013-11-22 22:48:07 +01:00
Alessandro Ranellucci
4577f0725c Incomplete work for XS-based convex_hull 2013-11-22 21:43:35 +01:00
Alessandro Ranellucci
518798beb3 Incomplete work for porting simplify() to XS 2013-11-21 20:25:24 +01:00
Alessandro Ranellucci
5f81292f3f Ported encloses_point() to XS and renamed to contains_point() 2013-11-21 16:21:42 +01:00
Alessandro Ranellucci
50c0081d25 Update Clipper to 6.0.0 2013-11-20 11:35:58 +01:00
Alessandro Ranellucci
583fc767d8 Fix regression in Avoid Crossing Perimeters. #1531 2013-11-18 17:20:48 +01:00
Alessandro Ranellucci
beb7939e22 Rename standby_temperature to ooze_prevention. #1523 2013-11-15 16:01:15 +01:00
Alessandro Ranellucci
5e78f8a0b0 Make sure all extruders are outside skirt at toolchange when standby_temperature is enabled 2013-11-15 15:52:11 +01:00
Alessandro Ranellucci
9f41f0279e Some work to reduce recursive dependencies between classes 2013-11-11 20:37:06 +01:00
Alessandro Ranellucci
bad8afdcda Fix regression causing incomplete output filepath expansion. #1514 2013-11-11 00:08:50 +01:00
Alessandro Ranellucci
4755e61d71 Bugfix: [input_filename] and [input_filename_base] were only available in the filename pattern and not in the custom G-code settings. #1507 2013-11-02 15:49:20 +01:00
Alessandro Ranellucci
0b63afb370 Fix complete_objects after XS port. Includes regression test. #1511 2013-11-02 14:44:30 +01:00
Alessandro Ranellucci
f603db5e84 Fix --export-svg 2013-10-13 11:45:22 +02:00
Alessandro Ranellucci
032698fb07 Test that toolchanges happen outside skirt when standby-temperature is enabled 2013-09-19 10:44:29 +02:00
Alessandro Ranellucci
40fd7418cd Added test for standby_temperature 2013-09-19 01:29:34 +02:00
Alessandro Ranellucci
0062c3b7fc Almost finished the implementation of --standby-temperature 2013-09-18 20:03:59 +02:00
Alessandro Ranellucci
e0da81e8bf Introduce a ->count method for all collections to save time 2013-09-17 23:38:23 +02:00
Alessandro Ranellucci
9a51964e98 Clean medial axis code and gap fill 2013-09-17 10:37:01 +02:00
Alessandro Ranellucci
aef5c05c57 Update brim generation code. Includes regression test. #1440 2013-09-16 10:33:30 +02:00
Alessandro Ranellucci
a821eb7f3c More work to avoid working with vertices outside XS 2013-09-11 11:55:08 +02:00
Alessandro Ranellucci
566d38a472 Replace TriangleMesh with the XS port 2013-09-10 00:40:46 +02:00
Alessandro Ranellucci
2d3dae621a Minor typos preventing correct positioning after recent XS merge 2013-09-05 14:23:31 +02:00
Alessandro Ranellucci
67aefdccc7 Fixed --avoid-crossing-perimeters and --support-material after the xsdata merge 2013-09-04 00:10:53 +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
fb763b0187 Removed dependency on Math::Clipper 2013-08-27 01:26:44 +02:00
Alessandro Ranellucci
b11b595c97 Ported nearest_point() and nearest_point_index() 2013-08-27 00:52:20 +02:00
Alessandro Ranellucci
fe42427a54 Ported Polygon->is_valid() and ExPolygon->is_valid() 2013-08-26 23:27:51 +02:00
Alessandro Ranellucci
da0b85c0d9 Ported ExPolygon->contour and ExPolygon->holes 2013-08-26 23:09:18 +02:00
Alessandro Ranellucci
9cf831b9c5 Ported union_pt() to XS 2013-08-26 18:37:19 +02:00
Alessandro Ranellucci
49040db9a3 Fixes to pass all tests 2013-08-26 16:25:42 +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
026e0c06e4 Ability to customize how materials are mapped to extruders. #1020 2013-08-25 19:52:32 +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
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
cde662cb51 Fix collision detection for brim 2013-08-09 14:22:41 +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
6ddeb2fa07 Initialize support material interface extruder explicitely. #1364 2013-07-31 19:52:25 +02:00
Alessandro Ranellucci
415a2d165a Cleaner code for first layer temperatures 2013-07-31 18:55:23 +02:00
Alessandro Ranellucci
60e5e2166a Include support contact layers in skirt/brim generation 2013-07-31 16:29:44 +02:00
Alessandro Ranellucci
913f401280 Merge new-support2 2013-07-29 20:50:26 +02:00
Alessandro Ranellucci
a2cc230bb5 Add note about a bug caused by the disabled optimization about splitting meshes before avoid_crossing_perimeters. #1315 2013-07-29 19:50:47 +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
1b285f3f46 Thread-safe integration of ExtrusionPath::Collection 2013-07-18 22:29:12 +02:00
Alessandro Ranellucci
c7b6818ccf Ported offset() and offset2() 2013-07-17 00:48:29 +02:00
Alessandro Ranellucci
898007fc36 Port offset_ex() and offset2_ex() to XS 2013-07-16 20:09:53 +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
ab6b3d41a7 XS interface completed, including new Line class 2013-07-15 22:57:22 +02:00
Alessandro Ranellucci
9af2a1c007 Use XS Point everywhere 2013-07-15 20:31:43 +02:00
Alessandro Ranellucci
159a009f96 Fix tests here and there 2013-07-15 15:26:56 +02:00
Alessandro Ranellucci
13e3a9129c Use Slic3r::ExPolygon::Collection for Layer->slices 2013-07-14 15:06:49 +02:00
Alessandro Ranellucci
7534c1e6d9 Use Slic3r::Surface::Collection for Layer::Region->slices 2013-07-14 15:03:45 +02:00
Alessandro Ranellucci
5885be881c New Slic3r::Surface::Collection class 2013-07-14 14:56:43 +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
fcd4de00e5 One more fix for --complete-objects working on single-object plates 2013-06-19 18:01:24 +02:00
Alessandro Ranellucci
5843f5df6c Fix regression in --complete-objects causing fatal error and/or wrong warnings about object heights 2013-06-19 17:34:37 +02:00
Alessandro Ranellucci
799aeedd97 Fixed wrong refactoring in ac4a0bcdd8 2013-06-17 13:32:53 +02:00
Alessandro Ranellucci
3bcf1da702 Disable avoid_crossing_perimeters optimization until we can detect nested shells. #1254 2013-06-16 16:04:19 +02:00
Alessandro Ranellucci
ac4a0bcdd8 Refactoring: use Slic3r::Geometry::BoundingBox objects everywhere 2013-06-16 12:21:25 +02:00
Alessandro Ranellucci
a8981b8b35 Bugfix: infill was clipped badly. Includes regression test. #1245 2013-06-15 12:10:57 +02:00
Alessandro Ranellucci
962a51cc80 Some cleanup for the plater code 2013-06-13 14:33:10 +02:00
Alessandro Ranellucci
aee7b70d79 Bugfix: the order of transformations was not consistent in plater and actual G-code generation. #1171 #1191 2013-06-12 16:53:19 +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
f991e3bc10 Fixed SVG export and added regression test 2013-06-07 12:00:03 +02:00
Alessandro Ranellucci
230367b383 Order objects using a nearest neighbor search instead of relying on the order in plater. #1184 2013-06-03 21:54:55 +02:00
Alessandro Ranellucci
3ffe98f0c3 Use actual Z to order objects in sequential printing rather than layer count, as layer heights might be different 2013-06-03 21:40:13 +02:00
Alessandro Ranellucci
c95245f143 Some G-code flavor logic simplification 2013-06-03 18:01:14 +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
7134df4638 Only skip objects with no layers without stopping the whole job 2013-06-03 11:39:23 +02:00
Alessandro Ranellucci
895e0bbfcd Include M82/M83 for Teacup too. #1206 2013-06-02 19:58:29 +02:00
Alessandro Ranellucci
086ec4af9c Fixed yet one more regression in Quick Slice caused by recent Model refactoring. #1208 2013-06-02 19:32:53 +02:00
Alessandro Ranellucci
655d528d92 Fixed recent regression causing a spike when avoid_crossing_perimeters was used on split objects 2013-06-02 16:56:08 +02:00
Alessandro Ranellucci
49531f6f78 Fixed regression causing rotation from plater to also translate the resulting G-code. #1191 2013-05-31 19:41:31 +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
bbb190dc68 Generate infill using each object's bounding_box instead of full print. #1177 2013-05-19 11:35:41 +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
55071e544f Fix brim spacing. #1174 2013-05-16 12:29:46 +02:00