bubnikv
b4483fdcbd
Fix of "Conditional gcode with "<=" condition fails"
...
https://github.com/prusa3d/Slic3r/issues/683
2018-02-02 11:49:09 +01:00
bubnikv
9d3ade81fa
Fixed placeholder parser tests.
2017-12-21 17:27:24 +01:00
bubnikv
a402b1b83d
Implemented <,>,<=,>=,or,and,||,&& operators.
2017-12-19 16:48:14 +01:00
bubnikv
bb61de8379
Fixed a regression error: The "current_extruder" identifier was not set
...
at the placeholder parser.
Implemented a new PlaceholderParser::evaluate_boolean_expression()
functionality to evaluate just a boolean expression using the full
expressive power of the macro processing syntax. This function
will now be used for deciding, which print or filament preset
is compatible with which printer preset.
2017-12-18 12:14:09 +01:00
bubnikv
ae118519ab
Fixed a 32bit build bug in the new PlaceholderParser macro processor.
2017-11-29 19:27:26 +01:00
bubnikv
6729dc1c6d
Fixed a failing PlaceholderParser test case.
2017-11-29 16:35:48 +01:00
bubnikv
0ddbfccb08
Added some test cases for the conditional G-code math calculator.
...
https://github.com/prusa3d/Slic3r/issues/438
2017-11-28 19:56:32 +01:00
bubnikv
672194b475
Ported the between_objects_gcode custom G-code blocks,
...
thanks @lordofhyphens, https://github.com/alexrj/Slic3r/pull/3275
Improved handling of custom G-code blocks: Slic3r will try to extract
the target extruder and bed temperatures from the custom G-code blocks.
2017-11-28 15:19:57 +01:00
bubnikv
b54a15faa2
Fix of the new PlaceholderParser: Maintain whitespaces and new lines.
2017-11-26 20:43:31 +01:00
bubnikv
708f416c84
PlaceholderParser extended with {if}/{elsif}{else} blocks and
...
+ - * / == != <> numeric expressions.
2017-11-26 09:59:14 +01:00
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
Alessandro Ranellucci
13b63d06ed
Use thick raft layers as we do for support material layers. #2723
2015-03-09 20:00:55 +01:00
Alessandro Ranellucci
d8ee9dd5f5
Limit first object layer height correctly when using a larger support material extruder. #2722
2015-03-09 19:27:57 +01:00
Alessandro Ranellucci
095391d702
When using raft, validate first layer height against support material extruder only instead of taking other extruders into account, thus potentially allowing larger nozzles to be used for it. #2701
2015-03-06 21:35:00 +01:00
Alessandro Ranellucci
722e94513c
Refactoring: removed the non-idempotent init_extruders() step. Also, infill_extruder was not limited to the available number of extruders when slicing from the plater, and support material extruder was considered also when support material was disabled
2015-03-06 09:56:58 +01:00
Alessandro Ranellucci
a3b843b24e
Bugfix: temperature was not set correctly when using sequential printing. Includes regression test. #2702
2015-03-02 23:56:38 +01:00
Alessandro Ranellucci
a07c48bb30
Fixed regression causing [input_filename] and [input_filename_base] not being available in custom G-code anymore. Includes regression test. #1507
2015-02-15 23:47:35 +01:00
Alessandro Ranellucci
6eb1fa36ed
Bugfix: bridge speed was still used for first object layer above raft when support_material_contact_distance == 0. Includes regression tests. #2656
2015-02-14 12:47:33 +01:00
Alessandro Ranellucci
2e88b088e6
Make tests happy with new defaults
2015-01-31 12:10:50 +01:00
Alessandro Ranellucci
229039d3b8
Fixed test and implementation of ooze prevention standby points (wrong test caused wrong implementation). #2103
2015-01-19 15:31:12 +01:00
Alessandro Ranellucci
7b980c1dc9
New option for vertical distance between object and support material, with special handling of the 0 case that disabled bridge flow/speed in order to allow for soluble material. #2491 #2272 #2069 #1942 #2435 #1703
2015-01-19 09:52:24 +01:00
Alessandro Ranellucci
90afbc8bd9
Bugfix: don't crash when skirts > 0 but skirt_height = 0. Includes regression test. #2537
2015-01-18 13:01:00 +01:00
Alessandro Ranellucci
89f0c60fc8
Adapt t/multi.t to new behavior of auto_assign_extruders()
2015-01-17 10:36:42 +01:00
Alessandro Ranellucci
d1243397fa
Make tests happy
2015-01-14 00:14:56 +01:00
Alessandro Ranellucci
406d045ced
The inwards move after an external loop was still randomly generated outwards in some cases. Perimeters are now generated with a distinct iterator for each slice. Nested islands are also correctly supported too. Various regression tests included. #2253
2015-01-08 15:22:13 +01:00
Alessandro Ranellucci
49817aac34
Removed test that doesn't apply anymore because the logic of only_retract_when_crossing_perimeters is much more complex now
2015-01-06 21:04:00 +01:00
Alessandro Ranellucci
0f7933c4f9
Bugfix: pressure regulation accumulated too much retraction and didn't discharge at the end of print. Includes regression test. #2470
2015-01-06 00:35:39 +01:00
Alessandro Ranellucci
3332282767
Unit test for pressure advance. #2470
2015-01-05 20:07:47 +01:00
Alessandro Ranellucci
d46d9079a3
Fixed test after recent change of distance_to_line() semantics
2015-01-03 15:41:54 +01:00
Alessandro Ranellucci
de2fd9721c
Fixed ooze prevention test as well
2014-12-29 01:37:34 +01:00
Alessandro Ranellucci
33f7b08c80
Fix t/support.t after changing contact distance on top surfaces
2014-12-24 12:11:30 +01:00
Alessandro Ranellucci
19548fe301
Don't perform wiping if we have just changed layer and no extrusions were performed before the first retraction. Includes regression test. #2214
2014-12-24 12:02:42 +01:00
Alessandro Ranellucci
092b1724ba
Fixed t/vibrationlimit.t
2014-12-23 11:23:12 +01:00
Alessandro Ranellucci
0ded18207b
Adapt t/fill.t to the new infill internal API
2014-12-22 17:29:23 +01:00
Alessandro Ranellucci
9ac60dca1a
Fixed vibration limit.
2014-12-21 12:39:19 +01:00
Alessandro Ranellucci
21ea100d0e
Fixed tests
2014-12-17 01:15:47 +01:00
Alessandro Ranellucci
9264db7ecd
Removed useless thing added in e79aa2e81c
2014-12-17 00:52:01 +01:00
Alessandro Ranellucci
e79aa2e81c
New --solid-infill-extruder option. Includes a refactoring of the strategy used to order layer extrusions according to their extruder and island; toolchanges and travel moves should be more optimized now. #618
2014-12-17 00:34:00 +01:00
Alessandro Ranellucci
d350241da3
Make combine_infill() completely idempotent. Includes unit testing
2014-12-08 21:23:42 +01:00
Alessandro Ranellucci
9a9ba02d85
Bugfix: infill was not correctly generated when infill_every_layers was used along with raft_layers. Includes regression test. #2396
2014-12-08 20:14:04 +01:00
Alessandro Ranellucci
6ce651eb4a
Fixed wrong implementation of concave_points() and convex_points() in C++. #2384
2014-12-07 19:53:22 +01:00
Alessandro Ranellucci
7a7d00c8d6
Rename solid_fill_pattern to external_fill_pattern and clarify tooltip
2014-11-27 00:38:05 +01:00
Alessandro Ranellucci
23848492ce
Fixed regression causing crash when using avoid_crossing_perimeters with multiple object, caused by recent refactorings. Added regression test
2014-11-26 22:46:51 +01:00
Alessandro Ranellucci
60a76b8cfa
Fixed regression causing retraction to be skipped when Retract Length was 0 but Use Firmware Retraction was enabled. Includes regression test. #2359
2014-11-23 19:32:06 +01:00
Alessandro Ranellucci
379cde30e2
Ported Slic3r::BridgeDetector to XS
2014-11-15 22:41:22 +01:00
Alessandro Ranellucci
6135a9fb8b
Bugfix: a move below z_offset was performed when retract_lift was enabled and lift amount was less than z_offset. Includes regression test. #2349
2014-11-09 19:24:17 +01:00
Alessandro Ranellucci
59f0c64e1c
Fixed regression test for #2301
2014-11-07 17:27:16 +01:00
Alessandro Ranellucci
66b5f45f45
Merge branch 'issue2301-bridge-speed'
2014-11-07 17:18:17 +01:00
Alessandro Ranellucci
fb2d84b5d3
Bugfix: double G10 and G11 commands were issued. #2320
2014-11-07 00:26:39 +01:00
Alessandro Ranellucci
8ad200a352
Minor cleanup of t/gcode.t
2014-11-06 21:13:30 +01:00
Alessandro Ranellucci
9372abb51e
Fixed regression in min_skirt_length. Includes regression test. #2337
2014-11-06 21:11:59 +01:00