163 Commits

Author SHA1 Message Date
tamasmeszaros
f100a59688 Cherry-picking 118f4859c472ccbc30b43101c6674dadc81d7b12
And resolve conflicts
2022-11-29 11:14:19 +01:00
tamasmeszaros
2a8c9d7462 Refinements 2022-11-29 11:11:32 +01:00
tamasmeszaros
15fa4c42d6 Finalize new sla backend interface
no has_mesh or get_mesh based on states, but specific methods to get the mesh type needed (support, pad, object)

Commented out everything that does not conform in frontend
2022-11-29 11:11:02 +01:00
tamasmeszaros
39a1ed0e1a WIP: prepare frontend to use new sla backend interface 2022-11-29 11:11:02 +01:00
tamasmeszaros
c448b31204 wip 2022-11-29 11:10:52 +01:00
tamasmeszaros
2144f81bf1 Useful backend improvements from sla volumes branch 2022-11-29 11:10:52 +01:00
tamasmeszaros
d23f9d7674 Refactoring and performance optimization for support trees in SLA 2022-06-29 10:43:46 +02:00
tamasmeszaros
5ecf29f303 Separate existing sla archive import code 2022-04-26 09:38:03 +02:00
Vojtech Bubnik
60d7564942 FFF background slicing for a single object only:
Generalized the "enabled milestone" from SLA
to both SLA and FFF.
Merged the "milestone enabled" flag into the milestone status.
Fixed some potential threading issues in SLAPrint::finalize()
when resetting the "milestone enabled" flags.
2022-03-29 11:19:50 +02:00
tamasmeszaros
66f60de556 SLAArchive framework refactor 2022-02-17 12:50:40 +01:00
tamasmeszaros
b6fe41d5ab Fixes for pwmx format PR 2022-02-14 14:42:47 +01:00
ole00
7685e70743 SLA: added pwmx format exporter
Pwmx format is used by Anycubic Photon Mono X printers.
File format structure and rle encoding implemented according to:
https://github.com/sn4k3/UVtools
https://github.com/ole00/pwmx_info
2022-02-12 12:55:22 +00:00
tamasmeszaros
00764ceade Fix ignoring of changed sla printer params 2022-02-03 16:09:57 +01:00
tamasmeszaros
7f153a55b3 SLA archiver implemented for svg output, switchable in config.
new config is sla_archive_format as a string.
WIP


Get rid of SVG class, use manual svg creation


Revert changes in SVG.hpp and SVG.cpp
2022-02-03 16:09:57 +01:00
tamasmeszaros
cac2a9f117 clean up obsolete includes 2022-01-07 14:27:43 +01:00
Vojtech Bubnik
e185bf58b7 Replaced "Simple shorthands for smart pointers" shptr, uqptr, wkptr
with their original names. Using weird shorthands makes the code
unreadable for anyone but the original author.

template<class T> using shptr = std::shared_ptr<T>;
template<class T> using uqptr = std::unique_ptr<T>;
template<class T> using wkptr = std::weak_ptr<T>;
2021-10-04 16:56:26 +02:00
tamasmeszaros
33eba4aea6 Rename SLAPrinter interface to SLAArchive as it makes more sense. 2021-09-27 10:00:21 +02:00
Vojtech Bubnik
8a2a9dba2f Eradicated admesh from TriangleMesh:
TriangleMesh newly only holds indexed_triangle_set and
TriangleMeshStats. TriangleMeshStats contains an excerpt of stl_stats.
TriangleMeshStats are updated when initializing with indexed_triangle_set.

Admesh triangle mesh fixing is newly only used when loading an STL.
AMF / 3MF / OBJ file formats are already indexed triangle sets, thus
they are no more converted to admesh stl_file format, nor fixed
through admesh repair machinery. When importing AMF / 3MF / OBJ files,
volume is calculated and if negative, all faces are flipped. Also
a bounding box and number of open edges is calculated.

Implemented its_number_of_patches(), its_num_open_edges()
Optimized its_split(), its_is_splittable() using a visitor pattern.

Reworked QHull integration into TriangleMesh:
    1) Face normals were not right.
    2) Indexed triangle set is newly emitted instead of duplicating
       vertices for each face.

Fixed cut_mesh(): Orient the triangulated faces correctly.
2021-09-20 17:12:22 +02:00
Lukas Matena
d3b1b1f3d5 Fix of clipping plane for SLA supports,
probably broken since 1009f78
2021-07-23 11:32:36 +02:00
tamasmeszaros
e6f97358bc Refactored hollowing backend to use indexed_triangle_mesh 2021-06-08 10:28:23 +02:00
tamasmeszaros
1009f78862 SLA backend refactored, except Hollowing 2021-06-08 10:27:35 +02:00
Vojtech Bubnik
b5573f959b Refactoring for code clarity: Replaced this->m_xxx with m_xxx
as the m_ prefix already signifies a class local variable.
2021-05-06 14:43:36 +02:00
tamasmeszaros
ad19ab219d New custom backend for libnest2d using libslic3r types
Adapted to new clipper->eigen mod
2021-04-21 16:02:25 +02:00
tamasmeszaros
08ca5b29f0 Fix slow cancellation of rasterization step
fixes #6253
2021-04-08 14:36:37 +02:00
tamasmeszaros
527e675294 Use triangle removal only for visualized mesh 2021-03-08 17:38:10 +01:00
tamasmeszaros
82954ba715 Group hollowing result (including grid) into one struct 2021-03-08 17:38:10 +01:00
Lukas Matena
abd5a9a46e Add a notification when custom support enforcers are not used due to supports being off
It is now emitted from Print::validate and has a hyperlink to enable supports
2021-03-04 09:35:22 +01:00
Lukas Matena
b85de89751 Fixing Clang warnings 2 2021-02-08 17:52:29 +01:00
Vojtech Bubnik
bd79036d13 Replaced all "long long" types with int64_t
Replaced all "unsigned long long" types with uint64_t.
These "new" types better communicate their meaning and they are
guaranteed to behave the same on all platforms & compilers.
2020-12-10 08:40:15 +01:00
YuSanka
5144feb319 Estimated printing time per layer for SLAPrint
Split the time if it's needed
2020-11-19 21:41:51 +01:00
Vojtech Bubnik
447f4b8303 Polishing of NotificationManager:
Fixed pairing of PrintObjects with slicing warning notifications.
Removed or commented out dead code.
Added documentation.
2020-10-14 16:49:06 +02:00
Vojtech Bubnik
7a799be426 DynamicPrintConfig::normalize() renamed to normalize_fdm(),
optimization of Print::apply()
2020-09-24 19:03:33 +02:00
tamasmeszaros
7158690ddd Fix build on win and rpi 2020-08-13 15:09:22 +02:00
tamasmeszaros
929cea59f3 replace ccr_::enumerate with flexible for_each
enumerate is unusual and would only work effectively with random access iterators

this for_each takes advantage of tbb blocked_range
replace ccr_::enumerate with flexible for_each

enumerate is unusual and would only work effectively with random access iterators

this for_each takes advantage of tbb blocked_range
2020-08-13 14:35:14 +02:00
tamasmeszaros
9486901b93 Minor change to SLAPrinter interface 2020-08-13 14:35:14 +02:00
tamasmeszaros
1eec6c473c Rename EigenMesh3D to IndexedMesh and SupportConfig to SupportTreeConfig 2020-08-03 19:05:30 +02:00
bubnikv
f7ceffb46e Fixed back-end warning infrastructure: The Print / PrintObject
should have been derived from ObjectBase, not from ObjectID.
2020-07-21 15:33:36 +02:00
Vojtech Bubnik
746ece4c40 Support for collecting warnings from the background processing.
Multiple warnigns may be collected per Print / PrintObject milestone
and a status update is sent to the UI immediately after a warning
is issued.
2020-07-14 11:52:34 +02:00
tamasmeszaros
247fca6d55 Initial version of sl1 import with sla::Raster refactor. 2020-04-23 19:05:32 +02:00
tamasmeszaros
6deb6a776d Do EFC for the first faded layers of SLA, interpolate efc parameters
Compensated slices have negative orientation...


Move efc to common params


Fix elefant foot compensation reversed contours


Remove redundant assertions and don't apply absolute correction if zero
2020-02-18 17:39:36 +01:00
Lukas Matena
d0f21dda4a Make sure that when drill holes are manipulated with, all data are invalidated properly
It is needed to regenerate hollow_mesh_with_holes completely, it may contain holes that were deleted by the user in the meantime
2020-02-03 17:31:18 +01:00
Lukas Matena
227cc4dc33 Fixed conflicts after merge
slaposHollowing was divided into slaposHollowing and slaposDrillHoles on master
This commit takes this into account on the code that was merged from lm_drilling_backend_rebased
2020-02-03 15:42:54 +01:00
Lukas Matena
a1d4dab999 Merge branch 'master' into lm_drilling_backend_rebased 2020-02-03 15:20:16 +01:00
tamasmeszaros
36e92b0141 Put hole drilling into separate step 2020-01-31 08:58:21 +01:00
Lukas Matena
5ae2f8a467 Function sla_trafo made accessible from outside SLAPrint.cpp unit 2020-01-29 10:07:10 +01:00
tamasmeszaros
7591637c89 Bugfixes and refactoring for SLA backend
remove duplicate code


Mark conversion constructors of EigenMesh3D `explicit`


Working on mesh simplification for hollowed interior


Fix bug SPE-1074: crash with empty supports and disabled pad.


fix regression after refactor


Remove unfinished code


Fix missing includes and dumb comments
2020-01-24 14:26:19 +01:00
Lukas Matena
022cc0871a Allowed to do drilling without hollowing 2020-01-24 10:53:40 +01:00
tamasmeszaros
6b0af43665 Use mesh boolean in the backend to drill holes. 2020-01-24 10:53:40 +01:00
tamasmeszaros
7011c58faa Merge branch 'master' into lm_tm_hollowing 2019-11-18 17:50:56 +01:00
tamasmeszaros
d4d037792d Holes are now visible on slices in preview. 2019-11-13 15:55:37 +01:00