Commit Graph

1946 Commits

Author SHA1 Message Date
tamasmeszaros
25e303493e Revert c55173eb as it breaks features.
Output file name is not picked up in the SLA export file dialog.
2020-02-12 18:25:18 +01:00
Enrico Turri
c55173eba4 Follow-up of 00ecafe3d5 -> Fix of #3650 moved into 'SLAPrint::output_filename()' as the previous fix was breaking the export from GUI 2020-02-12 15:39:04 +01:00
Enrico Turri
00ecafe3d5 #3650 - Fixed extension of exported file when processing models for sla printers from command line 2020-02-12 14:23:54 +01:00
YuSanka
fcd1cf371b Alignments of options in settings tabs
+ msw_rescale() is overridden for PrinterTab to rescale of all the option Pages and not just a respect to current print technology
+ A Setting of the option.width in PrintConfig is no need anymore
2020-02-12 12:51:34 +01:00
Lukas Matena
2e62f03ba8 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
cd88643558 Merge branch 'tm_hollowing' 2020-02-10 17:03:11 +01:00
tamasmeszaros
384d1ae1bb Use parallel execution for cutting the hollowed interior
partial solution for #3622
2020-02-10 16:57:17 +01:00
bubnikv
26a6a9b23f Fixed regression crashing when generating G-code with supports. 2020-02-10 16:37:38 +01:00
tamasmeszaros
41388bdb01 Remove the hollowed interior slices from the model slices in 2D 2020-02-10 16:33:59 +01:00
bubnikv
7655488639 Ammendment of
Reverted the time estimate number stored into the G-code from
    days/hours/minutes to days/hours/minutes/seconds, because who knows
    who is already parsing the file.
2020-02-10 15:53:11 +01:00
bubnikv
9f40e9e56e Reverted the time estimate number stored into the G-code from
days/hours/minutes to days/hours/minutes/seconds, because who knows
who is already parsing the file.
2020-02-10 15:46:08 +01:00
bubnikv
a25f58731e Fix of d81f7d8465
(SlicedInfo: Removed secondes from estimated times):
GCodeTimeEstimator::_get_time_dhm() shall round to minutes, old
code rounded down to minutes, new code rounds to 1/2.
2020-02-10 14:40:21 +01:00
bubnikv
bfbf3ac94d Follow up on the hot fix of #3637 53bfb6bed3
This is the correct solution, which maintains the optimization introduced
by 3e0690b37b
2020-02-10 14:24:28 +01:00
YuSanka
d81f7d8465 SlicedInfo: Removed secondes from estimated times 2020-02-10 12:52:32 +01:00
bubnikv
53bfb6bed3 Hot fix of Object disappears when wipe to object turned on #3637
which is a regression of an optimization 3e0690b37b

With the optimization disabled, the G-code generator will not be slower
than PrusaSlicer 2.1.1. I am leaving the code there to mark for
further optimization opportunities.
2020-02-10 08:24:39 +01:00
bubnikv
519a982fe9 Fix of #3632: Crash if a thin wall object is not printable, therefore
no extrusion is generated.

Now the situation is detected and an exception is thrown.
2020-02-09 18:34:06 +01:00
bubnikv
5eb1e7e886 Fixed a bug in the update of the backend when the Spiral Vase option
is enabled / disabled.

Spiral Vase forces different kind of slicing than the normal model:
In Spiral Vase mode, holes are closed and only the largest area contour is kept at each layer.
Therefore toggling the Spiral Vase on / off requires complete reslicing.

This commit moves the update to the correct location.
2020-02-09 13:56:42 +01:00
bubnikv
e7d2fcf0be Fixed unit tests broken with the previous commit (Spiral Vase fix).
Fixed a crash in the previous commit.
2020-02-09 09:43:15 +01:00
bubnikv
4e11552da9 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
8cda986ffb Follow-up for hole point randomization 2020-02-07 16:59:34 +01:00
tamasmeszaros
eb4b24e136 Hollowing: randomize hole mesh translations before unification.
To prevent self intersections in the output mesh.
2020-02-07 16:33:04 +01:00
tamasmeszaros
f512892f6b Report failing union on holes instead of faulty input mesh. 2020-02-07 15:59:33 +01:00
bubnikv
348bf39012 Fix of the previous commit: Fixed sequential print unit tests. 2020-02-07 14:43:13 +01:00
bubnikv
b8c898bf40 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
Enrico Turri
a1c0a29af2 ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK - Fixed inconsistencies for splitted and cutted objects 2020-02-07 09:49:48 +01:00
YuSanka
455f36119a Localization: Updated PrusaSlicer.pot and list.txt
+ added missed icons
2020-02-06 20:37:12 +01:00
Lukas Matena
665bc9e960 Hollowing: allow to place drain holes on the inner surface of a hollowed cavity
Drain holes are not allowed to be placed on its own inner surface. This was recently (0e3ebb3)
done by forcing invalidation of the slaposDrillHoles, which also invalidates and therefore
hides the drilled mesh. However, that also hides the hollowed mesh and it is not possible
to place holes inside the cavity.

This change does not dump the drilled mesh, but checks that no raycast hit ends up in a hole.
2020-02-06 17:58:26 +01:00
bubnikv
fb235cb675 Color change - handling Color Change data stored for different
printer configuration:

ss -> sm : Just apply the color changes of the original ss project at the active extruder.
ss -> mm : There are no tool changes stored. Ignore color changes, they are invalid because they are extruder non-specific.

sm -> ss : Apply tool changes as color changes (tool changes remember the target color), apply original color changes.
sm -> mm : Ignore both color changes and tool changes.

mm -> ss/sm : Ignore both color changes and tool changes.
2020-02-06 14:03:27 +01:00
Enrico Turri
f37a31596c Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_labels 2020-02-06 09:15:15 +01:00
tamasmeszaros
d58f451d5d Merge branch 'tm_cgal_improvements_SPE-1088' 2020-02-05 17:56:52 +01:00
tamasmeszaros
bd76c345f2 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
bubnikv
495a71ed00 Implemented top_solid_min_thickness / bottom_solid_min_thickness.
The two new config keys define a minimum vertical shell thickness.
The top shell thickness is calculated as a maximum of sum over
top_solid_layers * layer heights and top_solid_min_thickness,
the bottom shell thickness is calculated as a maximum of sum over
bottom_solid_layers * layer heights and bottom_solid_min_thickness.

The results of the formula above are shown at the Print parameter page
below the two new values to hint the user about the interaction
of the old versus new config values.

top_solid_min_thickness has no meaning if top_solid_layers is zero,
bottom_solid_min_thickness has no meaning if bottom_solid_layers is zero.
2020-02-05 16:53:48 +01:00
Enrico Turri
5c4b481e35 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_labels 2020-02-05 15:27:20 +01:00
tamasmeszaros
a66dcf58f7 Fix for failing build without PCH 2020-02-05 09:57:22 +01:00
bubnikv
bca3e86455 Fixed invalidation of FDM back end if a custom per layer
extruder change is added or removed.
2020-02-04 17:46:31 +01:00
bubnikv
059bdb4711 Implemented handling of complex ConfigOptionFloatOrPercent chains
by the PlaceholderParser.

Namely, all the options with the "ratio_over" reference are now handled
correctly by the PlaceholderParser with the exception
of the "first_layer_extrusion_width", which overrides speed of extrusions
by their respective extrusion type.

Also the various extrusion widths (extrusion_width, first_layer_extrusion_width,
external_perimeter_extrusion_width etc.) produce the same numbers
as if ran through the back-end, with the assumption of not overriding
layer height by the variable layer height editing tool or layer height
modifiers.
2020-02-04 15:27:38 +01:00
Lukas Matena
808cf2e38a Hollowing: merge meshes of holes with igl (intersecting holes) 2020-02-04 15:03:10 +01:00
Enrico Turri
dc393e2f0a Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_labels 2020-02-04 12:28:06 +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
tamasmeszaros
ad3e3be3bc optimize string_printf 2020-02-03 17:11:24 +01:00
tamasmeszaros
0c4797e92e use vsnprintf instead of snprintf in string_printf function
Also, revert to old location: Utils.hpp and utils.cpp
2020-02-03 16:00:53 +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
Enrico Turri
6fa49f5931 Added sequential print order id to 3D scene labels 2020-02-03 11:44:26 +01:00
Enrico Turri
0937c576ac Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_labels 2020-02-03 11:43:37 +01:00
tamasmeszaros
992a0c3d7a remove duplicate string_printf
#3594, #3592
2020-02-03 11:19:11 +01:00
tamasmeszaros
8aec5f6726 string_printf Wformat-security hack #
#3594, #3592
2020-02-03 11:09:54 +01:00
Enrico Turri
251a7d1329 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_labels 2020-02-03 08:23:55 +01:00
tamasmeszaros
36e92b0141 Put hole drilling into separate step 2020-01-31 08:58:21 +01:00
Lukas Matena
4bc4e347fb Fixed a crash during cut (typo introduced in 645f13a) 2020-01-31 08:54:41 +01:00
bubnikv
9ef65b23d8 Implemented loading of hollowed SLA mesh into the scene
in place of the normal mesh.

WIP: The code is inefficient (it does not store the timestamp
of the hollowed mesh, therefore it refreshes the hollowed mesh on each
scene update) and if the hollowing gets invalidated, the original mesh
is currently not being reloaded and the hollowed mesh is still visible.
2020-01-30 17:58:49 +01:00
bubnikv
1278aabf3e Fixed some compiler warnings. 2020-01-30 13:00:51 +01:00
bubnikv
c5fa400208 Fixed regression of 71fa411100
where the PrintObject bounding box was not invalidated correctly
when the transformation matrices of instances changed.

Also refactored PrintObject::size() for const correctness.
2020-01-30 12:22:30 +01:00
Lukas Matena
b0aa937215 Trying to improve drilling stability by handling CGAL exceptions 2020-01-29 15:57:49 +01:00
Enrico Turri
16fa68df0c Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_labels 2020-01-29 14:46:09 +01:00
tamasmeszaros
7156ed9987 Remove redundant code 2020-01-29 14:13:21 +01:00
Lukas Matena
b41c6d7d64 Refuse to drill a broken mesh
Hole parameters defaults and limits changed a bit
2020-01-29 14:07:12 +01:00
Enrico Turri
504413cc91 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_labels 2020-01-29 12:31:50 +01:00
Lukas Matena
5ae2f8a467 Function sla_trafo made accessible from outside SLAPrint.cpp unit 2020-01-29 10:07:10 +01:00
tamasmeszaros
6988752d05 Re-apply fix for Win32 2020-01-28 15:24:23 +01:00
tamasmeszaros
9d0d0cde21 Fix broken build on non-linux platforms 2020-01-28 15:08:07 +01:00
tamasmeszaros
04a58e41c4 Fix cgal when used from distro package
fix CMake -frounding-math propagation from CGAL.
2020-01-28 14:49:39 +01:00
Enrico Turri
d5b258c267 1st installment of object/instance labels in 3D scene 2020-01-28 13:15:21 +01:00
Enrico Turri
69549af9ac Invalidate object bounding box after arrange 2020-01-28 11:11:45 +01:00
bubnikv
dced3ce783 Fix of 2.2.0-A3: Sequential Printing: Wrong location after slicing #3570
This is a regression from 71fa411
2020-01-24 17:11:14 +01:00
tamasmeszaros
848fe4750f Add prusaslicer.ini to sl1 output zip 2020-01-24 15:23:59 +01:00
tamasmeszaros
743a03a8c2 append full config to sla zipped ini
SPE-1081
2020-01-24 14:31:31 +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
tamasmeszaros
9f6ad70f0b Merge branch 'lm_tm_hollowing' 2020-01-24 13:51:49 +01:00
tamasmeszaros
c6a2b69419 32 bit MSVC workaround for CGAL 2020-01-24 13:41:37 +01:00
Lukas Matena
1c0aedbbe5 Hollowing gizmo can now trigger the backend calculation 2020-01-24 10:53:40 +01:00
Lukas Matena
d58ee47e4d Fixed incorrect hole normal transformation when the object is anisotropically scaled 2020-01-24 10:53:40 +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
b45e95877e Merge branch 'master' into lm_tm_hollowing 2020-01-23 17:43:18 +01:00
tamasmeszaros
cb39f6b212 Use CheckAtomic differently 2020-01-23 17:20:02 +01:00
YuSanka
5ff8ae955b Implemented editing for extruder of existing ToolChangeCode tick
+ Code refactoring: DoubleSlider is extracted from wxExtensions
2020-01-23 16:11:21 +01:00
YuSanka
1ed313ab79 Synchronized mode of color_print data to/from 3mf/amf
+ Code refactoring " CustomGCode extracted to separate namespace and file
2020-01-23 16:11:21 +01:00
tamasmeszaros
75260eea12 Fix latomic linking on Mac
SPE-1079
2020-01-23 13:18:44 +01:00
tamasmeszaros
f8a5796ca5 add mesh simplification.
SPE-1072 
Working but flipped normals with the interior.
Testing on treefrog passed
Oversampling for hollowed mesh should not be less than 3x
Flip back normals after simplify and remove redundant test code.
2020-01-23 10:58:18 +01:00
bubnikv
71fa411100 Refactored PrintObject::m_copies to PrintInstances,
so that the ordering code at G-code export may work directly with
pointers to PrintInstances instead of with pair of <PrintObject, copy idx>.
Also the PrintInstance knows its source ModelInstance, which allows
sorting of PrintInstances for sequential printing in the order
they appear in Plater's object list.
2020-01-23 09:53:06 +01:00
bubnikv
cea7cbfaa0 The print order for sequential print now corresponds to the order
at the object list.
Partial fix of https://github.com/prusa3d/PrusaSlicer/issues/3455
2020-01-22 10:50:20 +01:00
bubnikv
094cef26d4 Fix of the new PlaceholderParser int() conversion.
Fixes https://github.com/prusa3d/PrusaSlicer/pull/3271
Also some old errors (typos, UBs) were fixed.
2020-01-21 17:12:06 +01:00
lukasmatena
6100a71406
Merge pull request #3548 from KyleMaas/fix-ooze-prevention-issue-2901
Fix bug #2901 - Ooze Prevention on dual extruders (regression)
2020-01-21 14:41:41 +01:00
Enrico Turri
2b93900ac0 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2020-01-21 14:07:22 +01:00
Enrico Turri
dd09077bba Reload from disk command enhanced to work with 3mf/amf files saved with PrusaSlicer 2.1.0 and earlier 2020-01-21 14:07:13 +01:00
David Kocik
93f9fc1049 Throwing exceptions with text after copy file check failure and renaming from .tmp failure 2020-01-21 13:39:27 +01:00
Lukas Matena
63b0eec5a9 Merge branch 'master' into lm_tm_hollowing 2020-01-21 13:00:07 +01:00
bubnikv
05ea01bdcc Ported PlaceholderParser unit tests to C++. 2020-01-21 12:10:09 +01:00
Vojtěch Bubník
071d3b2762
Merge pull request #3271 from smurfix/upstream
Add int() and % (modulo) functions
2020-01-21 04:15:56 -05:00
bubnikv
7efca35c27 Don't store "print_host", "printhost_apikey", "printhost_cafile"
into the G-code.
2020-01-21 09:55:44 +01:00
Jebtrix
5342ad8990 Fix [scale] from being assigned to [year] placeholder
[year] in output filename format results in blank file name (Issue #2349)
2020-01-20 11:27:00 -05:00
foxox
07d6fd8f7e Platter->Plater 2020-01-20 11:16:49 -05:00
bubnikv
5fe5378367 Fixed AstroBox upload type selection. 2020-01-20 16:57:50 +01:00
Enrico Turri
c87e951da5 #3536 - Fixed PrusaSlicer not closing the file when trying to open an invalid 3mf (actually any zip) file 2020-01-20 13:29:59 +01:00
tamasmeszaros
87f2578ee7 Try to fix libatomic linkage on raspbian
SPE-1073
2020-01-20 12:50:48 +01:00
tamasmeszaros
ce34ae4716 Try to fix libatomic linkage on raspbian 2020-01-20 10:38:40 +01:00
Enrico Turri
cbe5132832 #3540 - Fixed toolpaths preview for empty ranges 2020-01-20 10:38:01 +01:00
KyleMaas
53980d074e Fix bug #2901 2020-01-19 11:13:42 -05:00
Lukas Matena
d8f2c8cdab Fixed a bug in the hole-aware raycaster 2020-01-17 16:02:23 +01:00