Commit graph

394 commits

Author SHA1 Message Date
Lukas Matena
e058f794d9 Merge branch 'stable' 2022-02-24 13:05:05 +01:00
Lukas Matena
0a280be8d0 Placeholder parser fixes 2022-02-23 13:44:26 +01:00
Vojtech Bubnik
8aefe3fc90 Fix of gcode_substitutions will cause errors in prusaslicer_config dump at the end of gcode
Suppress the G-code find / replace substitutions for the non-G-code
sections (comment blocks) at the start and at the end of the G-code file.
2022-02-21 11:04:43 +01:00
Vojtech Bubnik
5ed364910b Follow-up to 199dc121a5
Quantization of G-code export to achieve more precise extrusion
    width control.
Fix of wiping.
2022-02-09 15:30:11 +01:00
Vojtech Bubnik
199dc121a5 Quantization of G-code export to achieve more precise extrusion
width control.
2022-02-07 15:33:34 +01:00
Vojtech Bubnik
1d7f4a081b G-code thumbnails in other than PNG format: Fixing Perl unit tests. 2022-02-07 10:20:04 +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
Lukas Matena
5c616c5931 Sync to 2.4.1-beta1 2022-02-01 14:16:13 +01:00
Lukas Matena
ebb9041041 Merge branch 'master' into stable - no conflicts fixed 2022-02-01 14:15:18 +01:00
Lukas Matena
cb99d491af Fix of a possible locales mismatch during GCode export
There is a mysterious issue with GCode annotations printed with decimal
commas instead of points. tbb threads should be set to "C" locales when started,
either another thread is spawned by tbb, or someone switches the thread locales
and leaves it in the pool.
2022-01-24 16:21:21 +01:00
Vojtech Bubnik
d4fd95bd4a WIP: G-code find & replace: Support for non-regular expression,
whole word and case insensitive search.
2022-01-17 12:29:46 +01:00
Vojtech Bubnik
add1e994fa WIP G-code Find-Replace: Optimize regexps, process complete G-code,
not only G-code of layers.
2022-01-17 12:29:46 +01:00
Vojtech Bubnik
658f01b64b WIP: G-code find / replace using a new gcode_substitutions PrintConfig
parameter.
2022-01-17 12:29:46 +01:00
Vojtech Bubnik
123fc13123 Fixing perl tests. 2022-01-12 11:46:51 +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 
Fixes Export Filename nicht richtig 
Fixes wrong filename - always Filament in from the first extruder 
2022-01-10 17:57:03 +01:00
Lukas Matena
da8e4b6fda Some more beautifications 2022-01-10 12:56:03 +01:00
Lukas Matena
f3e14865e5 Minor tweaks in machine limits handling:
- renamed some variables so the names are not misleading
- improved readability a bit
- disabled silent mode for RRF (it was apparently enabled by mistake)
- set default value of machine_limits_usage to TimeEstimateOnly
2022-01-10 12:52:21 +01:00
n8bot
bfb721f302 Add compatibility for Machine Limits and RRF (PR ) 2022-01-10 12:52:21 +01:00
Vojtech Bubnik
ef66087355 Fixed crash when exporting G-code with no extrusions generated
for printable object.
Fixed by cancelling slicing process and emitting an exception
to show a notification.
Fixes carsh 
2021-12-20 08:30:54 +01:00
Vojtech Bubnik
23e4ecdf0f Follow-up to c772d28070
Support for oneTBB from oneAPI, where Intel reworked and deprecated
some interfaces.
Implements some of TBB universal fix (2020/2021 fixes) 
This one adds TBB_HAS_GLOBAL_CONTROL for the up to date oneTBB.
2021-12-12 14:14:43 +01:00
Vojtech Bubnik
c772d28070 Support for oneTBB from oneAPI, where Intel reworked and deprecated
some interfaces.
Implements some of TBB universal fix (2020/2021 fixes) 
2021-12-12 14:01:06 +01:00
Vojtech Bubnik
21e5481a58 Fix of fan control for raft layers.
Fixes Fan starts at first layer, even though disabled for first layer. 
This is a regression due to cooling refactoring, which cooled
support layers independently from object layers. The bug here was that
all the raft layers were cooled together with the first object layer.
2021-12-02 16:40:18 +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
87b6073575 Follow-up to aed0003476
refactored for clarity
    Fix of SPE-1109 /  (spiral vase+sequential printing)
    This was broken with ae7d6db, between 2.4.0-alpha1 and alpha2.
2021-11-29 10:26:53 +01:00
Lukas Matena
aed0003476 Fix of SPE-1109 / (spiral vase+sequential printing)
This was broken with ae7d6db, between 2.4.0-alpha1 and alpha2.
The fix should be refactored after it is certain it is correct.
2021-11-26 13:21:18 +01:00
Lukas Matena
aae8c7a844 Fixed the empty layer warning (again),
it did not work after top/bottom support contact z was separated
2021-11-22 11:00:17 +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
Lukas Matena
17b9189974 Empty layer warning is now generated once per object 2021-11-12 17:08:14 +01:00
YuSanka
8bfa132a1b Localization fixes + new POT 2021-11-12 09:21:41 +01:00
Lukas Matena
00dfb8f69c Make sure that we have the lower_layer_edge_grid when placing seams 2021-10-22 13:16:08 +02:00
Lukas Matena
19eb984d72 SeamPlacer: one more heuristic to get rid of long travels 2021-10-22 13:16:08 +02:00
Lukas Matena
59502e7861 Seam placement improvements 2021-10-22 13:16:08 +02:00
Justin Schuh
482841b39e Disable acceleration control if default_acceleration is zero 2021-10-20 21:33:34 +02:00
Vojtech Bubnik
43470af0c6 Fix of "About" screen still shows 2020 at the copyright notice () 2021-09-27 10:07:29 +02:00
enricoturri1966
d52ee52098 Tech ENABLE_FIX_IMPORTING_COLOR_PRINT_VIEW_INTO_GCODEVIEWER set as default 2021-09-14 15:05:33 +02:00
Vojtech Bubnik
ae7d6db1d9 Parallelization of the G-code export.
Follow-up to
03b6048684
beee18f229
b5a007a683
etc
2021-09-13 10:04:21 +02:00
Vojtech Bubnik
dc4b783e9e Pimping up SpiralVase code, fix of 03b6048684 2021-09-10 12:10:00 +02:00
Vojtech Bubnik
03b6048684 Follow-up to beee18f229
WIP to G-code export parallelization through pipelining:
Decoupled CoolingBuffer from GCode / GCodeWriter, ready to be
pipelined on a different thread.
2021-09-10 11:43:59 +02:00
Vojtech Bubnik
beee18f229 Follow-up to b5a007a683
WIP to G-code export parallelization through pipelining:
GCodeProcessor is called during the G-code export,
the G-code is no more reopened and re-read, but it is pipelined
from the G-code generator.
2021-09-08 15:06:12 +02:00
Vojtech Bubnik
0da0a7b2a0 Fix of recent GCode / GCodeProcessor refactoring: Don't close a FILE
twice.
2021-09-07 17:58:06 +02:00
Vojtech Bubnik
152e236dda Trying to fix the windows build 2021-09-07 17:31:36 +02:00
Vojtech Bubnik
b5a007a683 WIP to G-code export parallelization through pipelining:
New class GCodeOutputStream as a G-code consumer.
In the following steps the GCodeOutputStream will be pipelined with
GCodeProcessor.
2021-09-07 16:23:43 +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. 
Fixes Layer After Raft Is Not Considered First Layer! 
2021-08-31 16:03:14 +02:00
Lukas Matena
7852ba061c Slightly reworded the 'Empty layers detected' warning,
it mentions the layers between which the problem occurs,
not just the upper one (which may be unclear).
2021-08-27 12:13:15 +02:00
Vojtech Bubnik
e947a29fc8 Follow-up to 7c01ddf996
1) Starting with this commit, configuration block exported into G-code
   is delimited by "; prusaslicer_config = begin" and "; prusaslicer_config = end".
   These delimiters look like any other key / value configuration pairs
   on purpose to be compatible with older PrusaSlicer config parsing from G-code.
2) Config parser from G-code newly searches for "; generated by ..."
   comment over the complete G-code, thus it is compatible with various
   post processing scripts extending the G-code at the start.
3) Config parser from G-code parses PrusaSlicer version from
   the "; generated by PrusaSlicer ...." header and if the G-code was
   generated by PrusaSlicer 2.4.0-alpha0 and newer, it expects that
   the G-code already contains the "; prusaslicer_config = begin / end"
   tags and it relies on these tags to extract configuration.
4) A new simple and robust parser was written for reading project configuration
   from 3MF / AMF, while a heuristic parser to read config from G-code located
   at the end of the G-code file was used before.
2021-08-12 15:27:46 +02:00
Vojtech Bubnik
9f9cbb46f9 Suppor of "No extrusion" firmware flavor by not emitting the E axis.
Fix of https://github.com/prusa3d/PrusaSlicer/issues/6023
The fix is partial: No extrusions are shown by the final G-code preview.
2021-08-09 17:37:35 +02:00
enricoturri1966
8ebb2e2a29 Fixed import of color print view from gcode files into GCodeViewer 2021-07-23 11:27:07 +02:00
enricoturri1966
7817105abe Tech ENABLE_GCODE_WINDOW set as default 2021-07-22 09:37:02 +02:00
enricoturri1966
5faac3c105 Tech ENABLE_VALIDATE_CUSTOM_GCODE set as default 2021-07-22 09:13:12 +02:00
Lukas Matena
3fa78b52b2 Slightly improved 'no first layer extrusions' error message 2021-07-02 17:05:31 +02:00