Commit Graph

458 Commits

Author SHA1 Message Date
Alessandro Ranellucci
e3e69251cb New XY Size Compensation option. #581 #56 2014-06-10 13:28:57 +02:00
Alessandro Ranellucci
3599bd0bae Distinct extrusion width for external perimeters 2014-06-09 21:22:15 +02:00
Alessandro Ranellucci
28695c719c Fixed regression causing bridge flow to be incorrect when a manual default extrusion width was specified. Includes several regression tests. #2027 2014-06-03 23:59:03 +02:00
Alessandro Ranellucci
f5b9df2413 New implementation of Avoid crossing perimeters using Voronoi diagrams 2014-05-28 10:16:58 +02:00
Alessandro Ranellucci
f018828bfd Simplify islands before initializing MotionPlanner 2014-05-27 01:11:40 +02:00
Alessandro Ranellucci
07b915fb4f Fix MANIFEST 2014-05-27 00:05:45 +02:00
Alessandro Ranellucci
7215e66a6a Merge branch 'master' into visilibity
Conflicts:
	lib/Slic3r/GCode.pm
	xs/MANIFEST
2014-05-27 00:04:53 +02:00
Alessandro Ranellucci
65dd95aaac Update MANIFEST and test 2014-05-27 00:03:23 +02:00
Alessandro Ranellucci
98b8936ee2 Automatically disable retract_layer_change when using spiral_vase 2014-05-26 23:51:58 +02:00
Alessandro Ranellucci
2ac40f9547 Revert "Update Clipper to r468. #2028"
This reverts commit 6a6439576b.
2014-05-26 20:00:59 +02:00
Alessandro Ranellucci
6a6439576b Update Clipper to r468. #2028 2014-05-26 17:21:31 +02:00
Alessandro Ranellucci
b02e459c4b Attempt to fix compilation issue 2014-05-26 17:13:24 +02:00
Alessandro Ranellucci
3d25b9030c Bugfix: movement between objects in sequential printing mode was going too far away. #2013 #2007 2014-05-26 15:19:13 +02:00
Alessandro Ranellucci
0decbbf910 Revert "Updated Clipper to r467 but it doesn't seem to fix #2028 yet"
This reverts commit a62457d6b5.
2014-05-25 23:27:26 +02:00
Alessandro Ranellucci
a62457d6b5 Updated Clipper to r467 but it doesn't seem to fix #2028 yet 2014-05-25 22:48:58 +02:00
Y. Sapir
19d18bdd84 Attempt to solve conflict with a3bd1b5 by adding id to PrintObject and using that as a hash key. 2014-05-25 03:00:29 +03:00
Y. Sapir
9247f21ff8 Add missing include "BoundingBox.hpp" to Polygon.xsp. 2014-05-25 00:55:13 +03:00
Y. Sapir
d2e51242d9 Really fix total_used_filament / total_extruded_volume. 2014-05-25 00:53:47 +03:00
Y. Sapir
07dd799967 Fix inherited Layer::Support id and object accessors. 2014-05-25 00:50:49 +03:00
Y. Sapir
b8b8c746d9 Make clear_regions and delete_region methods private (both Print & Layer), and remove from XSP. 2014-05-25 00:11:17 +03:00
Y. Sapir
22b05cb187 Make read-only constructor parameters - private. 2014-05-24 23:50:45 +03:00
Y. Sapir
76738dc66b Remove some more Clone typemaps and add some whitespace. 2014-05-24 23:50:45 +03:00
Y. Sapir
0486a7f857 Try to fix _copies_shift scaling. 2014-05-24 23:50:45 +03:00
Y. Sapir
db51e4693d Return NULL values from XS as undef. 2014-05-24 23:50:45 +03:00
Y. Sapir
d06c300926 Add ::Ref classes for every missing C++ class (going by REGISTER_CLASS calls). 2014-05-24 23:50:44 +03:00
Y. Sapir
8da0bded1d Move Print object storage to C++. (along with its subobjects) 2014-05-24 23:50:29 +03:00
Alessandro Ranellucci
88a2e5c791 Typo seal -> seam :-) 2014-05-24 22:10:28 +02:00
Alessandro Ranellucci
3df2488eca Disable test until Clipper bug 96 is fixed #2028 2014-05-24 00:10:37 +02:00
Alessandro Ranellucci
ed58f35fe5 Revert "Fix bad test". Test was actually correct. Clipper's still slightly buggy since it splits polylines
This reverts commit bf2af85da5.
2014-05-24 00:09:04 +02:00
Alessandro Ranellucci
bf2af85da5 Fix bad test 2014-05-24 00:01:27 +02:00
Alessandro Ranellucci
fcdb462abe Failing test cases for Clipper bug returning empty result set. #2028 2014-05-24 00:00:15 +02:00
Alessandro Ranellucci
70ceb853f1 Update Clipper to last trunk to fix a couple Clipper bugs causing empty intersection results and failure to process polylines with coinciding endpoints. This also caused crashed in some rare circumstances 2014-05-23 23:58:43 +02:00
Alessandro Ranellucci
a3bd1b5302 New seal_position option that replaces randomize_start, start_perimeters_at_concave_points and start_perimeters_at_non_overhang. The two latter options are now always on by default. A new "Aligned" seal position value has been added, that forces starting points to be aligned when not randomized. #1741 #925 2014-05-22 19:34:49 +02:00
Alessandro Ranellucci
c63bd8165d Fixed minor compilation issue 2014-05-22 13:47:30 +02:00
Alessandro Ranellucci
f2c5e799b1 Enforce seam alignment and blend in spiral vase. #2023 2014-05-22 12:28:12 +02:00
Alessandro Ranellucci
254ab29a97 New Point::projection_onto() methods 2014-05-21 20:08:21 +02:00
Alessandro Ranellucci
874c7a6e8b One line missing for support_material_interface_speed declaration 2014-05-21 15:53:41 +02:00
Alessandro Ranellucci
5e6ff952df Fix more regressions in test suite regarding the workaround for Clipper bug 2014-05-21 15:45:16 +02:00
Alessandro Ranellucci
8ca352eb62 Separate speed option for support material interface. #2009 2014-05-21 15:21:20 +02:00
Alessandro Ranellucci
08279ec5d8 Bugfix: thin walls forming a closed loop had overlapping segments at their endpoints. #1948 #1875 2014-05-21 15:03:31 +02:00
Alessandro Ranellucci
a8b6e32767 Gracefully handle loading config files having empty strings for multi-value options (like wipe). #2003 2014-05-21 11:38:42 +02:00
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
5fe5021fd7 Implemented avoid_crossing_perimeters with VisiLibity 2014-05-13 20:06:01 +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