107 Commits

Author SHA1 Message Date
tamasmeszaros
53287002b3 Fix crash when changing hollowing thickness 2023-01-17 17:18:29 +01:00
tamasmeszaros
873725d905 Fixing sla support point and drillhole transformations
May brake compatibility with 3mf files storing these objects from from previous Slic3r versions
2023-01-17 13:13:09 +01:00
tamasmeszaros
7e74f781c6 Minor fixes to sla print steps 2023-01-16 13:41:07 +01:00
tamasmeszaros
cf4f07c220 Use shared pointers for SLA preview data
To be able to survive a sudden cancellation and subsequent cleanup in the background thread
2023-01-12 19:38:24 +01:00
tamasmeszaros
440df505b4 SLA backend thread-safety improvements
- Put AnyPtr into separate header, it deserves one
- Add means to handle shared pointers inside AnyPtr
- Use shared pointers in sla csg collection for meshes not owned by Model
- Add method to get the last completed step in PrintObjectBase
- Make SLAPrintObject::get_parts_to_slice() safe to call from UI thread against background thread activity.
2023-01-11 18:24:44 +01:00
tamasmeszaros
897e5673c9 Export interface for csgparts in SLAPrintObject 2023-01-10 17:44:41 +01:00
tamasmeszaros
0989a6f5df Fix crash 2023-01-10 16:12:54 +01:00
tamasmeszaros
b2ef76f4d0 Resurrect the old hollowing and hole drilling functions.
Apply them if generic cgal fails and there are no negative volumes.
2023-01-10 14:39:03 +01:00
tamasmeszaros
159fc4e28e Minor improvements
Fix bad function call exception with empty interrupter (OpenVDB)
2023-01-02 13:40:04 +01:00
tamasmeszaros
1efc8191a2 Full support of csg op stack. Preferring cgal in preview if feasible 2022-12-21 18:09:31 +01:00
tamasmeszaros
d75b951c39 FInish csg operation stacking in cgal side
Broken slicing
2022-12-21 13:53:33 +01:00
tamasmeszaros
25ca46e3eb Add support for csg operation stacking 2022-12-20 17:38:46 +01:00
tamasmeszaros
4fabd0b307 Delete hollowing interior grid after the mesh is extracted
It was needed for the triangle trimming but that is gone now
2022-12-20 12:51:55 +01:00
tamasmeszaros
d3a4edd37f Skip voxelization for csg meshes with positive parts only. 2022-12-20 12:51:04 +01:00
tamasmeszaros
e8faa71fcf Decrease quality of preview meshes to improve processing time 2022-12-19 12:41:45 +01:00
tamasmeszaros
f987caa63d Fix build in debug mode 2022-12-14 09:55:09 +01:00
tamasmeszaros
7b207aaf5c Add "Enforcers only" option into support combo box
And also make it work
2022-12-13 09:49:59 +01:00
tamasmeszaros
3a7af1c1de SLA Backend: skip voxelization if the original mesh is usable as preview 2022-12-13 09:49:54 +01:00
tamasmeszaros
9dc091d1a8 Fix redundant token after include 2022-12-13 09:49:43 +01:00
tamasmeszaros
a141a4c0bc Improve cancellation of new sla backend 2022-12-13 09:49:37 +01:00
tamasmeszaros
8511a17ad0 Increase fidelity of openvdb previews and log duration of generating it 2022-12-13 09:49:31 +01:00
tamasmeszaros
1e2b4929de Prevent crash with disabled supports and enabled pad 2022-11-30 14:40:22 +01:00
tamasmeszaros
7831b6e6cc Fix compilation 2022-11-30 12:51:00 +01:00
tamasmeszaros
28ffdcc391 Disable CGAL booleans for now in sla pipeline
Does not work yet as expected.
2022-11-29 11:14:19 +01:00
tamasmeszaros
191f04568d Do mesh booleans with cgal if possible. 2022-11-29 11:11:32 +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
ab9f231c0c Fix broken compilation 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
Lukas Matena
b61714bb3e Merge branch 'master_250' (NO CONFLICTS FIXED):
CONFLICT (content): Merge conflict in resources/profiles/PrusaResearch.idx
CONFLICT (content): Merge conflict in resources/profiles/PrusaResearch.ini
CONFLICT (content): Merge conflict in src/libslic3r/CMakeLists.txt
CONFLICT (content): Merge conflict in src/libslic3r/Fill/Fill.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode.hpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/GCodeProcessor.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/GCodeProcessor.hpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/SeamPlacer.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/SeamPlacer.hpp
CONFLICT (add/add): Merge conflict in src/libslic3r/Geometry/Curves.hpp
CONFLICT (content): Merge conflict in src/libslic3r/PerimeterGenerator.cpp
CONFLICT (content): Merge conflict in src/libslic3r/Point.hpp
CONFLICT (content): Merge conflict in src/libslic3r/PrintConfig.hpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/ConfigWizard.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GCodeViewer.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GLCanvas3D.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GUI_App.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp
CONFLICT (content): Merge conflict in src/slic3r/Utils/FixModelByWin10.cpp
CONFLICT (modify/delete): t/perimeters.t deleted in HEAD and modified in master_250.  Version master_250 of t/perimeters.t left in tree.
CONFLICT (content): Merge conflict in tests/fff_print/CMakeLists.txt
CONFLICT (content): Merge conflict in tests/fff_print/test_fill.cpp
CONFLICT (content): Merge conflict in version.inc
CONFLICT (modify/delete): xs/xsp/PerimeterGenerator.xsp deleted in HEAD and modified in master_250.  Version master_250 of xs/xsp/PerimeterGenerator.xsp left in tree.
2022-06-29 14:37:14 +02:00
tamasmeszaros
d23f9d7674 Refactoring and performance optimization for support trees in SLA 2022-06-29 10:43:46 +02:00
Lukas Matena
75a6f54f0b Fixed compiler warnings 2022-06-03 12:45:06 +02:00
YuSanka
906f8914a6 SLA estimation time:
* A calculation of the estimation of a print time is ported from the FW
  (See https://gitlab.com/prusa3d/sl1/sla-fw/-/blob/1.7/slafw/project/project.py#L485)
* Some missed parameters are added to the Printer Presets
2022-06-02 09:29:11 +02:00
tamasmeszaros
6d349dd3a7 Backport hollowing optimization into stable 2022-06-02 09:04:36 +02:00
tamasmeszaros
bbf398f2dc Fix AABB query in hollowing print step 2022-05-11 10:35:29 +02:00
tamasmeszaros
fed317f27b Change std::nan("") to proper nan constants 2022-05-11 10:35:12 +02:00
tamasmeszaros
9d5f8a02c6 Remove junk message 2022-04-26 16:19:32 +02:00
tamasmeszaros
b5bf529551 Solve missing faces of the interior in connection with the holes 2022-04-26 14:50:50 +02:00
tamasmeszaros
1a6a2a0b9a 2.5x speedup of hollowing.
Triangle removal is slightly broken
2022-04-26 14:50:50 +02:00
tamasmeszaros
00764ceade Fix ignoring of changed sla printer params 2022-02-03 16:09:57 +01:00
tamasmeszaros
d57cfa981e Construct supports using the trimmed mesh. To solve issues with supports within the cavity hanging in the air. This still doesn't solve the issue with undrilled holes.
To solve issues with supports within the cavity hanging in the air. This still doesn't solve the issue with undrilled holes.
2021-10-27 10:05:09 +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
tamasmeszaros
782e220890 Fix crash when all the holes fail to drill 2021-07-13 16:02:58 +02:00
tamasmeszaros
2096a6dbbf Fix error reporting when cgal mesh boolean crashes.
Change error report when catching SEH on cgal mesh boolean.
2021-06-22 18:13:35 +02:00
tamasmeszaros
976dd72b8b Catching of sigsegv and sigfpe with structured exceptions on win 2021-06-17 15:17:21 +02:00
tamasmeszaros
a5529aff1e Implement custom integer->string conversion for hashing
Converts to hexadecimal, reversed order which is faster.
2021-06-17 15:40:22 +02:00
tamasmeszaros
904387520e Fix the build 2021-06-08 11:02:29 +02:00
tamasmeszaros
c4507842a0 Add new (winner) neighbor index based on measurements 2021-06-08 10:34:32 +02:00
tamasmeszaros
e6f97358bc Refactored hollowing backend to use indexed_triangle_mesh 2021-06-08 10:28:23 +02:00