Commit Graph

51 Commits

Author SHA1 Message Date
Vojtech Bubnik
6007f7ee49 Replacing ClipperLib::IntPoint with Eigen point as a first step to
make the ClipperLib paths and polygons compatible with Slic3r paths
and polygons without conversions and memory allocations.
2021-04-14 09:22:51 +02:00
tamasmeszaros
9e770e052c Fix slow cancellation of rasterization step
fixes #6253
2021-04-08 14:36:37 +02:00
tamasmeszaros
f9f48c73a5 Working hole drilling one by one without linear slowdown. 2021-03-16 09:31:03 +01:00
tamasmeszaros
32c5acd5fd Drill holes one by one and display warning of any of them fails
Drill with cgal::minus for now
2021-03-16 09:31:03 +01:00
tamasmeszaros
f1c2f516a1 Tiny cosmetics 2021-03-08 17:38:10 +01:00
tamasmeszaros
4baba84eb0 Exclude triangles of original interior mesh and drillholes from trimming 2021-03-08 17:38:10 +01:00
tamasmeszaros
1e85d2651e Fix crash when the interior is corrupted 2021-03-08 17:38:10 +01:00
tamasmeszaros
3f264d201e Triangle trimming should handle drilled meshes separately 2021-03-08 17:38:10 +01:00
tamasmeszaros
ca81fdfa0d Fix Gizmo preview with hollowed mesh 2021-03-08 17:38:10 +01:00
tamasmeszaros
dfe9554da3 Use triangle removal only for visualized mesh 2021-03-08 17:38:10 +01:00
tamasmeszaros
f827e15f81 Group hollowing result (including grid) into one struct 2021-03-08 17:38:10 +01:00
YuSanka
3f08684873 Estimated printing time per layer for SLAPrint
Split the time if it's needed
2020-11-19 21:41:51 +01:00
tamasmeszaros
ba1da930a4 SLA: Fix for crash with only 1 layer
fixes #4836
2020-10-08 10:00:55 +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
tamasmeszaros
d4f32a3b4d Fix build on win and rpi 2020-08-13 15:09:22 +02:00
tamasmeszaros
bbffe7c52b 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
24265b29ce Remove leftover junk comments 2020-08-03 19:07:30 +02:00
tamasmeszaros
fe78684e30 Remove the discard region for bottom points removal.
This was a workaround for small supports not to end up in the middle of the gap between the pad and the object. The issue needs to be solved at the support generation.
2020-08-03 19:05:30 +02:00
tamasmeszaros
00cd2acf2d Fix remove_bottom_points function 2020-08-03 19:03:02 +02:00
tamasmeszaros
4e4efeef31 Initial version of sl1 import with sla::Raster refactor. 2020-04-23 19:05:32 +02:00
tamasmeszaros
3abee755a8 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
tamasmeszaros
f20e5e3f74 Added new parameter elefant_foot_min_width 2020-02-14 09:21:00 +01:00
tamasmeszaros
ccda6cc051 Add elephant foot compensation to SLA print
Work in progress


Convert efc input to the right scaling


Apply EFC on the slice index to make it visible in the preview.
2020-02-14 09:21:00 +01:00
Lukas Matena
3c8e656c46 Small fix of 41388bd:
Interior mesh can be empty and TriangleMeshSlicer would fail in that case.
Also, recalculating shared vertices after repair should probably be done, TMS relies on it.
2020-02-11 15:25:28 +01:00
tamasmeszaros
61b23691bf Use parallel execution for cutting the hollowed interior
partial solution for #3622
2020-02-10 16:57:17 +01:00
tamasmeszaros
4dff6b6832 Remove the hollowed interior slices from the model slices in 2D 2020-02-10 16:33:59 +01:00
bubnikv
a394d821a6 Spiral vase improvements and bugfixes.
Fixes Connecting / expanding Bottom Layers to Vase Perimeter #253
Fixes Slicing error in vase mode #452
Fixes Slicing Issue (Vase Mode, 0.6mm dmr nozzle) #1887
Fixes Top fill pattern isn't used in spiral vase mode #2533
Fixes Cisar's vase doesn't slice correctly, creates artefacts #3595

When the model is sliced, all the contours are newly oriented
counter-clockwise (even holes), merged and then only the largest area
contour is retained. In perimeter generator, if the largest contour
splits into multiple perimeters, newly only the largest area perimeter
is retained in spiral vase mode. These two changes solve #3595 and similar.

The infill is newly calculated only for the bottom solid layers
if the spiral vase mode is active (removes various unwanted infill
along the vase walls), and the last bottom solid layer is switched
to a top solid pattern (solves #2533).

The thin walls are newly enforced to be disabled in spiral vase mode,
and the "ensure vertical shell wall" is enforced in spiral vase mode
to extend the bottom of the vase to the vase hull (fixes #253).
2020-02-08 21:36:43 +01:00
tamasmeszaros
c8f660c0b6 Follow-up for hole point randomization 2020-02-07 16:59:34 +01:00
tamasmeszaros
cda8891fe8 Hollowing: randomize hole mesh translations before unification.
To prevent self intersections in the output mesh.
2020-02-07 16:33:04 +01:00
tamasmeszaros
d5956a8926 Report failing union on holes instead of faulty input mesh. 2020-02-07 15:59:33 +01:00
bubnikv
0e97237dcd Fixed a bug in validation of the FDM Print to check for extruder
collisions against already printed objects: Rotation of an object
was not being taken into account.
Fixes #2450 PrusaSlicer 2.0 Sequential printing vs rotate object
Fixes #3585 Always Sequential Printing Error (Regardless of setting, placement or object size)

Fixed some collisions in sequential print just after arrangement by
making the validation using a slightly lower extruder radius value
than the arrangement.

Refactored PrintObject coordinate system so that the PrintObject's
coordinate system is always centered in respect to its ModelObject's
geometries. This refactoring may improve path planning a bit and
it may lower the requirements on bits representing Clipper coordinates
by 1 bit.
2020-02-07 14:10:27 +01:00
tamasmeszaros
88be689482 Handle CGAL exceptions and add tests for mesh boolean operations
Add conversion to exact predicates exact construction kernel format for consecutive booleans (experiments)
2020-02-05 17:40:05 +01:00
Lukas Matena
85dfd49afb Hollowing: merge meshes of holes with igl (intersecting holes) 2020-02-04 15:03:10 +01:00
Lukas Matena
c40c181535 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
61cc8765bf 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
18ca88013f Merge branch 'master' into lm_drilling_backend_rebased 2020-02-03 15:20:16 +01:00
tamasmeszaros
9c68f20898 Put hole drilling into separate step 2020-01-31 08:58:21 +01:00
Lukas Matena
5ef96b1216 Trying to improve drilling stability by handling CGAL exceptions 2020-01-29 15:57:49 +01:00
Lukas Matena
0f62f0a010 Refuse to drill a broken mesh
Hole parameters defaults and limits changed a bit
2020-01-29 14:07:12 +01:00
tamasmeszaros
1702008db1 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
2c4b17a3f5 Allowed to do drilling without hollowing 2020-01-24 10:53:40 +01:00
tamasmeszaros
1bc1ba5a1b Use mesh boolean in the backend to drill holes. 2020-01-24 10:53:40 +01:00
tamasmeszaros
d2c1dbd785 Add tests for EigenMesh3D raycaster with hole support.
Tests fail! Supports are intersecting the object when holes are added.
2020-01-08 17:11:22 +01:00
Lukas Matena
8b0a621443 SLA supports gizmo now uses hollowed mesh when available
Bugfix: SLA support tree is is now given the hollowed mesh, not the original
Added ImGui separators and change background alpha in hollowing gizmo dialog (to match the other gizmos)
2019-12-20 10:17:59 +01:00
Lukas Matena
601ede96be Merge branch 'lm_tm_hollowing' into lm_hollow_gizmo 2019-11-29 10:20:32 +01:00
Lukas Matena
71fa04ad96 SLATreeSupports generator now takes account for holes and can build supports through them 2019-11-29 10:19:02 +01:00
tamasmeszaros
86be1c1ed7 Add hollowed interiors to the support data 2019-11-26 14:18:56 +01:00
tamasmeszaros
0cf10c144c Holes are now visible on slices in preview. 2019-11-13 15:55:37 +01:00
tamasmeszaros
8a7c713339 Merge branch 'tm_openvdb_integration' into lm_tm_hollowing
SLAPrintSteps parallel functions now fully adapted to sla::ccr
2019-11-12 17:11:26 +01:00