Commit Graph

91 Commits

Author SHA1 Message Date
Lukáš Hejl
4b02e888ee Fix crash in adaptive infill when an extrusion line width is zero.
When an extrusion line width is set to zero, then an extrusion line width is calculated from nozzle diameter.
2020-09-25 09:54:27 +02:00
Vojtech Bubnik
56e6d10a86 Adaptive Cubic infill:
1) Fixed a wrong offset when extracting infill lines from the octree.
2) Added a variant for testing triangle in a bounding sphere
   when buildind the octree. Currently not used as the box test
   is more tight.
3) "Bridging infill" regions are now triangulated and used to densify
   the octree as well to support the bridging infill correctly.
2020-09-22 08:53:45 +02:00
Vojtech Bubnik
876e5bc897 Fixed crash in Adaptive Cubic infill if just a single line was extracted.
New function to chain lines, however not used by the Adaptive Cubic infill.
2020-09-21 11:10:57 +02:00
Lukas Matena
2992c71798 Fix build on Linux 2020-09-18 13:37:37 +02:00
Vojtech Bubnik
0d4308538b Adaptive infill:
Fixing compilation on Linux,
WIP: Better chainining of infill lines.
2020-09-18 13:35:35 +02:00
Vojtech Bubnik
1e9a3cab55 Adaptive infill: Reshuffled the namespaces. 2020-09-18 10:53:50 +02:00
Vojtech Bubnik
b3e936bda3 Refactoring of adaptive cubic / support cubic:
1) Octree is built directly from the triangle mesh by checking
   overlap of a triangle with an octree cell. This shall produce
   a tighter octree with less dense cells.
2) The same method is used for both the adaptive / support cubic infill,
   where for the support cubic infill the non-overhang triangles are
   ignored.
The AABB tree is no more used.
3) Optimized extraction of continuous infill lines in O(1) instead of O(n^2)
2020-09-17 18:39:28 +02:00
Vojtech Bubnik
c814c16e4a Replaced some of Slic3r::RuntimeError exceptions with Slic3r::SlicingError.
Only Slic3r::SlicingError are now displayed by a notification, other
exceptions are shown by a pop-up dialog.
2020-09-14 18:03:22 +02:00
Vojtech Bubnik
f58ee46687 WIP Refactoring of exceptions:
1) All slicer's exceptions are now derived from Slic3r::Exception.
2) New exceptions are defined for slicing errors.
3) Exceptions are propagated to the Plater to show.
It remains to modify the slicing back-end to throw the new SlicingError
exceptions instead of std::runtime_error and to show the other exceptions
by a message dialog instead of a notification.
2020-09-14 18:03:22 +02:00
Yuri D'Elia
fc3b470ded Add missing forward declarations 2020-09-11 16:51:05 +02:00
Lukáš Hejl
693aac1f3f Fix compiler warnings and failing compilation on macOS 2020-09-10 22:57:58 +02:00
Lukáš Hejl
7a37279307 Fix typo in function build_octree 2020-09-10 22:38:37 +02:00
Lukáš Hejl
bfe47c1af0 Fix rotation in support cubic infill 2020-09-10 22:30:49 +02:00
Lukáš Hejl
dc698c2bb1 Move support cubic infill to separate class.
Support infill is enabled in the GUI.
2020-09-10 16:53:08 +02:00
Lukáš Hejl
dfd1351c9a A prototype of adaptive support infill 2020-09-10 14:55:48 +02:00
Lukáš Hejl
dd2fe22f05 Construct octree based on inserted points 2020-09-10 14:52:26 +02:00
Lukáš Hejl
e4c32a85de A simple version of adaptive cubic support, for testing purposes 2020-09-10 14:52:26 +02:00
Lukáš Hejl
bddca650a9 Move rotation from building octree to infill generating 2020-09-10 14:52:21 +02:00
Vojtech Bubnik
b7ebee01aa Refactoring of adaptive cubic infill:
Don't create an octree for the infill if it is not needed.
2020-09-09 15:55:06 +02:00
Lukáš Hejl
3ddeac598a Check if exist any boundary polyline 2020-09-07 09:14:06 +02:00
Lukáš Hejl
1c0a4aaa9b Octree representation rework 2020-09-03 19:21:55 +02:00
Lukáš Hejl
1e73ab0202 Fix bug in lines merging 2020-09-03 14:28:25 +02:00
Lukáš Hejl
e245c7e787 Connect infill to perimeters 2020-09-03 13:05:28 +02:00
Lukáš Hejl
f0a8f736e3 Code cleanup 2020-09-03 11:56:41 +02:00
Lukáš Hejl
fb7cf3dc48 Octree's first cube depends on model size. 2020-09-03 08:04:05 +02:00
Lukáš Hejl
f43b8b1c0f Change in passing octree struct 2020-09-02 22:53:10 +02:00
Lukáš Hejl
7363156063 Fix crash on inconsistent input 2020-08-30 20:38:07 +02:00
Lukáš Hejl
49830f2212 Fix discontinuous extrusion lines for adaptive infill 2020-08-27 13:04:53 +02:00
Lukáš Hejl
87244c6b81 Switch to smart pointers 2020-08-27 07:28:43 +02:00
Lukáš Hejl
f014afb08c Polylines merging 2020-08-27 01:59:35 +02:00
Lukáš Hejl
0b6841264c Add function for check existence of triangle in define radius 2020-08-26 23:28:52 +02:00
Lukáš Hejl
923687e06f Generating polylines from octree 2020-08-26 22:18:51 +02:00
Lukáš Hejl
e4aea124cf Building octree based on distance from mesh 2020-08-26 18:15:59 +02:00
Lukáš Hejl
f1a59060a3 Preparation for new infill 2020-08-26 16:51:34 +02:00
Lukas Matena
edcaab8b0a Includes cleanup:
GUI_App.hpp      (should not include) MainFrame.hpp
MainFrame.hpp    Plater.hpp
ModelArrange.hpp Model.hpp
Slicing.hpp      PrintConfig.hpp
FillBase.hpp     PrintConfig.hpp
GUI_App.hpp      PrintConfig.hpp
OptionsGroup.hpp GUI_App.hpp
2020-05-27 14:01:47 +02:00
Lukas Matena
e8e004ab5e Fixed few warnings 2020-05-26 16:06:11 +02:00
Lukas Matena
4fa702c570 Slight include cleanup 2020-05-26 13:45:36 +02:00
bubnikv
5703f31d96 Improvements of the monotonous infill ordering:
Calculate the initial path length and set the initial pheromone level
accordingly.
Implemented a stopping criterion to ant colony optimization.
Fixed some compilation warnings.
2020-05-06 18:28:23 +02:00
bubnikv
7325be0e7d fixing a compilation issue on a buggy GCC on R-PI 2020-04-28 18:28:11 +02:00
bubnikv
8156379ec1 Ironing and Monotonous infill - first working implementation. 2020-04-28 17:19:11 +02:00
bubnikv
805cc03894 Introduction of Monotonous infill type. Fill no-sort only for monotonous
and ironing infills.
2020-04-25 08:15:04 +02:00
bubnikv
775ceb6037 WIP: Monotonous infill 2020-04-24 09:41:48 +02:00
bubnikv
109b95bb19 WIP: Reworking of FillRectilinear2 to support monotonous infill
with ant colony optimization and 3-opt flips.
2020-04-22 10:54:11 +02:00
bubnikv
9db59a3cd7 WIP: Ironing over top surfaces. 2020-04-14 11:53:28 +02:00
Lukas Matena
ac501bdf8b Merge branch 'master' into dev 2020-03-24 21:51:05 +01:00
bubnikv
0841ef6ee8 Fix of infill type update with vase mode enabled after change
of the number of bottom layers.
related to [2.2.1-RC] Vase mode prints base no matter what #3823
2020-03-14 11:59:50 +01:00
Lukas Matena
bffd07baa6 Fixed some more warnings 2020-03-03 15:53:26 +01:00
Lukas Matena
f26de2e1ac Fixed several warnings
The biggest difference is changing PresetCollection::m_idx_selected from int to size_t, which fixed many warnings at once.
2020-03-03 15:47:02 +01:00
bubnikv
756d3e4da1 Fix of infill connecting along perimeter lines,
new 3-opt iterative improvement of infill path (currently disabled,
it is extremely slow)
2019-12-02 15:01:52 +01:00
bubnikv
30bce02593 Fix of the new gyroid infill path planning. Fixes #3226 2019-11-22 18:22:44 +01:00