309 Commits

Author SHA1 Message Date
Pavel Mikus
10d04529d6 Implemented dynamic fan control. Cooling buffer does not yet relfect that 2023-03-02 15:30:41 +01:00
Lukas Matena
e2045a60ee Separate acceleration control for external perimeters and (top) solid infill 2023-02-15 15:03:37 +01:00
Vojtech Bubnik
d58c8b1bbd Refactor of ConfigDef / ConfigOptionDef / PrintConfigDef /
Field and other UI elements to handle enums in a generic way.
Needs a review by @yusanka
2023-02-09 09:08:58 +01:00
PavelMikus
2b1bd627d7 Extra perimeters - minimal change, reduce touch distance in order to improve path sorting
Object stability warning - relfect the state, recommend brim only when it makes sense, and brim is not enabled yet.
2023-02-06 17:06:28 +01:00
Vojtech Bubnik
5b94971fce Organic supports: Added check for variable layer height, with which
Organic supports are not compatible.
Fixes #9528 and similar.
Moved the object max Z against build volume Z to Print::validate().
Updated layer_height_profile_from_ranges() to compress the resulting
ranges.
2023-02-03 15:27:50 +01:00
Pavel Mikus
79d5a38928 Create validation error when both avoid crossing curled overhangs and avoid crossing perimeters are both enabled together
Update of the previous fix of extra perimeters - do not allow changing the direction of the paths after they have been sorted
2023-02-03 15:25:21 +01:00
PavelMikus
716e0254f4 Fix notifications during GCode export - only CRTICAL are now shown
Relax support detector parameters and warnings
2023-01-31 11:12:36 +01:00
Pavel Mikus
66a4b5b82a Refactored stability alert step from object step into print step,
implemented stability issues grouping based on number of issues and objects,
maximum of single warning message emitted
2023-01-29 20:11:50 +01:00
PavelMikus
05c4e759cf Move checkbox for support alerts into AppConfig preferences.
Separate Alerts into new print object step so that not warnings are thrown for autopaint.
finally fix -1 access int SupportSpotGenerator bridge detection
2023-01-27 15:00:10 +01:00
enricoturri1966
92d26883a5 Merge branch 'master' of https://github.com/Prusa-Development/PrusaSlicerPrivate into vb_et_instances_synch 2023-01-26 10:00:58 +01:00
Lukas Matena
a067da6d53 Ooze prevention:
- remove the infinite skirt
- added 'idle_temperature' in Filament Settings as an optional parameter
- the logic is changed: if idle_temp is present, it is used,
  otherwise it uses the old delta value from Print Settings
- TODO: the optional parameter is not well supported in UI
2023-01-26 07:28:37 +01:00
Lukas Matena
98fea2f6ee Wipe tower: use GCode::set_extruder, allow ooze prevention:
this removes duplicated code and fixes toolchange retraction
The ooze prevention part needs further work, now it does not
work as advertised (the tall skirt)
2023-01-26 07:28:37 +01:00
Vojtech Bubnik
a784be24e7 Follow-up to 842229842f7fe7ce48215d6cfe55aaf4b46cfe56
WIP Synchronization of mirroring
Fixed mirroring at the FDM and SLA back-end.
2023-01-25 18:51:53 +01:00
Vojtech Bubnik
5991850db1 WIP Extending the expressivity of ExtrusionRole
Co-authored-by: supermerill <merill@free.fr>
Based on the unfinished idea of @supermerill, defining ExtrusionRole
as a bit mask of ExtrusionRoleModifier.
Because the ExtrusionRole was used for both ExtrusionEntity and
G-code export / G-code viewer, the original ExtrusionRole had to be split
to ExtrusionRole and GCodeExtrusionRole to support bitmask attributes
for the former while keeing a low number of ordinary values for the latter.
2023-01-16 10:14:46 +01:00
Pavel Mikus
cfb702be99 rename avoid_curled_filament_during_travels to avoid_crossing_curled_overhangs
mark avoid_crossing_curled_overhangs as Experimental
rename overhang_steepness_levels to overhang_overlap_levels
2023-01-11 17:15:11 +01:00
Vojtech Bubnik
25da414f5c Merge remote-tracking branch 'remotes/origin/master' into vb_treesupports 2022-11-28 10:07:39 +01:00
enricoturri1966
569db9689f Removal of calls to Geometry::assemble_transform() 2022-11-24 14:58:20 +01:00
Vojtech Bubnik
a98467f661 Merge remote-tracking branch 'remotes/origin/master' into vb_treesupports 2022-11-18 13:26:48 +01:00
PavelMikus
8c290a2f85 Fix integration of curled filament avoidance -
Invalidate the estiamtion step on option switch
Also, improve cases where either start or end lays on curled edge.
2022-11-18 13:16:54 +01:00
Pavel Mikuš
633ce8aa21
Pm jps path finding (#8)
New step - estimation of curling on both the model and the support extrusions.
Improvements in curled filament estimation algortihm
Implementation of Jump Point Search algorithm 
Use of JPS algorithm to avoid curled extrusions during travel moves in Gcode export
2022-11-09 13:33:58 +01:00
Vojtech Bubnik
f24b4e86a9 Follow-up to f342bfae4e3d09a2c6dbd873e0ed7c821988a897
as GCC did not like what MSVC was able to swallow.
2022-11-07 16:30:11 +01:00
Vojtech Bubnik
f342bfae4e Improved const correctness of ToolOrdering. 2022-11-07 16:00:13 +01:00
PavelMikus
eaffb14921 Improved stability supports - now accounts for base convex hull, decreases area of points if too close. 2022-08-22 11:01:58 +02:00
PavelMikus
adf39805bc work in progress:
hooked in new step: posSupportableIssuesSearch
created layout of the processing
2022-08-22 11:01:57 +02: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
Lukáš Hejl
0463518dc3 Attempted to reenable the old pressure equalizer and fix its issues. 2022-06-09 21:07:41 +02:00
Vojtech Bubnik
8ed6d1b466 WIP: Implemented support for QOI G-code thumbnail format as requested
by the RepRapFirmware team due to their low RAM budget for decompression.
Bundled the QOI image compression library.
2022-06-08 21:12:00 +02:00
tamasmeszaros
99c9e4a61d Fix collision after arrange when 'complete Individual objects' is ON
fixes #8335
2022-06-02 09:28:09 +02:00
tamasmeszaros
e6750a524f Fix collision after arrange when 'complete Individual objects' is ON
fixes #8335
2022-05-17 13:14:13 +02:00
Lukas Matena
09fe421fe8 Merge branch 'stable' (no conflicts fixed) 2022-04-27 22:24:13 +02:00
Lukas Matena
6a5443dad2 Yet another fixup of previous commit 2022-04-01 11:30:03 +02:00
Lukas Matena
037a866f22 Fixup of previous commit:
the previous fix only works for objects that have equal height
2022-04-01 09:54:49 +02:00
Lukas Matena
e01d32d01a Fixed several std::moves that had no effect, moved GCode data to heap 2022-03-31 16:42:15 +02:00
Lukas Matena
2ecfdea070 Fix of #7711, #7903, #8044 (wipe tower refusing to slice when layer height modifier is used):
Same settings of the layer height modifier does not guarantee to always produce profiles
exactly equal numerically. This is broken since 71ba15b.
2022-03-31 10:47:19 +02:00
Lukas Matena
e058f794d9 Merge branch 'stable' 2022-02-24 13:05:05 +01:00
Vojtech Bubnik
3e9e3fd102 Follow-up to 58d64bae7762e225a9755a79c80068f56a81b5f5
Disabled check for "G92 E0" in layer change G-code for other firmware types
than Marlin 2 and Marlin Legacy. We don't know whether other firmware
flavors are sensitive to E axis accumulation error and we know that
RepRapFirmware is not.

Fixes #7846
2022-02-14 15:11:19 +01:00
Vojtech Bubnik
87cff55856 WIP: Implemented support for QOI G-code thumbnail format as requested
by the RepRapFirmware team due to their low RAM budget for decompression.
Bundled the QOI image compression library.
2022-02-02 17:37:46 +01:00
Vojtech Bubnik
56e189943f Follow-up to 3e7a4d4648904b64c9f2d1c2948d81878f2a5eeb
Allowed for localization of error messages.
2022-01-31 11:27:32 +01:00
Vojtech Bubnik
58d64bae77 Fix of #6336 #5073: Throw an error if G92 E0 is missing in layer change
G-code with relative extruder addressing. Also thrown an error,
if G92 E0 is used with absolute extruder addressing.
2022-01-31 10:19:01 +01:00
Lukas Matena
d2664ea295 Fixed crashes with specific configuration of draft shield:
the crashing cases were:
- skirts=0 + dsEnabled
- skirt_height=0 + dsLimited

Also, when ooze_prevention is enabled with multiple extruders and skirt is disabled, 2.4.0 does not generate infinite skirt.
Version 2.3.3 does, ooze prevention overrides the disabled skirt. This commit reinstates the old behaviour.

The issues were introduced in b466f18.
2022-01-21 11:07:18 +01:00
YuSanka
8a387fc52d WIP: First IU implementation for G-code substitutions 2022-01-17 12:29:47 +01:00
Vojtech Bubnik
a591d9e9fe Implemented new placeholders for output file name:
1) "initial_filament_type", "printing_filament_types" - really useful
   for multi-material prints

the two other are not so useful, they may become useful once
the output file name template will support not yet defined
vector variables:
2) "initial_tool", "initial_extruder" - zero based index of first extruder
3) "num_printing_extruders" - number of printing extruders.

Fixes Filename incorrect when exporting G-Code with MMU. Always refers filament type in extruder 1 #5300
Fixes Export Filename nicht richtig #7673
Fixes wrong filename - always Filament in from the first extruder #7684
2022-01-10 17:57:03 +01:00
Vojtech Bubnik
4158f9ec8e New config value "gcode_resolution" replaces the hard coded RESOLUTION
value, which was set to 0.0125mm.
2021-11-30 17:52:05 +01:00
Vojtech Bubnik
cc44089440 New BuildVolume class was created, which detects build volume type (rectangular,
circular, convex, concave) and performs efficient collision detection agains these build
volumes. As of now, collision detection is performed against a convex
hull of a concave build volume for efficency.

GCodeProcessor::Result renamed out of GCodeProcessor to GCodeProcessorResult,
so it could be forward declared.

Plater newly exports BuildVolume, not Bed3D. Bed3D is a rendering class,
while BuildVolume is a purely geometric class.

Reduced usage of global wxGetApp, the Bed3D is passed as a parameter
to View3D/Preview/GLCanvas.

Convex hull code was extracted from Geometry.cpp/hpp to Geometry/ConvexHulll.cpp,hpp.
New test inside_convex_polygon().
New efficent point inside polygon test: Decompose convex hull
to bottom / top parts and use the decomposition to detect point inside
a convex polygon in O(log n). decompose_convex_polygon_top_bottom(),
inside_convex_polygon().

New Circle constructing functions: circle_ransac() and circle_taubin_newton().

New polygon_is_convex() test with unit tests.
2021-11-16 10:15:51 +01:00
Vojtech Bubnik
a6f4b9b71f Snug supports: Extrude interface layers 45 degrees from the base layer,
flip direction of the infill layer with each interface layer.
Unfortunately the flipping of support interface directions may not work
reliably due to base support layer heights growing at different rate
from the interface layers.
2021-10-14 13:56:04 +02:00
Lukas Matena
71ba15b6f0 Fixed comparison of layer height profiles when printing with wipe tower:
while the layer height profile vector may not contain all print z
values, the only real case with two eqiuvalent layer height profiles is
when one was created as a copy of another, so the vectors should in fact be equal.
2021-09-15 16:37:41 +02:00
Vojtech Bubnik
cab71073a1 Some reduction of unnecessary conversions when calling ClipperUtils. 2021-09-13 15:13:10 +02:00
Vojtech Bubnik
f9a5ee725d Follow-up to ae7d6db1d961f85b8e2788d707cef03de7e28fdb
Exporting G-code on a worker thread did not work correctly as the worker
threads were using user's locale, not "C" locale.
The "C" locale is newly enforced to TBB worker threads by
name_tbb_thread_pool_threads_set_locale()
2021-09-13 13:04:12 +02:00
Vojtech Bubnik
b29c0ead7d Implemented configurable speed and acceleration settings for the first
object layer over raft interface:
"first_layer_speed_over_raft", "first_layer_acceleration_over_raft".
Fixes I have a question about the speed of the first layer after the raft. #6623
Fixes Layer After Raft Is Not Considered First Layer! #6166
2021-08-31 16:03:14 +02:00
Lukas Matena
3fc4cc84a7 Fixed invalidation when first_layer_height is changed 2021-08-25 12:01:51 +02:00