Commit Graph

133 Commits

Author SHA1 Message Date
Vojtech Bubnik
067cde85f1 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
776a775996 Add missing forward declarations 2020-09-11 16:51:05 +02:00
Lukáš Hejl
137e7a0712 Fix compiler warnings and failing compilation on macOS 2020-09-10 22:57:58 +02:00
Lukáš Hejl
7ef5def077 Fix typo in function build_octree 2020-09-10 22:38:37 +02:00
Lukáš Hejl
e9a325c9ca Fix rotation in support cubic infill 2020-09-10 22:30:49 +02:00
Lukáš Hejl
f49144a9ef Move support cubic infill to separate class.
Support infill is enabled in the GUI.
2020-09-10 16:53:08 +02:00
Lukáš Hejl
8fb9b290b2 A prototype of adaptive support infill 2020-09-10 14:55:48 +02:00
Lukáš Hejl
680b1b9809 Construct octree based on inserted points 2020-09-10 14:52:26 +02:00
Lukáš Hejl
c261624999 A simple version of adaptive cubic support, for testing purposes 2020-09-10 14:52:26 +02:00
Lukáš Hejl
70cb67430c Move rotation from building octree to infill generating 2020-09-10 14:52:21 +02:00
Vojtech Bubnik
7b318e1698 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
97e62be902 Check if exist any boundary polyline 2020-09-07 09:14:06 +02:00
Lukáš Hejl
ce18b824ad Octree representation rework 2020-09-03 19:21:55 +02:00
Lukáš Hejl
184cb7afd9 Fix bug in lines merging 2020-09-03 14:28:25 +02:00
Lukáš Hejl
353c65fa4c Connect infill to perimeters 2020-09-03 13:05:28 +02:00
Lukáš Hejl
a3a1c20172 Code cleanup 2020-09-03 11:56:41 +02:00
Lukáš Hejl
fd3a31651c Octree's first cube depends on model size. 2020-09-03 08:04:05 +02:00
Lukáš Hejl
5997f2759c Change in passing octree struct 2020-09-02 22:53:10 +02:00
Lukáš Hejl
8e6760e033 Fix crash on inconsistent input 2020-08-30 20:38:07 +02:00
Lukáš Hejl
b28f9b8935 Fix discontinuous extrusion lines for adaptive infill 2020-08-27 13:04:53 +02:00
Lukáš Hejl
c5a73a7cd6 Switch to smart pointers 2020-08-27 07:28:43 +02:00
Lukáš Hejl
cb328c99aa Polylines merging 2020-08-27 01:59:35 +02:00
Lukáš Hejl
fb24d8167a Add function for check existence of triangle in define radius 2020-08-26 23:28:52 +02:00
Lukáš Hejl
eaaff4e707 Generating polylines from octree 2020-08-26 22:18:51 +02:00
Lukáš Hejl
3ac16d9c9c Building octree based on distance from mesh 2020-08-26 18:15:59 +02:00
Lukáš Hejl
42a7f2b1d8 Preparation for new infill 2020-08-26 16:51:34 +02:00
Lukas Matena
48c186331a 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
32a353058f Fixed few warnings 2020-05-26 16:06:11 +02:00
Lukas Matena
02838eaa30 Slight include cleanup 2020-05-26 13:45:36 +02:00
bubnikv
0940db7b2e 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
ef89c73fd5 fixing a compilation issue on a buggy GCC on R-PI 2020-04-28 18:28:11 +02:00
bubnikv
ec81de7553 Ironing and Monotonous infill - first working implementation. 2020-04-28 17:19:11 +02:00
bubnikv
033548a568 Introduction of Monotonous infill type. Fill no-sort only for monotonous
and ironing infills.
2020-04-25 08:15:04 +02:00
bubnikv
e390ebc95c WIP: Monotonous infill 2020-04-24 09:41:48 +02:00
bubnikv
03eb5ffcd5 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
10110ed307 WIP: Ironing over top surfaces. 2020-04-14 11:53:28 +02:00
Lukas Matena
97b9de47b4 Merge branch 'master' into dev 2020-03-24 21:51:05 +01:00
bubnikv
7f376fa927 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
7589e4ebfc Fixed some more warnings 2020-03-03 15:53:26 +01:00
Lukas Matena
c70b34b6c8 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
afa72da9d1 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
9c4dc80057 Fix of the new gyroid infill path planning. Fixes #3226 2019-11-22 18:22:44 +01:00
bubnikv
8c377c6585 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-11-14 17:02:46 +01:00
bubnikv
dd59945098 Fix of a typo in KDTreeIndirect.
Improvement of the infill path planning.
Regression fix of Gyroid infill crashes.
Some unit tests for elephant foot and path planning.
2019-11-14 17:02:32 +01:00
Enrico Turri
0c4507141a Attempt to fix Mac build on buildserver 2019-11-12 13:19:17 +01:00
bubnikv
f2dd49a905 Merged pull request "Gyroid improvements" #2730
by @supermerill and @wavexx

WIP: The function Fill::connect_infill() is being rewritten
to utilize spatial structures wherever possible for lower CPU load
and less dynamic memory allocation.
2019-11-07 14:28:30 +01:00
bubnikv
76c4eaf19a Ported test_fill from upstream Slic3r, thanks @lordofhyphens 2019-10-16 17:43:43 +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
Lukas Matena
b67d8c1614 Fixed memsetting non-trivially-copyable types
Types stl_stats, stl_normal and SurfaceFillParams should not be zeroed by memset
This is not correct and also triggered warnings on gcc
2019-09-24 17:09:07 +02:00
bubnikv
413e737d7e Fix of previous infill refactoring. 2019-09-10 19:08:04 +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
Lukas Matena
6cc29c308c Fill.cpp: Fixed a typo 2019-09-05 16:03:44 +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
bubnikv
21ee458de5 Some Vojtech's beautification 2019-08-22 09:47:44 +02:00
Yuri D'Elia
189d7be93b Fix two warnings 2019-08-08 17:04:56 +02:00
Yuri D'Elia
753b34a0d3 Make Gyroid::PatternTolerance match the description
Move the division out of the switch in order to make the tolerance match
the expected unit.
2019-08-08 16:53:26 +02:00
Yuri D'Elia
90c85b7c8a Move gyroid constants to the class declaration 2019-08-07 22:26:39 +02:00
Yuri D'Elia
da6c285f1f Maximize gyroid printing speed angle
Counter-rotate the default angle by 45' so that gyroid is kept at it's
maximum printing speed by default.
2019-08-07 22:26:39 +02:00
Yuri D'Elia
f8490fb4e0 Limit upper tolerance in Gyroid
Do not reduce resolution more than necessary when using larger nozzles
and/or higher layer heights.
2019-08-07 16:47:23 +02:00
Yuri D'Elia
1a84642153 Allow gyroid pattern rotation over Z 2019-08-07 16:47:17 +02:00
Yuri D'Elia
e7616efc89 Handle truncated gyroid patterns correctly
When generating patterns which are less than a full wave, always
generate the last point correctly.

When extending a full wave to a line, fixup the last point
to the real gyroid position instead of shifting the point.
2019-08-07 16:47:04 +02:00
Yuri D'Elia
5932881291 Reduce reallocations and memory usage in gyroid 2019-08-07 16:46:56 +02:00
Yuri D'Elia
b9901f1730 Parametric tolerance for Gyroid infill 2019-08-07 16:46:51 +02:00
supermerill
b6936a46e3 bugfix "connected lines" for gyroid & 3Dhoney 2019-08-07 16:45:52 +02:00
supermerill
19df45c39d bugfix gyroid & 3Dhoneycomb "connected lines" 2019-08-07 16:45:41 +02:00
supermerill
86fbb9a095 gyroid & 3Dhoneycomb: now 'connected lines' follow the perimeters 2019-08-07 16:45:22 +02:00
Lukas Matena
004e2719b1 Merge branch 'master' into lm_warnings 2019-07-15 13:26:55 +02:00
Lukas Matena
cb916c4dda Fixed warnings in libslic3r 2019-06-25 16:04:29 +02:00
bubnikv
35b3fd3176 Integrated the new layer height spans with configs into the backend.
Fixed some compiler warnings.
2019-06-20 16:15:09 +02:00
bubnikv
40b27e8332 admesh refactoring: Move the hashing structure out of stl_file 2019-06-10 16:53:08 +02:00
bubnikv
311df8ecfd Reworked discretization step of Archimedean Chords infill to lower
slicing time and memory requirements.
Fixes "Infill pattern Archimedean causing total freeze at Infilling patterns" #1871
2019-03-07 16:01:46 +01:00
bubnikv
ab30370fb4 Split the external infill pattern to separate top / bottom config values.
Based on f9344a00e3
thanks @supermerill
Implements  #475, #479, #1133, #1474
2019-02-22 15:25:35 +01:00
Vojtech Kral
a85db038be Fix usage of is_trivially_copyable on older GCC (for real this time) 2019-01-22 12:16:11 +01:00
Vojtech Kral
d5f47cbcad Fix usage of is_trivially_copyable on older GCC 2019-01-22 10:42:16 +01:00
bubnikv
bd80304f39 Added missing headers. 2019-01-21 17:51:37 +01:00
Lukas Matena
1685a30ee0 Added static asserts on classes initialized by memset to make sure it is possible to do 2019-01-21 15:03:20 +01:00
bubnikv
52db7b055a WIP: Merged commits from stable between 1.41.2-beta and 1.42.2 final.
Changes in SupportMaterial.cpp, TriangleMesh.cpp and 01_trianglemesh.t
are yet to be merged.

WIP: Refactoring of layer height editing.
Removed layer_height_ranges from PrintObject, as the Print/PrintObject
now hold their copies of Model/ModelObject.
2018-12-11 16:33:43 +01:00
bubnikv
cc283571e7 Fixed compilation issues on osx 2018-11-26 14:54:23 +01:00
bubnikv
f6831dfdea Merge remote-tracking branch 'remotes/origin/dev_native' 2018-11-20 14:13:22 +01:00
bubnikv
3b72748489 Removed the STDMOVE macro. 2018-11-02 20:45:23 +01:00
bubnikv
0558b53493 WIP: Moved sources int src/, separated most of the source code from Perl.
The XS was left only for the unit / integration tests, and it links
libslic3r only. No wxWidgets are allowed to be used from Perl starting
from now.
2018-09-19 11:02:24 +02:00