Commit Graph

60 Commits

Author SHA1 Message Date
dfe53f83ae Fix the build 2021-06-08 11:02:29 +02:00
04331beb33 Add new (winner) neighbor index based on measurements 2021-06-08 10:34:32 +02:00
c451fc94ba Refactored hollowing backend to use indexed_triangle_mesh 2021-06-08 10:28:23 +02:00
997c446a05 SLA backend refactored, except Hollowing 2021-06-08 10:27:35 +02:00
da95f2a753 New parameter "Slicing Mode" for supporting 3DLabPrint airplane models.
S3D's strategy for merging self intersecting models is "Even / Odd"
which PrusaSlicer now supports as an alternative to "Positive" rule.
Also added a "Close Holes" option to fill in all internal structures.
3D-Labprint Models aren't sliceable (till years) #3062 #3708
2021-06-01 11:10:12 +02:00
e2b0623f8e Fixed third batch of locale-dependent calls 2021-05-24 12:20:29 +02:00
39e17fd6b9 TriangleMeshSlicer: Got rid of admesh! 2021-05-18 15:05:30 +02:00
499d8405e9 WIP: Reworked slicing
1) Slicing code moved to TriangleMeshSlicer.cpp,hpp from TriangleMesh.cpp,hpp
2) Refactored to use as little as possible of admesh.
2021-05-17 20:25:59 +02:00
f3af547441 New custom backend for libnest2d using libslic3r types
Adapted to new clipper->eigen mod
2021-04-21 16:02:25 +02:00
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
9e770e052c Fix slow cancellation of rasterization step
fixes #6253
2021-04-08 14:36:37 +02:00
f9f48c73a5 Working hole drilling one by one without linear slowdown. 2021-03-16 09:31:03 +01:00
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
f1c2f516a1 Tiny cosmetics 2021-03-08 17:38:10 +01:00
4baba84eb0 Exclude triangles of original interior mesh and drillholes from trimming 2021-03-08 17:38:10 +01:00
1e85d2651e Fix crash when the interior is corrupted 2021-03-08 17:38:10 +01:00
3f264d201e Triangle trimming should handle drilled meshes separately 2021-03-08 17:38:10 +01:00
ca81fdfa0d Fix Gizmo preview with hollowed mesh 2021-03-08 17:38:10 +01:00
dfe9554da3 Use triangle removal only for visualized mesh 2021-03-08 17:38:10 +01:00
f827e15f81 Group hollowing result (including grid) into one struct 2021-03-08 17:38:10 +01:00
3f08684873 Estimated printing time per layer for SLAPrint
Split the time if it's needed
2020-11-19 21:41:51 +01:00
ba1da930a4 SLA: Fix for crash with only 1 layer
fixes #4836
2020-10-08 10:00:55 +02:00
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
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
d4f32a3b4d Fix build on win and rpi 2020-08-13 15:09:22 +02:00
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
24265b29ce Remove leftover junk comments 2020-08-03 19:07:30 +02:00
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
00cd2acf2d Fix remove_bottom_points function 2020-08-03 19:03:02 +02:00
4e4efeef31 Initial version of sl1 import with sla::Raster refactor. 2020-04-23 19:05:32 +02:00
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
f20e5e3f74 Added new parameter elefant_foot_min_width 2020-02-14 09:21:00 +01:00
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
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
61b23691bf Use parallel execution for cutting the hollowed interior
partial solution for #3622
2020-02-10 16:57:17 +01:00
4dff6b6832 Remove the hollowed interior slices from the model slices in 2D 2020-02-10 16:33:59 +01:00
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
c8f660c0b6 Follow-up for hole point randomization 2020-02-07 16:59:34 +01:00
cda8891fe8 Hollowing: randomize hole mesh translations before unification.
To prevent self intersections in the output mesh.
2020-02-07 16:33:04 +01:00
d5956a8926 Report failing union on holes instead of faulty input mesh. 2020-02-07 15:59:33 +01:00
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
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
85dfd49afb Hollowing: merge meshes of holes with igl (intersecting holes) 2020-02-04 15:03:10 +01:00
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
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
18ca88013f Merge branch 'master' into lm_drilling_backend_rebased 2020-02-03 15:20:16 +01:00
9c68f20898 Put hole drilling into separate step 2020-01-31 08:58:21 +01:00
5ef96b1216 Trying to improve drilling stability by handling CGAL exceptions 2020-01-29 15:57:49 +01:00
0f62f0a010 Refuse to drill a broken mesh
Hole parameters defaults and limits changed a bit
2020-01-29 14:07:12 +01:00
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