Commit Graph
100 Commits
Author SHA1 Message Date
bubnikv 4ae0f3a61c Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-25 13:34:55 +02:00
bubnikv 5e8572a196 New functions for variable offsets of polygons / expolygons.
Test cases for the above.
Improvements of older test cases.
2019-10-25 13:34:37 +02:00
bubnikv 18bbefcd61 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-23 15:07:53 +02:00
bubnikv cf94482731 Fix of Voronoi debug output. 2019-10-23 15:07:41 +02:00
bubnikv f6057c1b4f test_printgcode.cpp - trying to replace std::regex with boost::regex
as the std::regex is likely old or incorrect on our old debian/gcc
build server.
2019-10-18 16:50:03 +02:00
bubnikv d1a86e513c Fixing some GCodeExport and Flow unit tests. 2019-10-18 15:44:13 +02:00
bubnikv 6e6b137151 Test of importing non-standard ASCII STL (broken normals, junk
after the ending tags)
2019-10-18 14:42:03 +02:00
bubnikv 7a47784ddf Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-18 13:05:35 +02:00
bubnikv 070070edba Initial tests for import of ASCII STLs with varying line endings. 2019-10-18 13:05:22 +02:00
bubnikv e04e2b3636 Slight improvements of unit tests, fix of perl bindings. 2019-10-18 12:05:37 +02:00
bubnikv 13cc74ef0a Ported test_config.cpp from upstream Slic3r.
Extended ConfigBase with set() functions similar to the upstream Slic3r.
ConfigBase::set_deserialize() newly throws if the operation fails.
Extrusion width parameters are newly tested for negative values.
2019-10-18 11:53:19 +02:00
bubnikv b7af51fd6d Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-17 19:10:50 +02:00
bubnikv 98a71a557b Ported test_support_material.cpp from upstream slic3r.
Ported extension of ExtrusionEntityCollection::flatten() to disable
flattening of no_sort() collections.
2019-10-17 19:09:24 +02:00
bubnikv f9710eff08 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-17 17:09:25 +02:00
bubnikv c228a49fe0 Ported test_support_material from upstream Slic3r.
Reworked the FFF testing framework & ConfigBase::set_deserialize()
for more compact tests: set_deserialize() now accepts list
of key / value pairs.

Fixed an incorrect assert in LayerRegion.
2019-10-17 17:09:15 +02:00
bubnikv 0ee78543a4 Fixed another weird auto + initializer list clang issue. 2019-10-16 18:23:33 +02:00
bubnikv fee4dc3fc0 Fixes of unit tests on OSX. The old clang does not like the way
@lordofhyphens uses the initializer lists together with autos.
2019-10-16 17:55:41 +02:00
bubnikv 76c4eaf19a Ported test_fill from upstream Slic3r, thanks @lordofhyphens 2019-10-16 17:43:43 +02:00
bubnikv c2edcd07cb Ported test_printgcode from upstream Slic3r, thanks @lordofhyphens 2019-10-16 15:40:09 +02:00
bubnikv af7c69bfab Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-16 13:20:49 +02:00
bubnikv a5eb4a4ce1 Ported test_print/test_printobject/test_3mf from upstream Slic3r, thanks @lordofhyphens 2019-10-16 13:20:09 +02:00
bubnikv 6585e58e83 Fix of perl bindings 2019-10-16 11:34:45 +02:00
bubnikv 69c8b1cd21 new cheaper constructor for DynamicPrintConfig from FullPrintConfig:
DynamicPrintConfig::full_print_config()
new cheaper constructors of DynamicConfig / DynamicPrintConfig from ConfigBase
Unit tests: ported test_model from upstream Slic3r, thanks @lordofhyphens
Unit tests refactored to use less autos and initializer lists for readibility,
DynamicPrintConfig is handled by value, not by shared pointer.
2019-10-16 11:16:50 +02:00
bubnikv 90d5712091 Filling in the autos in the tests so it is readible and it compiles on OSX 2019-10-16 09:28:27 +02:00
bubnikv 21837ceb85 Trying to fix compilation issues of the test cases on OSX. 2019-10-15 19:04:02 +02:00
bubnikv 72e99cf35f Fixing some compilation issues of the C++ test cases on OSX. 2019-10-15 18:38:40 +02:00
bubnikv abe856f9fe Ported remove_collinear(Polygon) and test_polygon from upstream slic3r. 2019-10-15 18:08:32 +02:00
bubnikv de45be5f29 Ported test_gcodewriter from upstream Slic3r, thanks @lordofhyphens.
The format for G1 Fxxx was changed to fixed three decimal digits.
2019-10-15 17:35:19 +02:00
bubnikv 88df291372 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-15 16:57:37 +02:00
bubnikv 1964ac2e89 Ported test_skirt_brim from upstream Slic3r, thanks @lordofhyphens 2019-10-15 16:31:20 +02:00
bubnikv c99e7cb0df Ported test_trianglemesh from upstream slic3r, thanks @lordofhyphens 2019-10-15 13:49:28 +02:00
bubnikv 67e1eba8e6 Ported test_data.cpp/hpp & test_flow.cpp from upstream slic3r,
thanks @lordofhyphens
2019-10-15 11:28:20 +02:00
bubnikv e538a06fb0 Added missing include (worked on MSVC) 2019-10-15 09:49:33 +02:00
bubnikv 42a858b999 Added test projects for libslic3r and fff_print.
Added test_geometry.cpp from upstream slic3r, thanks @lordofhyphens
Added circle_taubin_newton() for circle center calculation, thanks @lordofhyphens
2019-10-15 09:40:40 +02:00
bubnikv d815a518bd Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-04 16:50:18 +02:00
bubnikv f8ff23638f Fixed regression due to ExPolygonCollection to ExPolygons refactoring.
Fixed crashes in BridgeDetector due to unexpected implicit conversion
to a const temporary.
2019-10-04 16:50:01 +02:00
bubnikv 546ad99306 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-01 17:17:20 +02:00
bubnikv 564eddd99d FDM Print refactoring:
Layer newly remembers bounding boxes of slices,
the bounding boxes are used by G-code generator & newly the support
generator.
Slices are stored as ExPolygons, not ExPolygonCollection.
2019-10-01 17:17:08 +02:00
bubnikv 0e325824b1 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-01 13:41:42 +02:00
bubnikv 6a07b231e1 Fixed a crash with a layer range modifier containing no slicing layer. 2019-10-01 13:41:22 +02:00
bubnikv 93a157e26c Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-09-30 16:25:31 +02:00
bubnikv 272479826f Refactoring of the G-code preview for lower memory allocation
and for separation of concerns:

The final G-code preview no more uses ExtrusionPaths structure
to hold the G-code path data extracted by parsing the G-code.
Instead, the ExtrusionPath class has been trimmed down back to
the original size before the G-code preview was introduced,
and a new GCodePreviewData::Extrusion::Path class was created to hold
the additional path data as the extruder ID, color change ID
and fan speed.
2019-09-30 16:25:26 +02:00
bubnikv b425ee50a9 Merge remote-tracking branch 'remotes/origin/et_pull_2922' 2019-09-30 10:23:16 +02:00
bubnikv 0abde9a2a8 Return MultiPoint::first_point() by reference. 2019-09-27 19:47:30 +02:00
bubnikv 6d11bfe96a Fixing C++ issues, that the Visual Studio compiler did not report. 2019-09-27 19:18:35 +02:00
bubnikv debd9e2f81 One more try, fixing a missing parameter. 2019-09-27 19:07:07 +02:00
bubnikv 50d3894e32 Fix of the ShortestPath.hpp interface: Provide non-move variant. 2019-09-27 18:47:08 +02:00
bubnikv 85ea0396a4 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-09-27 18:23:36 +02:00
bubnikv 331c187b39 Rest of the path chaining has been replaced with the new algorithm.
PolylineCollection.cpp/hpp was removed, use Polylines instead.
Various first_point() / last_point() now return references, not copies.
2019-09-27 18:17:21 +02:00
bubnikv 4b35ebe6e5 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-09-27 09:52:57 +02:00
bubnikv e65ab90c16 Fix of G-code path planning: Infill lines were incorrectly ordered
for islands with another islands in their holes.

Improvement of chaining of infill lines for 3D honeycomb, Gyroid and
Honeycomb infill: New TSP chaining algorithm is used.
2019-09-27 09:51:07 +02:00
bubnikv d06831076d WIP: Consolidation of shortest path calculations,
various chaining algorithms are replaced with the improved TSP
algorithm.
2019-09-26 17:30:03 +02:00
bubnikv 10eecb2cab Reworked Traveling Salesman Problem code for simplicity and robustness.
The TSP algorithm is newly used for planning of the printing order
of objects AND their instances.
2019-09-26 16:39:50 +02:00
bubnikv 8d4dd294b2 Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev 2019-09-26 09:44:53 +02:00
bubnikv 41495a932a Introduction of a greedy Traveling Salesman Problem algorithm,
producing better shortest path estimate than the "closest next neighbor"
heuristics. The new greedy algorithm utilizes KD tree for closest
end point search, and builds a graph to detect loops.

PerimeterGenerator newly uses the optimized TSP algorithm.

ExtrusionEntity has been refactored / simplified.
2019-09-26 09:44:38 +02:00
bubnikv 110d5b9d56 Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev 2019-09-19 17:16:43 +02:00
bubnikv 6ce1011a09 Slic3r -> PrusaSlicer in config snapshot dialog. 2019-09-19 17:16:37 +02:00
bubnikv bcdb75f799 Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev 2019-09-19 14:32:13 +02:00
bubnikv 2414dab85a Fix of perl bindings 2019-09-19 14:31:50 +02:00
bubnikv 80c5eaacdf Merge remote-tracking branch 'remotes/origin/dev' into vk-materials 2019-09-19 11:49:49 +02:00
bubnikv 40e5fb5bb9 Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev 2019-09-19 08:57:04 +02:00
bubnikv 94212fa2a9 Another fix of admesh on big endian architectures, fixes #2879 2019-09-19 08:56:47 +02:00
bubnikv 83b6b82188 Refactored ExtrusionEntityCollection::flatten() 2019-09-16 16:35:08 +02:00
bubnikv c38e537adc Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-16 15:38:50 +02:00
bubnikv abf91c0327 Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev 2019-09-16 15:38:37 +02:00
bubnikv 519f2b62e5 Fix of Perl bindings after ExtrusionEntity::clone() refactoring 2019-09-16 15:38:27 +02:00
bubnikv ae3a3029c0 Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-13 18:58:39 +02:00
bubnikv d86cf1e116 Fix of a regression in wipe tower generator:
Return to the known position after custom tool change G-code.
2019-09-13 18:56:37 +02:00
bubnikv 145cf294c9 Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev 2019-09-13 16:21:48 +02:00
bubnikv a9182fb0b3 Merge branch 'master' into dev 2019-09-13 16:19:35 +02:00
bubnikv 345d73e0d6 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-09-13 16:17:23 +02:00
bubnikv ea8b6262cf Introduction of ClipperLib_Z: The Clipper library compiled with support
of the Z coordinate, compiled in the ClipperLib_Z namespace.

Update of Lukas's new brim clipping:
All the brim contours are now clipped by the ClipperLib_Z library
in one shot.
2019-09-13 16:16:37 +02:00
bubnikv e0ecd283ef Updated Prusa3D profiles, bumped up the version number. 2019-09-13 15:24:13 +02:00
bubnikv 4f89672816 Fixed false positives of missing layers due to support layer snapping
to avoid layers thinner than min_layer height, and possibly due to
the fact, that empty support extrusions may get generated
for support layers with non-empty support polygons.

Fix of Empty layers detection added to GCode.cpp (6ab1cec)
2019-09-13 15:18:42 +02:00
bubnikv bb896b4c13 Merge remote-tracking branch 'remotes/origin/lm_brimskirt' 2019-09-12 15:53:20 +02:00
bubnikv b4f2df6a98 Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-12 10:19:09 +02:00
bubnikv 6f4fff1b29 Fix of 2.1.0-rc2 Fails to open "certain' STL files #2906 2019-09-12 10:16:52 +02:00
bubnikv 1b1899e24f Bumped up the version number. 2019-09-11 14:10:02 +02:00
bubnikv ab045d5b48 Merge remote-tracking branch 'remotes/origin/tm_ini_params_squashed' 2019-09-11 13:40:18 +02:00
bubnikv 416c1f8c5b Updated dictionaries. 2019-09-11 13:33:15 +02:00
bubnikv 15c8b579b2 Refactoring of ExtrusionEntity / ExtrusionEntityCollection:
Iterator loops replaced with C++11 loops.
Fixed clone() methods to return an ExtrusionEntity*.
PerimeterGenerator now uses move semantics on ExtrusionEntity a little
bit more.
2019-09-11 13:25:50 +02:00
bubnikv b3f27b8fb9 Fixed typo in comments 2019-09-11 11:38:17 +02:00
bubnikv 0989cb8296 Refactoring of PerimeterGenerator:
header interface was reduced,
compiler warnings removed.
2019-09-11 11:37:48 +02:00
bubnikv 9bdc5b7939 Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-10 19:09:41 +02:00
bubnikv b9389f2d39 Some C++11 refactoring 2019-09-10 19:09:37 +02:00
bubnikv 413e737d7e Fix of previous infill refactoring. 2019-09-10 19:08:04 +02:00
bubnikv 246dc64c99 Fix of "Bridging and gap fill are parsed incorrectly when infill is set to 0" #1476
The gap fill was disabled for zero infill.
Now the gap fill is enabled in between the perimeters, but disabled between
the inner-most perimeter and infill in case the infill is set to zero.

Also in case there are multiple infill regions inside a perimeter,
the mutliple infills are considered as non-zero if at least one infill
is non-zero, therefore the gap fill will be added inside the inner-most
perimeter.
2019-09-10 19:03:37 +02:00
bubnikv 4585618aea Fix of "Bridge flow ratio doesn't trigger reslicing of support" #2359 2019-09-09 18:09:40 +02:00
bubnikv 6ba43ebacb Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-09 17:49:07 +02:00
bubnikv ac7bae8c5d Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev 2019-09-09 17:47:41 +02:00
bubnikv 5c72eecf26 Fix of "Strange behavior on bridge detection" #1482
The very first slicing step needs to be invalidated if support is
enabled or disabled while the soluble supports are configured,
as the bridging is disabled for soluble supports, while the bridging
is enabled with supports disabled.
2019-09-09 17:47:29 +02:00
bubnikv ee928f5f4d Replaced Perl style infill type enums with C++ enums in comments. 2019-09-09 16:47:15 +02:00
bubnikv 735f5146e9 Fix of d146a0237e
(reworked infill generator to merge regions with the same properties).
2019-09-09 16:44:29 +02:00
bubnikv 21cc859357 Refreshed dictionaries 2019-09-09 16:40:15 +02:00
bubnikv 751b9e69fa Fixed stack overflows in G-code generator. 2019-09-09 10:18:17 +02:00
bubnikv 42e41dae04 Fix of a regression big endian issue in admesh
fixes 2.1.0-rc build error in admesh (unusual architecture only) (#2879)
2019-09-09 09:18:53 +02:00
bubnikv 48ecbe777f Fix of "excess infill below bridges with 0% infill" #442
Fix of "Bridging infill not connecting with infill set to 0%" #1301

Top, bottom and bridging areas are extended into infill as long
as the infill is not zero. If the infill is zero,
top, bottom and bridging areas wound not expand into these "void" areas.

With this commit, the top, bottom and bridging areas are allowed to expand
into the "void" areas as long as these "void" areas are supported below
with perimeters or some other non-empty infill, and slightly beyond
these supporting areas into the voids (currently hard coded to 1mm).
2019-09-06 15:03:49 +02:00
bubnikv 07798510fc Fighting the ASCII STL import.
Fix of 2.1.0-rc: Loading MMU STL's results in object placement off the plater (#2868)
It has been broken with 9abef2241d
when trying to fix "Error on importing stl" #2813
2019-09-05 14:29:34 +02:00
bubnikv d2ac827137 Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev 2019-09-04 16:11:28 +02:00
bubnikv d146a0237e WIP: Reworked the infill generator to merge areas with the same
properties.

Note for Vojtech:
Review src/libslic3r/Fill/Fill.cpp once again,
add test for G-code generator properties (extrusion speed, cooling?)

Fixes Modifier slice/move efficiency #1005
2019-09-04 16:11:16 +02:00