Vojtech Bubnik
1aef86f650
Implemented generic mechanism for executing tasks on UI thread synchronously
...
from the background slicing thread, that supports cancellation.
The generic mechanism is used for generating thumbnails into G-code and
Fixes Fix deadlock when canceling the slicing while gcode is creating thumbnails #6476
Thanks @supermerill for pointing out the issue.
2021-05-04 16:07:32 +02:00
enricoturri1966
cb294e0b3e
Follow-up of 15c32d636d
-> Small refactoring
2021-05-04 13:31:07 +02:00
enricoturri1966
15c32d636d
Seams detection for gcode saved with other slicers
2021-05-04 12:45:51 +02:00
Vojtech Bubnik
5cc6dc59dc
Fixed compilation with GCC
2021-05-04 11:22:38 +02:00
Vojtech Bubnik
a7368b9deb
Fixing thread-safe StaticConfig creations #6477
...
fix un-threadsafe code for creating config enum hashtable. #6475
2021-05-04 11:03:26 +02:00
enricoturri1966
ede14251b1
Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_project_dirty_state
2021-05-03 16:05:22 +02:00
Vojtech Bubnik
ab74ea5c90
One more fix after merge.
2021-05-03 15:30:10 +02:00
Vojtech Bubnik
2aadc1cefa
Fixing after merge.
2021-05-03 15:28:03 +02:00
Vojtech Bubnik
eb66111eda
Merge branch 'vb_clipper_optimization'
2021-05-03 15:24:04 +02:00
Vojtech Bubnik
ef07644bf2
Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer
2021-05-03 15:23:57 +02:00
Vojtech Bubnik
7563c885a1
Fixing compiler warnings
2021-05-03 15:00:23 +02:00
enricoturri1966
1c3090b11f
Tech ENABLE_ALLOW_NEGATIVE_Z-> Layers height editing related fixes
2021-05-03 14:28:55 +02:00
Vojtech Bubnik
96f8744e05
Another fix for C++ conformant compilers
2021-05-03 11:55:23 +02:00
Vojtech Bubnik
09a80d954c
Further rework of ClipperUtils: Replaced many to_polygons() /
...
to_expolygons() calls with templated ClipperUtils variants to avoid
memory allocation and copying.
2021-05-03 11:39:53 +02:00
Lukáš Hejl
62592cab48
Added missing include (GCC 11.1)
2021-05-01 22:33:59 +02:00
enricoturri1966
395164c7a1
Fixed conflicts after merge with master
2021-04-30 14:54:58 +02:00
Lukas Matena
95f5b82d6a
Improved MM priming lines placement on circular beds ( #6459 )
2021-04-30 13:11:33 +02:00
Vojtech Bubnik
9fbba855ef
Clipper optimization:
...
1) Removed the already commented-out scaling / unscaling when doing
"safe offsetting"
2) Removed some of the "safe offsetting" at calls where it never was used.
3) Reworked Clipper & ClipperUtils to pass Polygons / ExPolygons / Surfaces
as input parameters without conversion to ClipperLib::Paths. This
should save a lot of memory allocation and copying.
4) Reworked conversions from ClipperLib::Paths & PolyTree to Polygons /
ExPolygons to use the move operator to avoid many unnecessary allocations.
5) Reworked some "union with safe ofsetting" to "offset_ex", which should
be cheaper.
2021-04-30 11:49:57 +02:00
enricoturri1966
28d01542ed
Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_custom_gcode_detection
2021-04-29 11:07:47 +02:00
Vojtech Bubnik
b327314b02
Layer::make_perimeters() - when merging regions, use OffsetEx instead
...
of safety offset of UnionEx, which may not be robust.
2021-04-29 11:05:11 +02:00
enricoturri1966
9086542a08
Follow-up of 2c6472ebc3
-> Ensure backward compatibility
2021-04-28 16:06:49 +02:00
enricoturri1966
c58572deaa
Tech ENABLE_ALLOW_NEGATIVE_Z->Fixed object popping up after editing layer range fields
2021-04-28 11:07:15 +02:00
enricoturri1966
7ae77c06d0
Tech ENABLE_SEAMS_VISUALIZATION -> Added threshold to place seams
2021-04-27 15:12:45 +02:00
enricoturri1966
15f376e468
Tech ENABLE_SEAMS_VISUALIZATION -> Fixed build on Mac
2021-04-27 11:11:21 +02:00
enricoturri1966
2c6472ebc3
Replace label Skirt with Skirt/Brim in preview legend
2021-04-27 10:46:42 +02:00
enricoturri1966
076fdc90c0
Tech ENABLE_SEAMS_VISUALIZATION -> 1st installment of seams visualization in preview
2021-04-27 09:45:15 +02:00
Lukas Matena
978b359492
Fix normal direction when exporting STL ( #6406 )
...
The export function does not depend on Model/ModelObject::mesh() family of functions,
changing them might break the already too brittle code.
2021-04-26 19:58:08 +02:00
Vojtech Bubnik
d1cfdcb49e
Refactoring of StaticPrintConfig & derived classes:
...
1) Using boost::preprocessor to reduce code duplicities when defining
new configuration values.
2) Implemented static hash() and operator== on StaticPrintConfig derived
classes to support hash tables of instances thereof.
2021-04-26 18:37:10 +02:00
Lukas Matena
5783cc62fb
Wipe tower priming lines are placed at origin with custom bed shapes
...
Custom shapes were previously detected as circular and the lines were placed off the bed
2021-04-26 09:21:18 +02:00
Vojtech Bubnik
9f4e9da5c6
Merge branch 'tm_vb_clipper_eigen'
2021-04-23 11:44:25 +02:00
enricoturri1966
d4695827ce
Tech ENABLE_ALLOW_NEGATIVE_Z -> Keep sinking instances as sinking after applying rotate gizmo
2021-04-23 08:29:29 +02:00
enricoturri1966
70ec034281
Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_custom_gcode_detection
2021-04-22 15:30:27 +02:00
enricoturri1966
52583bbe30
Extrusions in custom start g-code forced to be at first layer height level
2021-04-22 15:15:19 +02:00
tamasmeszaros
ea26581959
Move iterator stuff from polygon to multipoint
2021-04-22 09:44:08 +02:00
Vojtech Bubnik
3b86cb3a3c
Added missing files
2021-04-22 09:26:07 +02:00
Vojtech Bubnik
8d0950ce12
Convincing ClipperLib to use Slic3r's own Point type internally.
2021-04-21 20:15:49 +02:00
tamasmeszaros
a15c16d40d
Use new libnest backend for MinAreaBoundingBox wrapper
2021-04-21 17:21:43 +02:00
tamasmeszaros
657d19482b
Minor code refinements
2021-04-21 16:49:11 +02:00
tamasmeszaros
d069591514
Write hollow flag to SL1 files if any object is hollowed.
2021-04-21 16:29:12 +02:00
tamasmeszaros
dca67822d1
Eliminate warnings caused by changes to aid new libslic3r backend
2021-04-21 16:02:31 +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
enricoturri1966
82d577645e
Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_custom_gcode_detection
2021-04-21 14:52:52 +02:00
Vojtech Bubnik
0c1953a929
Further fixes of the first_layer_height refactoring.
2021-04-21 14:34:49 +02:00
enricoturri1966
c8b83ae011
Tech ENABLE_ALLOW_NEGATIVE_Z -> Allow move gizmo to place an object under the printbed
2021-04-21 12:41:43 +02:00
enricoturri1966
c7771a576b
Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_custom_gcode_detection
2021-04-21 12:32:17 +02:00
Vojtech Bubnik
d9ed9149ae
1) Moved first_layer_heigth frrom PrintObjectConfig to PrintConfig.
...
Thus the first_layer_height is no more object specific. That makes
a lot of sense due to the brim calculation being performed over
all layers at once and due to future merging of supports of
different objects at first layer.
2) Because now first_layer_height is print specific, the relative
first layer height derived from the object layer height was partially
disabled: First the relative first layer height is converted to
an absolute value when importing config, second the side text
was changed from "mm or %" to "mm". Still the UI allows entering %.
Both changes may be controversial, let's wait for user feedback.
2021-04-21 12:09:43 +02:00
enricoturri1966
f486dedb52
Disabled tech ENABLE_PROJECT_DIRTY_STATE_DEBUG_WINDOW
2021-04-20 10:41:38 +02:00
Vojtech Bubnik
48a93e40fb
After issuing the color change custom G-code, which is most likely
...
just M600, reset the internal retract counter, so that a retract
will happen after the firmware returns from M600 to the initial position.
Fixes "Blobs on print after manual color change #6362 "
2021-04-15 16:29:30 +02:00
enricoturri1966
526233ca47
Modified version of automatic downscale on load of objects too big
2021-04-14 14:46:49 +02:00
Vojtech Bubnik
0625788583
Fixed obvious bug in move operator, discovered by clang lint ran by Tamas.
2021-04-14 14:25:30 +02:00
Vojtech Bubnik
7112ac61b6
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
Vojtech Bubnik
c1179fc2c7
Marked the unsafe ClipperUtils offset functions with CLIPPERUTILS_UNSAFE_OFFSET
...
Replaced some of the unsafe offset functions with safe variants.
Please test the
1) print bed from STL function
2) concentric infill
2021-04-13 13:28:37 +02:00
Vojtech Bubnik
e8643125d8
Clipper / ClipperUtils:
...
1) Let Clipper use int32_t for representing its coordinates. This
reduces memory and allows to skip conversion between Slic3r Polygon
and Clipper polygon.
2) Disable additional offset before executing the Clipper Offset algorithm.
We don't see any reason for that and it required 64bit Clipper coordinates,
which were disabled with 1).
2021-04-13 11:31:54 +02:00
Vojtech Bubnik
dbd1c09523
FDM snug supports: New parameter "closing radius", inspired by Cura's
...
support_join_distance
2021-04-12 14:56:36 +02:00
enricoturri1966
fbde7de98a
Do not convert custom gcode extrusion to travel
2021-04-09 12:52:11 +02:00
Vojtech Bubnik
ef6ce8792d
Fix of brim under supports
2021-04-08 16:36:52 +02:00
Vojtech Bubnik
8fd731f7a0
New FDM support sparse infill zig-zag algorithm.
...
Fixed some old support and infill issues.
Fixes support problem #4295
Fixes Parts of interface layer extends beyond supports and cannot be printed
Fixes support missing under horizontal overhang #6058
Fixes Slicer double-traces small sections of Rectilinear Supports, causes
Fixes plastic buildup and nozzle crashes #4951
Fixes Add "Angle Interface layers" #2969
2021-04-08 15:29:40 +02:00
tamasmeszaros
08ca5b29f0
Fix slow cancellation of rasterization step
...
fixes #6253
2021-04-08 14:36:37 +02:00
tamasmeszaros
e8af080346
Merge remote-tracking branch 'origin/tm_sl1_import_fix'
2021-04-07 13:56:14 +02:00
tamasmeszaros
bed3321324
Small improvement to "least supports" method
2021-04-07 12:51:02 +02:00
tamasmeszaros
773116b777
Allow auto-rotation of objects not completely inside bed.
...
Don't use SLAPrintObject as the input for optimization. Use ModelObject and pass the print config to the optimization in RotoptimizeJob::prepare()
2021-04-07 12:51:02 +02:00
tamasmeszaros
5443f77489
Increase performance of "best misalignment" method
2021-04-07 12:51:02 +02:00
tamasmeszaros
f3e3aabec7
Least supports optimization revived.
...
Fix missing include on Win32
Cleanup benchmarking code
2021-04-07 12:51:02 +02:00
tamasmeszaros
0194094afa
Method selection implemented
2021-04-07 12:51:02 +02:00
tamasmeszaros
4eb13a407f
Extend execution framework with convenience functions
2021-04-07 12:51:02 +02:00
tamasmeszaros
46fd722f3c
Unite cancel callback and status function
2021-04-07 12:51:02 +02:00
tamasmeszaros
de8bb00fa9
Speed up rotation optimizer
...
- No float to double conversion
- Solving issue of random (very similar) results due to the parallel summation of floats
2021-04-07 12:51:02 +02:00
tamasmeszaros
7760d3fbc4
Add new execution framework
...
Inspired by std::execution
2021-04-07 12:51:02 +02:00
tamasmeszaros
4293a68aaa
Reverting to old rotation optimizer object-function.
...
Keep the performance optimizations though
2021-04-07 12:51:02 +02:00
tamasmeszaros
9aac1b6fa5
Fix issue with importing sl1 files with non-ascii filenames.
2021-04-07 12:41:38 +02:00
enricoturri1966
edbb1d0f69
Project dirty state manager -> presets dirty state
2021-04-06 16:29:05 +02:00
Lukas Matena
9660d35f8c
An attempt to fix time estimates for 'Marlin (legacy)' flavor
...
Old M204 S sets both printing and travel accelerations, which must be
accounted for now when the latter was separated.
2021-04-06 15:45:49 +02:00
enricoturri1966
9b2d9fb01a
GCodeProcessor added travel acceleration
2021-04-06 15:45:49 +02:00
enricoturri1966
52af90ed8f
GCodeProcessor use new flavor gcfMarlinFirmware
2021-04-06 15:45:49 +02:00
Lukas Matena
8c89bf748b
Implemented new acceleration control behaviour for the new Marlin firmware flavor:
...
- show extra travel acceleration settings in 'Machine limits' page in Printer Settings
when the new firmware flavor is selected
- updated tooltips on the config values (they were basically wrong even in the current version)
- 'Marlin (legacy)' firmware flavor behaviour should not change: it exports M204 Pa Rb Ta
(where a, b are the values from machine limits) at the beginning of gcode and it uses
M204 S... for feature type dependent acceleration settings (legacy variant of M204 P.. T..)
- new Marlin Firmware exports M204 Pa Rb Tc (where a,b,c are the values from machine limits).
Feature type dependent acceleration is set using M204 P..., not overriding the travel acceleration.
2021-04-06 15:45:49 +02:00
Lukas Matena
f0e9ad46ec
Renamed the gcfMarlin enum value to gcfMarlinLegacy so we never mistake it for the new one
...
There should be no functional change.
2021-04-06 15:45:49 +02:00
Lukas Matena
151a76ee92
Duplicated Marlin firmware flavor to 'Marlin (legacy)' and 'Marlin Firmware'
...
The two flavors should be identical after this commit, except that GCodeProcessor.cpp was not updated. This shall be done in a later step.
2021-04-06 15:45:49 +02:00
Lukas Matena
58a811a638
Wipe tower: correctly detect first layer even with 'No sparse layers' option enabled
2021-04-06 15:37:39 +02:00
Lukas Matena
43d9e38325
Wipe tower: reorder extruders so first layer starts with soluble if possible
...
That way it will not be wiped on first layer
2021-04-06 15:37:39 +02:00
Lukas Matena
5d636ab853
Wipe tower: respect first_layer_speed
2021-04-06 15:37:39 +02:00
enricoturri1966
144e37c274
1st installment of project dirty state manager
2021-04-06 10:00:17 +02:00
Lukas Matena
3459231111
Wipe tower: set travel feedrate for a move from custom toolchange position to the wipe tower ( #5483 )
2021-04-05 23:39:27 +02:00
Lukas Matena
67bc2e472f
Wipe tower: fix wipe moves after recent changes
2021-04-05 23:39:27 +02:00
Lukas Matena
a6ddab856b
Wipe tower: refactoring of brim and solid infill on first layer
2021-04-05 23:39:27 +02:00
Lukas Matena
f6de946dd7
Wipe tower: don't use soluble filament for perimeters, sparse infill or first layer
2021-04-05 23:39:27 +02:00
Lukas Matena
3ed68ac28a
Wipe tower: slightly changed finish_layer logic so it can be called after any toolchange
2021-04-05 23:39:27 +02:00
Lukas Matena
cc7ef40e20
Wipe tower: remove unfinished square wipe tower option
2021-04-05 23:39:27 +02:00
Lukas Matena
97c4c02001
Wipe tower: don't do sparse infill when there is a soluble filament above it
2021-04-05 23:39:27 +02:00
enricoturri1966
ab3890dab5
Follow-up of 3fce8398f0
- Fixed build warnings
2021-03-31 08:54:58 +02:00
enricoturri1966
3fce8398f0
Follow-up of 6ffa51da58
- Modified export of final M73 lines for remaining time to next printer stop accordingly to firmware specifications
2021-03-30 09:59:10 +02:00
Vojtech Bubnik
acce99f29b
Fixed some compilation warnings in MutablePolygon.cpp
2021-03-29 14:15:18 +02:00
enricoturri1966
68303059a6
Extract bed size from gcode produced with Simplify3d
2021-03-25 09:23:14 +01:00
enricoturri1966
cfcce6f29a
Follow-up of 10c3e82917
- Updated version for unpublished techs in Technologies.hpp
2021-03-24 14:30:46 +01:00
enricoturri1966
645e5b6862
Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_extended_m73
2021-03-24 12:05:36 +01:00
enricoturri1966
9c951b3108
Fixed parsing of g-code files generated by newer versions of Simplify3D
2021-03-24 11:36:16 +01:00
enricoturri1966
a0feb0f652
Preview and G-code viewer - Fixed synchronization between markers for pause print, color changes, custom g-code, retractions, deretractions and current line shown in g-code window
2021-03-23 12:46:04 +01:00
Lukas Matena
cafa5b26a8
Compilation fixes
2021-03-23 12:40:29 +01:00
Vojtech Bubnik
af9c7c967f
Implementing a new switch for the shape of support towers:
...
expanded to a grid (the old way) vs.
snug (like the upstream Slic3r, Cura or Ideamaker).
Snug supports suffered from the degeneracies when merging overhang islands
over a large number of layers when projecting the support towers down.
We borrowed the idea & a bit of code from Cura by simplifying the support
polygons by closing the concave cracks, see the smooth_outward() function
and the MutablePolygon class.
Fixes Support problems with models with hole in the walls. #555
Fixes Support in the Air #740
Fixes [Bug] Supports generated beyond bed edges (X<0 and X>250) and where none are needed. #902
Fixes Unable to remove support material/can't change support "inflation distance" #2708
Fixes FR: support inflation and support conform to boundary #4783
Fixes Support blocker not working on this model #1346
Fixes Unnecessary support material #1993
Fixes support blocker enforcer issue #6240
2021-03-23 11:06:45 +01:00
Vojtech Bubnik
00295919bf
Fixes of MutablePolygon
2021-03-23 11:06:45 +01:00
enricoturri1966
6ffa51da58
1st installment of export to gcode of M73 lines for remaining time to next printer stop
2021-03-23 09:05:52 +01:00