Commit Graph

84 Commits

Author SHA1 Message Date
1e7965a3a2 Parallelization of the G-code export.
Follow-up to
03b6048684
beee18f229
b5a007a683
etc
2021-09-13 10:04:21 +02:00
ca9d1ff6e1 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
cdd0d90f99 Trying to fix the windows build 2021-09-07 17:31:36 +02:00
2b523d3f19 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
b81a0e28e2 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
5beca060ed Wipe tower: refactoring of brim and solid infill on first layer 2021-04-05 23:39:27 +02:00
c5f20147d0 Refactoring of FDM support generator:
1) If "support on build plate only" is enabled, the support columns are
   newly trimmed to not land on top of an object. However this may make
   the column too small to be stable.
2) Support enforcers newly take precedence over "supports on build plate only"
   and over "don't support bridges".
3) Some refactoring of the support generator code for clarity: Reduced
   some of the worst spagetti offenders.

Fixes Support generated even if support on build only activated #915
Fixes Bug: supports on build plate only #1340
Fixes Bottom interface layer is not generated , support on build plate only. (long open defect) #4199
Fixes option "supports on build plate only" does not work #3980

Fixes No support interface layers generated #1997
Fixes Feature Request: Option to combine results of 'support from build plate only' and 'support enforcers only' #2801
Fixes Support interface isn't generated: build plate only + blocked by model + support enforcer #3831
Fixes Support Enforcer don't create interface layers #5748
Fixes Support Enforcers Don't Have Top Loops/Raft #1870
Fixes Don't cancel support enforcers with "don't support bridges" #5105
2021-03-19 11:21:35 +01:00
354070d9b2 Tech ENABLE_TOOLPATHS_WIDTH_HEIGHT_FROM_GCODE set as default 2021-02-17 11:23:17 +01:00
2a8d8a528b Fix of Supports printed too slowly. #984
Processing of CoolingBuffer is newly staggered for support layers
until the 1st object layer above supports is received by CoolingBuffer.
2021-02-16 11:30:57 +01:00
3f2b57b1d4 Squash merge of lh_brim_rework,
brim separated to Brim.cpp,hpp
Refactored accessors to PrintObjectPtrs, PrintRegionPtrs, LayerPtrs,
SupportLayerPtrs for const correctness.
2021-02-03 15:12:53 +01:00
992d1e388e Rework of Add random function for gcode macros. #5219 after merge:
The thread local storage variables for the random number generator
were replaced by an external context variable.
Thread local storage is a scarce resource.
2020-12-09 09:19:46 +01:00
7eafd2080f Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2020-12-08 15:56:08 +01:00
4bb4e4a78c #4936 - Take toolpaths width and height from gcode decorations, if available 2020-12-08 15:55:53 +01:00
d3f989aeb8 Merge branch 'lh_avoid_crossing_perimeters' 2020-12-08 13:39:33 +01:00
1b7cbd2c36 Further improvement error reporting with buggy custom G-code sections #1516
1) The macro-processor sanitizes the source code line for invalid UTF-8
   characters. Ideally these invalid characters would be replaced with ?,
   they are just dropped as of now. Better than showing an empty string
   when converting to wxString though.
2) G-code export collects full error message for 1st occurence of an error
   for each custom G-code block.
3) The composite error message now displays the errors collected in 2).
4) The error window is now scaled bigger and the Slicer logo is smaller
   if the text is to be rendered with monospaced font, as the monospaced
   text will not be word wrapped.
2020-12-03 12:50:24 +01:00
48f65c3b2f Merge remote-tracking branch 'origin/master' into lh_avoid_crossing_perimeters 2020-12-01 14:31:22 +01:00
db2af22c6b Fix of Head crash on completion with sequential printing #5349
In addition to an existing "layer_z" placeholder variable,
a new "max_layer_z" has been added to custom G-code sections accumulating
maximum of "layer_z" over the print. This value may be used for example
in the end G-code of a sequential print to lift the print head
up before travel over the whole print bed.
2020-12-01 08:23:46 +01:00
5ead86bdea Removed the old motion planner. 2020-11-17 09:33:30 +01:00
e14fb6c18a Disabling wipe for avoid crossing perimeters 2020-11-16 14:22:32 +01:00
2b2e9a8ce2 Moved AvoidCrossingPerimeters to separate file 2020-11-16 14:22:32 +01:00
3bb7f5f24b Reworked the algorithm for avoid crossing perimeters for multiple objects 2020-11-16 14:21:36 +01:00
6ae8692c22 Fixed crossing perimeters in some cases 2020-11-16 14:21:36 +01:00
13dc97a84a Finalization of avoid crossing perimeters algorithm
EdgeGrid::Grid is used to find the intersection of a path with a polygon.
Simplification of find path.
Calculation of boundaries that not be crossed.
2020-11-16 14:21:36 +01:00
c328651abc Selection of shortest path around polygon boundary 2020-11-16 14:21:36 +01:00
e2c259b50e A simple algorithm to follow the boundary of polygons 2020-11-16 14:21:36 +01:00
5f9df6333f ENABLE_GCODE_VIEWER set as default in libslic3r 2020-11-12 14:03:58 +01:00
28cfd71f51 Follow-up of bb74d2da5b and 7b2aca0159 -> Removed inclusions of GCode/Analyzer.hpp and GCodeTimeEstimator.hpp 2020-11-11 15:41:48 +01:00
00eb95ffd8 Renamed CustomSeam to SeamPlacer, move to a separate file 2020-09-18 12:00:14 +02:00
d5eb3f4ef1 Partially working implementation of custom seam backend 2020-09-18 12:00:14 +02:00
4712413dad First naive prototype of seam painter 2020-09-02 00:36:30 +02:00
aaf0b18810 Fixed merge conflicts (whitespace only) 2020-09-02 00:36:30 +02:00
4dc8e17818 Code cleanup 2020-08-17 15:59:36 +02:00
37bc47a946 GCodeProcessor -> Do not export width tags to gcode 2020-08-17 14:37:26 +02:00
b8a9de7454 GCodeProcessor -> Added debug code to check toolpaths data extracted from gcode, as mm3 per mm, height and width 2020-08-17 10:06:41 +02:00
90b78deae6 Refactoring to allow to quickly build the various options to show the estimated printing time in gcode viewer scene 2020-08-05 15:43:46 +02:00
429947f8eb ENABLE_GCODE_VIEWER -> Export to gcode layer z and layer height at each layer change 2020-07-30 13:49:57 +02:00
2fa4384e0b GCodeProcessor -> Calculate mm3 per mm on the fly 2020-07-29 10:04:10 +02:00
acd8801d3a Fixed conflicts after merge with master 2020-05-27 10:32:02 +02:00
ae8772b90d Few more include chains broken 2020-05-26 13:46:59 +02:00
0c3adc6805 GCodeAnalyzer and GCodePreviewData removed from tech ENABLE_GCODE_VIEWER 2020-05-07 10:49:12 +02:00
c293c6e75f Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_gcode_viewer 2020-04-29 12:53:55 +02:00
9db59a3cd7 WIP: Ironing over top surfaces. 2020-04-14 11:53:28 +02:00
7dd8ac8cb5 Fixed conflicts after merge with master 2020-03-25 12:07:59 +01:00
16e1cd5d19 ENABLE_THUMBNAIL_GENERATOR set as default 2020-03-25 10:15:02 +01:00
77d41a143c ENABLE_GCODE_VIEWER - Basic framework for new gcode viewer 2020-03-02 15:13:23 +01:00
2d516165bb Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_gcode_viewer 2020-02-14 08:32:06 +01:00
0ee47cd933 GCodeProcessor basic framework 2020-02-14 08:31:31 +01:00
0dec054410 ENABLE_SHOW_SCENE_LABELS set as default 2020-02-13 13:24:52 +01:00
3423e05248 Added sequential print order id to 3D scene labels 2020-02-03 11:44:26 +01:00
ec31ef90e9 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