Commit Graph

416 Commits (master)

Author SHA1 Message Date
Alessandro Ranellucci ac0a91a162 Move many speed settings to PrintRegionConfig 2014-05-15 18:53:05 +02:00
Alessandro Ranellucci ad99b2a0fd Fixed one more regression introduced with Model refactoring. Includes regression test 2014-05-15 16:37:18 +02:00
Alessandro Ranellucci ee2c1c6127 Refactored the Slic3r::GCode logic for speeds 2014-05-13 08:34:21 +02:00
Alessandro Ranellucci 5d12a03b82 Move Detect Bridging Perimeters to region config 2014-05-12 23:02:33 +02:00
Alessandro Ranellucci 59f0e76da1 Distinct extrusion role for support material interface 2014-05-12 22:59:49 +02:00
Alessandro Ranellucci 69002b8ea2 No tests were covering randomize-start, which was not working anymore after recent ExtrusionLoop refactoring. #2028 2014-05-12 21:49:17 +02:00
Alessandro Ranellucci a02a7f1a0f Apply workaround for buggy GCC 4.7.2 #1965 2014-05-10 17:03:05 +02:00
Alessandro Ranellucci 27c73f5983 Some fixes after the recent Model refactoring 2014-05-10 16:59:17 +02:00
Alessandro Ranellucci 65b7d27def Draft for binary representation of G-code commands 2014-05-10 15:08:49 +02:00
Alessandro Ranellucci 7ba08c90cf Refactoring to Model API for making it stricter and safer 2014-05-09 14:24:35 +02:00
Alessandro Ranellucci bc023c2d51 Remove new/delete keywords from ClipperUtils.cpp 2014-05-08 15:00:49 +02:00
Alessandro Ranellucci 76a8ec3d9e Replace to_SV_ref() and to_SV_clone_ref() with templated glue functions 2014-05-08 14:52:48 +02:00
Alessandro Ranellucci f76e2c2222 Several minor fixes to Model 2014-05-08 13:33:43 +02:00
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 d2d885fc53 Turn ExtrusionLoop into a collection of polylines. Includes some changes to the Polygon API to avoid returning newly allocatd objects 2014-05-07 12:02:09 +02:00
Alessandro Ranellucci 931f3114c0 Fix clear_objects() and clear_volumes() 2014-05-07 01:23:14 +02:00
Alessandro Ranellucci 13af16ea24 Use Pointf for origin_translation and pass const refs whenever possible 2014-05-07 00:58:29 +02:00
Alessandro Ranellucci 54a199919b Removed StringMap 2014-05-07 00:22:56 +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 cb1527f7ef Refactoring: move direction math into a single function. Includes some fixes and adjustments 2014-05-02 18:48:11 +02:00
Petr Ledvina 028ef3a868 Add missing perlglue.hpp to xsp files
perlglue was missing in some xsp files. If file ordering ib XS.c is changed, header file could be missing. Maybe solves #2000
2014-05-02 14:08:44 +02:00
Alessandro Ranellucci 0a88492fdc Use a more robust parallelism detection 2014-05-02 13:26:59 +02:00
Alessandro Ranellucci c81ffc391d Tentative fix for unreproduced compilation error reported 2014-05-02 11:51:07 +02:00
Alessandro Ranellucci edeb0a90dd Use poly2tri for triangulation. This fixes some cases where polyPartition couldn't triangulate successfully. Reported as issue #9 in polyPartition repository. Tested with MotorHalter_0.stl cut at 1.2 2014-05-01 12:07:11 +02:00
Alessandro Ranellucci 60f640f100 Remove self-intersections before supplying polygon data to polyPartition and rename triangulate2() to triangulate_pp() 2014-05-01 10:37:38 +02:00
Alessandro Ranellucci 9734a40647 Fix Polygon::contains_point() overflowing on Windows. #1950 2014-04-30 16:55:20 +02:00
Alessandro Ranellucci 581376bf75 Rename EMC to LinuxCNC 2014-04-30 15:05:32 +02:00
Alessandro Ranellucci 98e40d3fe4 Store width and height in ExtrusionEntity objects for debugging purposes 2014-04-29 23:16:16 +02:00
Alessandro Ranellucci 24571612c7 Some minor changes to the newly-ported Extruder class 2014-04-28 22:02:34 +02:00
Alessandro Ranellucci 4c330b6c59 Merge pull request #1968 from sapir/extrudercpp
Translate Extruder class to C++
2014-04-28 21:45:53 +02:00
Alessandro Ranellucci 19fdf9b184 Test triangulate2() instead of the faulty triangulate() 2014-04-28 20:19:26 +02:00
Alessandro Ranellucci 2720000a17 New get_trapezoids() implementation. Maybe heavier but it doesn't fail with some versions of GCC like the one provided by Boost.Polygon. #1965 2014-04-28 20:14:20 +02:00
Alessandro Ranellucci d4e97d17d5 Use -O1 with GCC 4.7.0-4.7.2. #1965 2014-04-28 19:24:19 +02:00
Y. Sapir ad03a88733 Add xsp wrapper for Pointf class. 2014-04-28 01:13:50 +03:00
Y. Sapir e005ff32c4 Replace Extruder::config accessor with Perl wrapper, with C++ option accessors. 2014-04-28 00:49:05 +03:00
Y. Sapir 71b0b211ec Constify ConfigOptionVector::get_at. 2014-04-28 00:19:03 +03:00
Y. Sapir d824de6168 Keep pointer to PrintConfig instead of copying it. 2014-04-28 00:03:22 +03:00
Y. Sapir c2b249d059 Add REGISTER_CLASS call for Extruder class. 2014-04-27 23:53:28 +03:00
Y. Sapir 2565d80679 Replace multitude of Extruder fields with querying a PrintConfig object by id. 2014-04-27 23:43:44 +03:00
Y. Sapir b319dc9361 Correctly convert extruder_offset to Point object before passing to C++ code. 2014-04-27 23:43:43 +03:00
Y. Sapir 717d099ae1 Add XS Extruder files to manifest. 2014-04-27 23:43:43 +03:00
Y. Sapir 04fad70cbf Make C++ gcode generator use C++ Extruder object directly. 2014-04-27 23:43:43 +03:00
Y. Sapir 66d23a2416 Convert Extruder object (mostly) to C++ with lots of fields. 2014-04-27 23:42:59 +03:00
Petr Ledvina 115aa6885f Implement type checking for XS objects
Type handling is mainly done using templates.
Template Slic3r::ClassTraits is used to store info about exported types (perl class name). Currently only perl class name and refference name is used.
Template values are initialized by REGISTER_CLASS macro. This macro is used in .cpp file of class ( it needs to be used exactly for each type).

Ref<type> class is used to return value as perl reference. Operator overloading is used to make c++ and XSpp happy, only pointer value should be possible to return.

Clone<type> class is used to return copy of value ( using new and copy constructor). Copy is created on assigment, this should be probably improved (memory leak on multiple assignments).
It is overloaded to be able to return type, type* and type&.

Typechecking in ExtrusionEntityCollection updated to check all passed types.
2014-04-27 19:38:56 +02:00
Y. Sapir 87eee8eea3 Remove execute permissions for clipper source files. 2014-04-27 13:19:11 +03:00
Alessandro Ranellucci ce9cf4d964 Don't put supports under bridges and potential bridges 2014-04-26 17:19:50 +02:00
Alessandro Ranellucci 7e3024d6ad Explain that infill_every_layers can be set to arbitrarily large values in the tooltip 2014-04-25 20:29:37 +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 924cb2e558 Update MANIFEST. #1969 2014-04-25 19:14:03 +02:00
Alessandro Ranellucci f6897a346a Fix islands not being ordered efficiently with the logic that completes each of them before moving to the next one (which is now the default behavior). #1137 2014-04-25 19:11:17 +02:00
Alessandro Ranellucci 8db4913b04 New option for rotating the lower part resulting from the cut so that the flat surface lies on the print bed 2014-04-25 17:50:03 +02:00
Alessandro Ranellucci 4f17c2b7d1 First working implementation of a GUI for cutting 2014-04-25 17:14:39 +02:00
Alessandro Ranellucci 334bc4c581 Fix cut() test 2014-04-25 13:27:45 +02:00
Alessandro Ranellucci 4f5d9ca795 Finished --cut implementation 2014-04-25 12:40:21 +02:00
Alessandro Ranellucci fe1691c151 New --cut feature 2014-04-25 10:20:30 +02:00
Alessandro Ranellucci 37c7b958d4 New ExPolygon::triangulate() method 2014-04-24 17:06:16 +02:00
Alessandro Ranellucci bb0ce3cccd New Polygon::triangulate_convex() method 2014-04-24 16:59:36 +02:00
Alessandro Ranellucci ca4d4211c9 Refactored signatures of many C++ methods for more efficient and safer style. Includes a bugfix for Point::nearest_point() which was returning a pointer to freed memory. #1961 2014-04-24 16:40:10 +02:00
Alessandro Ranellucci 6201aacf88 New coverage detection for bridges. Includes implementation of ExPolygon::get_trapezoids() 2014-04-24 13:44:39 +02:00
Alessandro Ranellucci 1fc76b73a4 Merge pull request #1953 from ledvinap/fix-clipper-1834
Apply bug fix from upstream clipper. Fixes #1834
2014-04-22 15:39:42 +02:00
Petr Ledvina c30040b691 Apply bug fix from upstream clipper
Clipper fix in commit [r463] for bug repport #92 (http://sourceforge.net/p/polyclipping/code/463/tree//trunk/cpp/clipper.cpp?diff=504b9404fd48f873331e913b:462)
is applied here.
2014-04-22 15:19:35 +02:00
Alessandro Ranellucci bc101bd93e Assume bridge angle is stored in radians in infill generation. #1917 2014-04-21 23:21:15 +02:00
Alessandro Ranellucci 7041ebdd22 Workaround for upstream module bug causing command line option parsing for multi-boolean options like retract-layer-change and wipe 2014-04-19 19:14:41 +02:00
Alessandro Ranellucci 8018eac0f0 Set min temperature to 0 2014-04-19 18:32:04 +02:00
Alessandro Ranellucci c3bb8a69db Bugfix: crash when extending an array option by 2+ positions. #1908 2014-04-19 16:38:28 +02:00
Alessandro Ranellucci f51921a11a Default extruder wasn't applied to perimeter extruder. Includes regression test. #1868 2014-04-19 11:43:41 +02:00
Alessandro Ranellucci 93a7d87fc6 Bugfix: pillars support material crashed when no overhangs were detected 2014-04-07 16:59:22 +02:00
Alessandro Ranellucci 1c020eda78 Merge pull request #1911 from sapir/speed
Rewriting the extrusion path gcode generation in C++
2014-04-07 09:38:21 +02:00
Alessandro Ranellucci d6d6a51e0d Fix for incomplete extrusion on solid surfaces 2014-04-05 10:54:24 +02:00
Alessandro Ranellucci b68c55fec0 Bugfix: the Y coordinate of Point config fields was not correctly validated and lead to a crash when entering non-numeric values. Includes regression test. #1906 2014-04-05 09:40:24 +02:00
Y. Sapir 4deeff995a Move extrusion path gcode generation to C++ for speed. 2014-04-01 21:11:43 +03:00
Alessandro Ranellucci bbebcca82c Set default support material pattern to pillars 2014-03-27 00:05:22 +01:00
Alessandro Ranellucci 071097d3f1 Fix extruder assignment and tests 2014-03-27 00:01:33 +01:00
Alessandro Ranellucci 4540350b66 Specify that extruder indices are 1-based in tooltips 2014-03-26 00:14:45 +01:00
Alessandro Ranellucci 0ff33f47f1 Fix the extruder override logic. All role-based extruder options now default to 0, meaning no override is defined and the default (inherited) extruder is used. The default extruder option does not use the shortcut logic anymore (it was thus moved to be a CLI-specific logic) 2014-03-26 00:08:15 +01:00
Alessandro Ranellucci 432a87e73d New option for forcing the generation of interface shells. #1847 2014-03-25 01:11:28 +01:00
Alessandro Ranellucci 91799a9e58 Rephrase the tooltip for start G-code to make its position more clear. #1822 2014-03-24 22:06:35 +01:00
Alessandro Ranellucci 9fa2a17136 Better tooltip for top_solid_infill_speed. #1752 2014-03-24 14:25:12 +01:00
Alessandro Ranellucci 4c6f9703df Fix bad deserialization of extruder_offset = 0x0 2014-03-24 14:16:37 +01:00
Alessandro Ranellucci 7a58457add Prevent GUI from crashing when invalid values were written in numeric fields. Includes basic validation. #1709 2014-03-24 01:07:30 +01:00
Alessandro Ranellucci e9620c30b1 Update Clipper to 6.1.3a 2014-03-23 21:40:35 +01:00
Alessandro Ranellucci d02b64b31b Bugfix: binary STL export produced corrupt results on Windows. #1814 2014-03-23 19:17:56 +01:00
Alessandro Ranellucci 9f8b5f80d1 Add 0% to fill_density combobox 2014-03-23 16:57:12 +01:00
Alessandro Ranellucci d75417601e Make the override panel prettier and prevent the default extruder setting from being deleted since it can't be readded manually 2014-03-23 15:18:08 +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 b5b735c988 ComboBox for fill density values 2014-03-22 17:01:48 +01:00
Alessandro Ranellucci 7421a7bf63 Turn fill_density into percentage 2014-03-22 16:23:33 +01:00
Alessandro Ranellucci ed8a2f7330 Extend medial axis endpoints to fill the entire length. Includes fix for a minor memory leak caused by usage of old signature for Line::point_at() 2014-03-15 16:53:20 +01:00
Alessandro Ranellucci 52de292a48 Fixed wrong refactoring of perimeter tree traversal. #1832 2014-03-15 02:16:04 +01:00
Alessandro Ranellucci b71d28bd5a Fix minor error and update MANIFEST 2014-03-11 19:19:34 +01:00
Alessandro Ranellucci 7f5442265e Include thin walls in general top-level perimeter sorting to get more efficient paths 2014-03-09 20:19:30 +01:00
Alessandro Ranellucci 2a73ab988f Recursive pruning. Some more unit tests 2014-03-09 17:46:02 +01:00
Alessandro Ranellucci 33da6adc3c Better pruning 2014-03-08 11:36:48 +01:00
Alessandro Ranellucci 04d80ca392 Some improvements to pruning and some additions here and there 2014-03-05 18:43:01 +01:00
Alessandro Ranellucci c2ed6090d3 Fix the max width supplied to medial axis code: it's up to two extrusions 2014-03-05 00:53:51 +01:00
Alessandro Ranellucci 4a894b1e20 Add safety offset to thin wall regions to prevent overlapping geometry and corrupt Voronoi diagram 2014-03-05 00:45:17 +01:00
Alessandro Ranellucci e1f93fd112 Consider contour thickness when validating medial axis segments 2014-03-05 00:05:26 +01:00
Alessandro Ranellucci 3c77b301a7 Promising approach to medial axis pruning 2014-03-04 23:33:13 +01:00
Alessandro Ranellucci b49a652736 Rewritten half-edge traversal in a more robust way. Includes first medial axis unit test 2014-03-03 01:48:05 +01:00