Commit Graph

406 Commits

Author SHA1 Message Date
bubnikv
47f193fe2d The PlaceholderParser has been rewritten to use
a real boost::spirit::qi parser, accessing the DynamicConfig repository
directly. This is a first step towards a full fledged expression
interpreter.
2017-11-17 11:15:46 +01:00
bubnikv
e8b6d92d4d Looks like the reworked C++ preferences start to work again. 2017-11-02 16:21:34 +01:00
bubnikv
2455aee97c Further reduction of Perl Config.pm methods. 2017-10-27 18:52:35 +02:00
bubnikv
401059066e Switched to Perl local::lib for local compilation.
Taken from upstream Slic3r, thanks @alexrj.
2017-08-18 09:58:50 +02:00
bubnikv
aaefb76888 Fixed test cases after change of the "sane" extrusion widths.
Changed the default perimeter / infill overlap to 25%.
2017-07-20 11:03:54 +02:00
bubnikv
81823fe7df Reduced the content of Geometry.pm, removed unused Perl subroutines.
Reduced the use Slic3r::Geometry and use Slic3r::Geometry::Clipper
clauses to only reference used subroutines.
2017-07-19 10:45:39 +02:00
bubnikv
bf9027ff2d Fix of a cooling buffer over multiple extruders. 2017-06-30 19:07:14 +02:00
bubnikv
1158ce41df Finalized implementation of a cooling buffer for multiple extruders
with different settings.
2017-06-30 17:05:58 +02:00
bubnikv
32fa84c5a5 Fix of https://github.com/alexrj/Slic3r/issues/4043 , thanks to @lordofhyphens.
Further refactoring of the cooling logic to collect per extruder data.
2017-06-23 10:13:09 +02:00
bubnikv
0454cc95f9 Ported the cooling changes from @alexrj: Don't slow down the external
perimeters if not necessary, don't take the bridging time into account
when slowing down the print.

Removed Extruder & GCodeWriter Perl bindings.
Improved Extruder for constness.
Refactored GCode::m_elapsed_time to struct ElapsedTime.
2017-06-22 12:59:23 +02:00
bubnikv
f0325575c2 Slic3r has been modified to propagate the following filament specific
values to GCode generator, one per active extruder:

bed_temperature
bridge_fan_speed
cooling
disable_fan_first_layers
fan_always_on
fan_below_layer_time
first_layer_bed_temperature
max_fan_speed
min_fan_speed
min_print_speed
slowdown_below_layer_time

Now it remains to extend Slic3r to correctly apply these values.
2017-06-21 16:15:39 +02:00
bubnikv
e0a24f94c0 Removed Object.pm support_material_flow method. 2017-06-08 18:13:12 +02:00
bubnikv
e90279c513 Ported the G-code generator from Perl to C++.
Removed GCode.pm
Removed the Perl bindigns for AvoidCrossingPerimeters, OozePrevention, SpiralVase, Wipe
Changed the std::set of extruder IDs to vector of IDs.
Removed some MSVC compiler warnings, removed obnoxious compiler warnings when compiling the Perl bindings.
2017-05-03 18:28:22 +02:00
bubnikv
72ae3585e4 Removed a broken Arc Fitting feature.
Removed the questionable Pressure Advance feature. It is better to use the Pressure Advance implemented into a firmware.
Added a C++ implementation of GCodeReader and SpiralVase, thanks to @alexrj
Added a C++ implementation of GCodeTimeEstimator, thanks to @lordofhyphens
2017-04-26 14:24:31 +02:00
bubnikv
ed2ee2f6f3 Merged support_fills with support_interface_fills.
When extruding supports, the support is interleaved with interface
if possible (when extruded with the same extruder).
Otherwise the base is extruded first.
2017-04-07 17:37:30 +02:00
bubnikv
cc9460b8fa Increased a threshold for print centering from EPSILON to 5um
to account for the decimation of the brim lines.
2017-03-23 13:21:44 +01:00
Alessandro Ranellucci
6a90fceaaf Ported expanded_output_filepath() to C++/XS 2017-02-28 10:38:32 +01:00
bubnikv
616788a600 Disabling the support tests until the test suite is modified
for the new supports.
2017-02-26 23:16:26 +01:00
Alessandro Ranellucci
4a84643894 Fixed regression causing slowdown_below_layer_time to be ignored. #3515 #3443 2017-02-22 15:29:14 +01:00
Alessandro Ranellucci
a65c9ba083 Ported CoolingBuffer to C++/XS 2017-02-21 14:02:47 +01:00
Joseph Lenox
eb9f1808c0 Test to ensure that the repetier firmware returns the correct acceleration M code and that the values are set properly. 2017-02-10 09:39:33 +01:00
bubnikv
38cb2842ac support_material_synchronize_layers implementation 2016-11-30 16:06:12 +01:00
bubnikv
79f5a16536 Reverted the perimeter generator to not save the perimeter areas.
These could be calculated from the fill areas if needed.
On the other side, the non-classified (non-split) fill areas are stored
now for use in the "ensure vertical wall thickness" feature,
also the non-split fill areas are re-used when recalculating the infills.
This is safer than trying to stitch the fill region together from the
classified fragments.

Modified the "ensure vertical wall thickness" feature to use the non-split
fill areas instead of perimeter areas for the calculation
of non-supported regions. This is cheaper as the fill areas contain
roughly half the edges.
2016-11-17 23:22:59 +01:00
bubnikv
22ca927f12 Reworked the bridge detector to allow searching a single bridging
direction over multiple regions. This allows a single bridge to be
drawn over holes, which are too close to each other to allow
for separate bridges.
Fixes Bridging-Angle not optimal
https://github.com/prusa3d/Slic3r/issues/12

Re-allowed adaptive infill line width for solid infills. The adaptive
infill line width works in some circumstances, see Issue #15,
but the original implementation often changed the line width too
aggressively. The current implementation limits the line width change
to 20%.
Fixes Gaps between infill and perimeter leads to errors in laydown on following layer
https://github.com/prusa3d/Slic3r/issues/15
2016-11-08 09:59:25 +01:00
bubnikv
d530bdba67 Test of a 100% coverage by the FillRectilinear2 has been disabled before,
now also the expected number of tests executed has been adjusted accordingly.
2016-11-02 17:15:05 +01:00
bubnikv
28ccb51f9b Fixed a crash when accessing a non-existing config value from C++ infill.
Disabled a test case of 100% infill coverage. This needs to be
yet improved.
2016-11-02 16:55:56 +01:00
bubnikv
95ede7c4b8 Rewrote Fill2.pm to C++, deleted Perl infills for good.
Removed dependency on Perl Math::PlanePath module.
Fixed compilation with Visual Studio and SLIC3R_DEBUG: Visual Studio older than 2015 does not support the prinf type specifier %zu. Use %Iu instead.
C++11 move semantics enabled.
2016-11-02 10:47:00 +01:00
bubnikv
1fb57e439e Defined the +-* operators on Pointf.
Removed the deprecated VibrationLimit feature.
Added triangle infill.
The Prusa3D fork of Slic3r has been marked as "Slic3r Prusa Edition"
with menus pointing to the prusa3d/slic3r github release page
and Prusa3D drivers downloads page.
2016-10-21 16:53:42 +02:00
bubnikv
b5e24d3527 Fix of a test case of PerimeterGenerator. 2016-09-28 11:17:59 +02:00
bubnikv
8564ac391c Test case for Bugfix: use Lift-z option for 2. extruder #3385
thanks to
https://github.com/platsch
2016-09-26 12:50:05 +02:00
Alessandro Ranellucci
9e8022f6f6 More refactoring to medial axis and gap fill, more robust 2016-05-20 17:03:57 +02:00
Chow Loong Jin
a94402a8a2 Update tests for new GCode style and markers 2016-04-10 16:40:18 +08:00
Alessandro Ranellucci
7041bb5bd9 Rewritten the medial axis algorithm, now more robust (don't just prune MAT from endpoints, but validate all single edges) 2016-03-26 01:45:08 +01:00
Alessandro Ranellucci
5ff7511a14 Fixed regression in bridging caused by error in porting. Includes regression test. #3175 2016-03-18 22:40:29 +01:00
Alessandro Ranellucci
790dbfe9a8 Fix false positive in lift unit test 2015-12-19 15:00:56 +01:00
Alessandro Ranellucci
a2ea191d84 Fix regression in lift, includes regression test 2015-12-19 12:44:22 +01:00
Alessandro Ranellucci
8138fbf349 New --retract-lift-above and --retract-lift-below options. #763 #3057 2015-12-18 18:36:39 +01:00
Alessandro Ranellucci
48f1fab49f Bugfix: an error in porting caused bad perimeter ordering. Includes regression test and more unit tests for PerimeterGenerator 2015-12-01 20:40:00 +01:00
Alessandro Ranellucci
6ac79e3ed6 Ported make_perimeters() to C++ 2015-07-23 16:27:21 +02:00
Alessandro Ranellucci
b4515cf695 Finished porting PerimeterGenerator to C++ 2015-07-23 15:53:02 +02:00
Alessandro Ranellucci
b14290b9f6 Make tests happy 2015-07-02 14:29:20 +02:00
Alessandro Ranellucci
b4019bb438 Ported more Slic3r::GCode methods to XS 2015-07-01 23:00:52 +02:00
Alessandro Ranellucci
801f629fdc Ported Slic3r::GCode storage to XS 2015-07-01 21:47:17 +02:00
Alessandro Ranellucci
76b2e88551 Removed setenv() test as we can't test environment variables in Perl since they are now set in XS 2015-07-01 20:15:52 +02:00
Alessandro Ranellucci
580d28d071 Finished porting PlaceholderParser to XS 2015-07-01 19:35:22 +02:00
Alessandro Ranellucci
f14c0e2183 Bugfix: concave starting points were not correctly detected for slice holes. Includes regression test. #2857 2015-06-01 17:55:51 +02:00
Alessandro Ranellucci
a587e11780 Regression test for overlapping gap fill. #2474 2015-05-22 14:26:01 +02:00
Alessandro Ranellucci
97211f35e7 More robust medial axis pruning. #2800 2015-05-13 20:50:30 +02:00
Alessandro Ranellucci
63af442e3e Bugfix: [layer_num] was out of order because of support material layers having their order numbers. Now we use a unique continuous series. Includes regression test. #2634 2015-05-03 21:41:30 +02:00
Alessandro Ranellucci
1f8ef2a63c Fixed regression introduced by the recent PerimeterGenerator refactoring causing spiral vase not to be correctly skipped on multi-loop layers. Includes regression test. #2761 2015-04-12 20:16:27 +02:00