Commit Graph

336 Commits

Author SHA1 Message Date
bubnikv
10110ed307 WIP: Ironing over top surfaces. 2020-04-14 11:53:28 +02:00
enricoturri1966
c3eb65c461 Added class GCodeViewer -> basic render of gcode toolpaths using dedicated shaders 2020-04-14 10:02:08 +02:00
enricoturri1966
22cf0396fc Added missing include 2020-04-06 17:32:35 +02:00
enricoturri1966
2c69d96239 Reduced size of GCodeProcessor::MoveVertex 2020-04-06 17:24:11 +02:00
enricoturri1966
57dad5dfd2 GCodeProcessor additions:
process color change comment tag

process pause print comment tag

process custom code comment tag

process end pause print or custom code comment tag
2020-04-06 11:53:15 +02:00
enricoturri1966
1caac17b02 GCodeProcessor additions:
process M108 lines

process M132 lines

process M135 lines

process M401 lines

process M402 lines
2020-04-06 08:55:48 +02:00
enricoturri1966
dce1f24ad8 GCodeProcessor additions:
process G10 lines

process G11 lines

process G22 lines

process G23 lines

process M106 lines

process M107 lines

process mm3_per_mm comment tag
2020-04-03 10:15:46 +02:00
enricoturri1966
f05de150c5 Added another missing include 2020-04-02 15:52:42 +02:00
enricoturri1966
d0ce17656f Added missing includes 2020-04-02 13:19:42 +02:00
enricoturri1966
ab1e90ec0d Fixed conflicts after merge with master 2020-04-02 12:29:30 +02:00
enricoturri1966
956f7a4593 GCodeProcessor additions:
process G90 lines

process G91 lines

process G92 lines

process M82 lines

process M83 lines

process T lines

process extrusion role/width/height comment tags

debug output
2020-04-02 12:03:18 +02:00
enricoturri1966
f598c2d5d8 Fixed conflicts after merge with master 2020-04-01 15:06:30 +02:00
enricoturri1966
29cbfa7c9e Fixed conflicts after merge with master 2020-03-30 09:36:37 +02:00
bubnikv
ec86d94f02 Workaround for the Prusa3D Fast (layer height 0.35mm) profile, which
collides with the maximum allowed layer height at the Printer Extruder
0.25mm.

Works around "MMU2s and supports on prusaslicer 2.2.0 issue #3919"
2020-03-27 14:15:09 +01:00
enricoturri1966
a1a4d49f15 Fixed conflicts after merge with master 2020-03-25 12:07:59 +01:00
enricoturri1966
3d6c9e54e9 ENABLE_THUMBNAIL_GENERATOR set as default 2020-03-25 10:15:02 +01:00
Lukas Matena
97b9de47b4 Merge branch 'master' into dev 2020-03-24 21:51:05 +01:00
enricoturri1966
4c1d867ba0 #3897 - Small optimisation in GCodePreviewData::RangeBase::get_color_at (thanks to rongith) 2020-03-23 16:12:52 +01:00
bubnikv
046f0dbfa2 Fixed a regression issue to PrusaSlicer 2.1.1
Custom printer with center of bed at 0,0 results in "toolpath outside print area" #3510
The G92 A0 B0 was incorrectly considered to be equal to just G92
to reset all axes.
2020-03-21 10:09:33 +01:00
enricoturri1966
f4aa9c5b0e #3858 - Added missing reset for fan speed visualization 2020-03-18 08:10:05 +01:00
Enrico Turri
3fd6c8a2ff #2922 - Fan speed for gcode visualization modified as proposed by rongith 2020-03-13 08:25:48 +01:00
Lukas Matena
a6a77361ba Multimaterial purging lines fixed on rectangular beds with non-standard origin (#3805) 2020-03-11 16:10:51 +01:00
Lukas Matena
a48a79603c Multimaterial purging lines fixed on rectangular beds with non-standard origin (#3805) 2020-03-10 15:31:53 +01:00
Lukas Matena
0869a63eaf Fix of #3769 - wipe into infill 2020-03-05 15:26:52 +01:00
Enrico Turri
bf3888fc49 Reduced ram used by GCodeAnalyzer by replacing doubles with floats into GCodeAnalyzer::GCodeMove 2020-03-04 13:21:03 +01:00
bubnikv
cab42b89ad Fixed some compilation warnings. 2020-03-04 13:06:21 +01:00
Lukas Matena
7589e4ebfc Fixed some more warnings 2020-03-03 15:53:26 +01:00
Lukas Matena
c70b34b6c8 Fixed several warnings
The biggest difference is changing PresetCollection::m_idx_selected from int to size_t, which fixed many warnings at once.
2020-03-03 15:47:02 +01:00
Enrico Turri
3b6d334d7b ENABLE_GCODE_VIEWER - Basic framework for new gcode viewer 2020-03-02 15:13:23 +01:00
Enrico Turri
ebbebe3727 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_gcode_viewer 2020-02-14 08:32:06 +01:00
Enrico Turri
131257cef1 GCodeProcessor basic framework 2020-02-14 08:31:31 +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
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
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
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
Enrico Turri
cbe5132832 #3540 - Fixed toolpaths preview for empty ranges 2020-01-20 10:38:01 +01:00
YuSanka
2259f7b3e8 Code refactoring to mode comparison 2020-01-17 12:24:58 +01:00
Enrico Turri
67655743b9 Follow-up of merge of pull request #3293 -> Fixed missing include (for MAC build) 2020-01-16 16:18:35 +01:00
YuSanka
52c590f57a Merge remote-tracking branch 'origin/ys_cp_improvements' 2020-01-16 16:06:19 +01:00
Enrico Turri
46819224ee Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2020-01-16 16:03:14 +01:00
Enrico Turri
75c2b44d23 Follow-up of merge of pull request #3293 -> Fixed link error and toolpaths role colors 2020-01-16 16:02:40 +01:00
YuSanka
89fcd7f95a Added "mode" variable for custom_gcode_per_print_z 2020-01-16 16:01:19 +01:00
YuSanka
20fd874ff2 Merge remote-tracking branch 'origin/master' into ys_cp_improvements 2020-01-16 15:01:57 +01:00
bubnikv
3acfae92e1 Fix of recent wipe tower / tool ordering refactoring. 2020-01-16 14:59:16 +01:00
YuSanka
099118d6f2 Merge remote-tracking branch 'origin/master' into ys_cp_improvements 2020-01-16 14:02:19 +01:00
Enrico Turri
6be4b3865b Merge remote-tracking branch 'foxox/feature/ScaleSpeedLegendToVisible2' 2020-01-16 13:55:59 +01:00
bubnikv
1b354d8d3c WIP: Enhancement of the FDM back end to support Color Change situations,
when a project was switched from multi-extruder printer to single
extruder printer.
2020-01-16 13:39:03 +01:00
bubnikv
8e5ba5ccc5 Added synonyms to some PrintSteps:
psWipeTower now equals to new psToolOrdering indicating that
the ToolOrdering has been calculated (only if non-sequential mode is active).

psBrim now equals to new psExtrusionPaths
psExtrusionPaths shall be the last step before psWipeTower, indicating
that all the printing extrusions are calculated for the G-code preview
slider to edit the custom per print_z color changes, tool changes etc.
2020-01-15 16:20:16 +01:00
YuSanka
15f873dd74 DoubleSlider: Implemented code for check of used extruders for MustiAsSingle mode 2020-01-15 15:35:56 +01:00
bubnikv
2c958c021d Fixed regression in placement of Color Change event at the correct layer. 2020-01-14 17:35:42 +01:00
bubnikv
390376daae Fix of recent refactoring of color print. 2020-01-14 16:11:03 +01:00
Lukas Matena
fd6c9582d5 Refactoring fix: making sure that mark_wiping_extrusions doesn't report it wiped something it didn't 2020-01-14 15:43:43 +01:00
bubnikv
ab6a2b71e8 Another bugfixes of GCode export after refactoring. 2020-01-14 15:12:45 +01:00
bubnikv
c96fc5eb51 gcc & clang do not like taking reference of const temporaries. 2020-01-14 12:10:01 +01:00
bubnikv
98e49772ed Custom G-code references are now being assigned to ToolOrdering::LayerTools()
and the superfluous M600 (color change) events are filtered out there.

Fixed a handful of compiler warnings.
2020-01-14 11:54:09 +01:00
bubnikv
8bfc986fa7 Refactoring of GCode::process_layer().
Refactoring of GCode export of color changes, extruder switches etc,
so that the "color change" like extruder switches are applied first
at the Wipe Tower / G-code export, so that adding / removing
an extruder switch at the G-code preview slider does not invalidate
slicing.
2020-01-14 10:31:18 +01:00
Enrico Turri
91acbd01ed Fixed GCodeAnalyzer and GCodeTimeEstimator to avoid artifacts while rendering toolpaths due to numerical issues on extruder coordinate 2020-01-13 15:27:37 +01:00
bubnikv
15eedef74b Refactoring of ToolOrdering (wipe into infill / object)
Refactoring of GCode::_do_export()
Helper lower_bound and search functions similar to std, but without
needing the value object explicitely.
2020-01-10 11:27:04 +01:00
bubnikv
cc2b9b8849 ToolOrdering: Removed unused parameter. 2020-01-10 11:27:04 +01:00
bubnikv
e0811e4aa5 Optimization of G-code export:
1) Don't allocate ExtruderOverrides if not necessary
2) Use boost::container::small_vector<int32, 3) for ExtruderOverrides
   (usually less than 4 instances are printed))
2020-01-08 14:58:24 +01:00
bubnikv
81187e7e0e Some refactoring and const correctness fixes. 2020-01-07 14:35:43 +01:00
Enrico Turri
61ab9e37d6 #3287 - Fixed GCodeAnalyzer and GCodeTimeEstimator when using Machinekit and Mach3/Linuxcnc gcode flavours 2019-12-09 11:40:26 +01:00
foxox
dea83da5b7 Speed legend scales depending on travel visibility. 2019-12-08 00:03:41 -05:00
Lukas Matena
4ba7cb7ede Fix of the wipe tower starting point
see issues #2968, #3234 and #3248
2019-12-04 13:47:02 +01:00
Enrico Turri
ddd1df1552 ENABLE_THUMBNAIL_GENERATOR -> render printbed into thumbnails 2019-11-28 14:18:24 +01:00
YuSanka
dfd38c7818 Merge remote-tracking branch 'origin/master' into ys_color_print_extension 2019-11-28 09:01:14 +01:00
YuSanka
901a20b3b1 Code cleaning 2019-11-27 15:27:44 +01:00
Enrico Turri
6df506e482 ENABLE_THUMBNAIL_GENERATOR -> Thumbnails generated using a callback function 2019-11-22 12:39:03 +01:00
YuSanka
bc68b8eaf2 ExtruderSequenceDialog :
Fixed layouts after the second opening of the dialog.
 (Removing any extruder from the sequence does not cause an incorrect layout)
Validation of entered values added
 (0 is not a valid value)
2019-11-16 02:12:37 +01:00
Lukas Matena
88514eeb0e Merge branch 'lm_low_wipe_tower' 2019-11-14 10:37:04 +01:00
YuSanka
f2120c1122 Fixed a sequence of the legend items 2019-11-07 16:36:24 +01:00
YuSanka
c4a62819f4 Implemented new color change preview from Gcode
+ Added missed "change_extruder.svg"
2019-11-07 08:13:26 +01:00
YuSanka
6ed9adaeff New legend for color print.
Some improvements for coloration multimaterial print indicator
2019-11-05 09:48:53 +01:00
Enrico Turri
418634a677 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_plater_thumbnail 2019-10-31 16:41:03 +01:00
Lukas Matena
d632d91e79 WipeTower.cpp: The M220 B/R gcode is only emitted for Marlin firmware flavor
The extended gcode is now only supported by Prusa (https://github.com/prusa3d/PrusaSlicer/issues/3114)
A pull request https://github.com/MarlinFirmware/Marlin/pull/15739 aims to extend the gcode in upstream Marlin as well
2019-10-31 15:08:20 +01:00
Enrico Turri
2896e12a46 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_plater_thumbnail 2019-10-29 07:09:07 +01:00
bubnikv
9e8ce66f70 Fix / improvement of unit tests. 2019-10-25 19:06:40 +02:00
Enrico Turri
4d1153c866 ENABLE_THUMBNAIL_GENERATOR -> WIP: Refactoring and preparation for adding thumbnails to exported gcode and 3mf files 2019-10-23 13:31:24 +02:00
Enrico Turri
32a42f2808 Added tech ENABLE_THUMBNAIL_GENERATOR -> 1st installment of generation of thumbnail from plater (WIP) 2019-10-22 16:02:31 +02:00
Enrico Turri
2d610f9b84 #3082 - Workaround to fix incorrect object position after applying gcode line G92 into custom gcode 2019-10-21 10:12:42 +02:00
Enrico Turri
0285e8db2d Merge branch 'et_git_3010' of https://github.com/prusa3d/PrusaSlicer 2019-10-18 12:48:06 +02:00
bubnikv
abe856f9fe Ported remove_collinear(Polygon) and test_polygon from upstream slic3r. 2019-10-15 18:08:32 +02:00
Enrico Turri
658b1e219e ENABLE_GIT_3010_FIX set as default 2019-10-14 10:03:27 +02:00
Enrico Turri
76c9ddfd3e Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_git_3010 2019-10-14 08:49:19 +02:00
Lukas Matena
cf030e8958 Simplified inclusion of the wipe tower into skirt calculation 2019-10-08 14:12:40 +02:00
Lukas Matena
fdf9272fbe Wipe tower brim width is now part of WipeTowerData class, so it can be used wherever needed 2019-10-08 13:50:51 +02:00
Thomas Moore
aba743de41 Include wipe tower in skirt 2019-10-08 11:06:55 +02:00
Lukas Matena
61cee54dd3 Merge branch 'master' into lm_low_wipe_tower 2019-10-01 13:24:25 +02:00
Lukas Matena
b5e3899267 Wipe tower: Sparse layers are not included in filament consumption in case that the 'no sparse layers' option is set 2019-10-01 11:41:37 +02:00
Enrico Turri
8d53c5e978 #3010 - Added tech ENABLE_GIT_3010_FIX - GCodeAnalyzer and GCodeTimeEstimator modified to properly process gcode lines G92 2019-10-01 09:48:42 +02:00
bubnikv
272479826f Refactoring of the G-code preview for lower memory allocation
and for separation of concerns:

The final G-code preview no more uses ExtrusionPaths structure
to hold the G-code path data extracted by parsing the G-code.
Instead, the ExtrusionPath class has been trimmed down back to
the original size before the G-code preview was introduced,
and a new GCodePreviewData::Extrusion::Path class was created to hold
the additional path data as the extruder ID, color change ID
and fan speed.
2019-09-30 16:25:26 +02:00
bubnikv
b425ee50a9 Merge remote-tracking branch 'remotes/origin/et_pull_2922' 2019-09-30 10:23:16 +02:00
Lukas Matena
7861fa5086 Whitespace changes to supress misleading indentation warnings
These appear in newer gcc when spaces and tabs are mixed
2019-09-24 16:01:01 +02:00
Enrico Turri
82a52e8b21 #2922 - Port of commit: f42edd35ce by jschuh 2019-09-23 14:56:27 +02:00
YuSanka
4aec14ddab Replace "mm3/s" with "mm³/s" in preview legend for a "Volumetric flow rate" 2019-09-23 11:11:43 +02:00
bubnikv
ae3a3029c0 Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-13 18:58:39 +02:00
bubnikv
d86cf1e116 Fix of a regression in wipe tower generator:
Return to the known position after custom tool change G-code.
2019-09-13 18:56:37 +02:00
bubnikv
b4f2df6a98 Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-12 10:19:09 +02:00
Enrico Turri
af77eca9df Follow-up of 44c3493f7d -> error message logged only for multi-extruder printers 2019-09-11 10:02:27 +02:00
Enrico Turri
84f589ad5c Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into dev 2019-09-11 09:15:58 +02:00
Enrico Turri
7e5043961a Added missing include 2019-09-11 08:51:36 +02:00
Enrico Turri
44c3493f7d GCodeAnalyzer: Fixed a crash when encountering an invalid toolchange 2019-09-11 08:39:29 +02:00
bubnikv
9bdc5b7939 Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-10 19:09:41 +02:00
Lukas Matena
2fef16c39a Fix of #1266 and #2258
In case there were empty object layers supposed to be floating on supports which were set to use a specific extruder, wipe tower was missing layer required to do the toolchange, leading to a crash
Such cases are now detected and layers that need it are additionally assigned as wipe tower layers

Also tracked as SPE-526
2019-09-10 13:13:21 +02:00
Lukas Matena
c5f78dd6e2 Some more warnings fixed (WipeTower.cpp/.hpp) 2019-09-10 12:08:43 +02:00
Lukas Matena
a62bba2508 CoolingBuffer.cpp: Fixed a crash when encountering an invalid toolchange
This can happen if the user enters invalid toolchange through the custom gcodes
Such toolchange is now simply ignored by the CoolingBuffer, exporting gcode is NOT stopped, a log error is emitted
2019-09-10 11:46:18 +02:00
Lukas Matena
a985a2720f Fixed some more warnings, moved function to get ExtrusionRole name into ExtrusionEntity.hpp
So it can be called from wherever it may be needed
2019-09-06 15:55:07 +02:00
Lukas Matena
805a5d22a1 Fixed couple of warnings in WipeTower.cpp, ToolOrdering.cpp and GCode.cpp 2019-09-04 14:56:35 +02:00
Lukas Matena
942f959e87 Fixed couple of warnings
Turned several includes into forward declarations
Removed several sprintf calls in favor of std::to_string
2019-09-02 16:27:48 +02:00
Lukas Matena
af2a3d2c08 Fixes of the wipe tower
- added an extra travel move after a toolchange
- wipe tower only sets temperatures with single extruder MM printers
- ooze prevention does not work with the wipe tower - added a check into Print::validate()
2019-08-28 16:28:22 +02:00
bubnikv
80490550b5 Optimization of the tool path preview generation algorithm:
1) Replaced linear search with logarithmic search.
2) Templated the travel path generation, replaced 3 functions with one.
2019-08-26 15:52:56 +02:00
Enrico Turri
85ed363951 GCodeAnalyzer uses annotated gcode in place of processing m600 lines to detect color print changes 2019-08-21 14:09:20 +02:00
bubnikv
384ee17fcb Merge remote-tracking branch 'remotes/origin/lm_circular_priming' 2019-08-20 09:34:45 +02:00
bubnikv
778e499827 Merge remote-tracking branch 'remotes/origin/lm_wipe_tower_linear_advance' 2019-08-20 09:19:22 +02:00
tamasmeszaros
65368db49b Merge branch 'master' into tm_clang_mingw 2019-08-16 16:37:02 +02:00
tamasmeszaros
c187a5fb69 Fix up build and clear dev output 2019-08-16 16:31:05 +02:00
tamasmeszaros
7e0199746e more clang warnings enabled, performance measuring
Succesfull build on mingw-w64


fix sandboxes


Mingw fixes and full parallel support tree gen.
2019-08-16 16:17:37 +02:00
Lukas Matena
0f32223ba0 WipeTower: linear advance is disabled immediately before ramming, not before moving to the wipe tower
Linear advance is reset by filament start gcode after a toolchange. However, not all moves to the wipe tower
end with a toolchange (brim, empty grid) and it would therefore disable linear advance until the next toolchange
This should solve https://github.com/prusa3d/PrusaSlicer/issues/2770
2019-08-16 00:20:51 +02:00
Lukas Matena
c84b1ca34b Multimaterial initial priming for non-Prusa printers (https://github.com/prusa3d/PrusaSlicer/issues/1121)
The initial priming now does not assume anything about bed width and always uses the space it has
In case of circular beds it places the priming lines along the diameter
Custom beds are not supported (they are treated as circular with no extra checks whether it is sane)
Slight refactoring of the WipeTower class (constructor now gets reference to PrintConfig and not the individual values, same with set_extruder). This was legacy from times when the wipe tower was meant to be abstract and independent on the rest)
2019-08-15 01:41:46 +02:00
Lukas Matena
6ab1cec48c Empty layers detection added to GCode.cpp
Added detection of empty layers so the wipe tower doesn't trip on them (it is not printable anyway).
This should improve wipe tower reliability with supports, objects standing on edges, etc.
I also turned an assert into exception throw to prevent hard crashes and nonsense output.
2019-08-02 16:54:18 +02:00
Lukas Matena
170bd8b064 Wipetower fix: temperature-changing command was sometimes missing after the toolchange
Cause: variable holding last issued temperature was not reset where it should have been
This should fix issue #2685
2019-08-01 15:31:02 +02:00
bubnikv
576643c7ed Bumped up the version to 2.1.0-alpha0.
Updated the bundled profiles to integrate retract overrides
for PET and FLEX materials.
2019-08-01 11:53:22 +02:00
Lukas Matena
506be9035b Wipe tower now supports filaments with diameters different from 1.75 mm 2019-07-23 14:02:20 +02:00
Enrico Turri
dcedb9e3d3 Follow-up of 699319cd86 -> Fixed build on Mac 2019-07-22 11:47:23 +02:00
Enrico Turri
699319cd86 #2663 - Added handling of gcode lines M401 and M402 for Repetier flavour to GCodeAnalyzer 2019-07-22 11:23:42 +02:00
Lukas Matena
eb29c3e01d Wipe tower accounts for extruder offsets
Also, in case of non-single-extruder printer with the wipe tower, first wiping line was printed where the border should have been - fixed
2019-07-19 13:00:10 +02:00
Lukas Matena
004e2719b1 Merge branch 'master' into lm_warnings 2019-07-15 13:26:55 +02:00
Lukas Matena
e674c586b0 Merge branch 'lm_improving_wipe_tower'. Summary of changes:
- wipe tower respects max volumetric flow, slowing down with PVA etc is not hardcoded anymore
- wipe tower is now allowed for multiple-extruder printers. single extruder stuff is not used in that case (ramming, cooling, etc.)
- start/end filament and toolchange custom gcodes are now inserted differently than before - see 41164a9
- some refactoring, e.g. the abstract WipeTower class was eradicated
2019-07-15 10:25:38 +02:00
Lukas Matena
2ee572bd31 GCodeAnalyzer now recognizes tool-changing commands with MakerWare and Sailfish flavor
These firmwares use M135 Tn and M108 Tn commands for changing active tool, which the analyzer did not recognize. The toolpaths were then rendered in wrong color, extruder offset etc. This surfaced in issue https://github.com/prusa3d/PrusaSlicer/issues/2566
2019-07-12 12:56:41 +02:00
Enrico Turri
1f74d7fdfc Added color number in legend texture for color prints 2019-07-09 15:47:34 +02:00
Lukas Matena
cb916c4dda Fixed warnings in libslic3r 2019-06-25 16:04:29 +02:00
Lukas Matena
743a08f0cf WipeTower - fixed a crash in extrude_explicit when called from finish_layer before the first toolchange 2019-06-21 10:58:20 +02:00
Lukas Matena
95ad76a0dc Wipe tower - fixed a long existent bug that sometimes resulted in inexact feedrate on the loading moves 2019-06-17 12:59:30 +02:00
Lukas Matena
1152bd5a09 Fixup of 41164a9
The WipeTowerWriter did not now which tool is being used, so it limited the volumetric flow based on different filament settings
2019-06-17 11:22:17 +02:00
Lukas Matena
a643a22151 Wipe tower - renaming files (to conclude work from previous commit and not lose history of those files) 2019-06-17 10:26:33 +02:00
Lukas Matena
05e6dbbe4b Wipe tower - refactoring (removed the abstract WipeTower class)
- abstract class WipeTower and its descendant WipeTowerPrusaMM were merged into a single (non-abstract) WipeTower class
- all uses of WipeTower::xy struct were replaced by Eigen Vec2f (it is no longer necessary to be independent on libraries that PrusaSlicer uses)
- the WipeTowerPrusaMM.hpp/.cpp will be renamed in the next commit (hopefully it will retain its git history that way)
2019-06-17 10:16:07 +02:00
Lukas Matena
0eecfc6604 Wipe tower - removed the obsolete material_type enum
no longer necessary because the speed overrides that the enum controlled were recently removed
the comment in gcode is now just about appending the config string
2019-06-14 14:44:22 +02:00
Lukas Matena
aee376762e Changed handling of priming extrusions to allow injection of filament and toolchange custom gcodes
The priming extrusions were handled separately from the rest of the wipe tower toolchanges. In order to be able to use the logic from previous commit for them (custom toolchange gcodes etc), some unpleasant code shuffling was needed
2019-06-14 14:42:07 +02:00
Lukas Matena
41164a9cb3 Multimaterial printing: Changed the way how custom gcodes are inserted
Each toolchange now emits:
- end filament custom gcode
- toolchange custom gcode; if not provided, a standard Tn command is inserted
- start filament gcode

Hopefully it is now consistent for SE/ME printers with/without the wipe tower
The priming line does not work - will be fixed in the next commit
2019-06-14 14:38:58 +02:00
Lukas Matena
9df93c0125 Mostly refactoring of the wipe tower improvements
- setting of the wipe tower parameters based od whether SE MM printer is selected is done in the WipeTowerPrusaMM constructor, so it does not distract in Print.cpp
- WipeTowerPrusaMM.cpp conditions checking for SE MM printer are now using a more descriptive const member variable, not the loading/unloading speeds (hopefully the functionality is the same)
2019-06-14 14:35:50 +02:00
Thomas Moore
da1aea889f Enable wipe tower for all multi-extruder configurations 2019-06-14 12:28:52 +02:00
Lukas Matena
079e63e190 The wipe tower now respects filament max volumetric flow
The odd commands that lowered the speed override values for PVA, FLEX etc. were removed

Now the wipe tower backups user speed override, sets it to 100%, does what is needed
and restores the old value when finished. There are no special cases - lowering
the speed for certain materials can be achieved by lowering the volumetric flow.
2019-06-14 12:28:52 +02:00
Lukas Matena
6f7051c3b1 GCode preview shows correct volumetric flow for the wipe tower
The neccessary annotations for the GCodeAnalyzer were missing
2019-06-14 12:28:52 +02:00
Lukas Matena
07282eb24d Fixed unit tests when run with range checks on std::vector
There was a bug in unit tests that led to generating the wipe tower with non-normalized preset.
This caused out-of-bounds access into max_layer_height vector in fill_wipe_tower_partitions.
The problem surfaced in https://github.com/prusa3d/PrusaSlicer/issues/2288.
I quickly patched additional normalization of the preset to prevent this from happening.

Also, an assert in the same function turned out to trip on one of the tests.
This one was commented out for now and will (hopefully) be looked into later.

Function Print::apply_config was renamed to apply_config_perl_tests_only so everyone
sees its current purpose and does not mistake it for the more important Print::apply.
2019-05-22 16:48:20 +02:00
bubnikv
c7f6e5436c Fix of
Extend the "filament type" list with PC or allow free form text into the filament type field. #1704
2019-05-17 11:46:46 +02:00
Lukas Matena
08cb5bc2c7 Wipe tower uses correct gcodes for RepRap gcode flavor (M907->M906, M900->M572 - should fix #1843)
Also, fixed proper setting of the extruder current during toolchange (was broken since 6da83c7)
2019-04-24 12:09:58 +02:00
bubnikv
d83a013d6b Export of filament statistics into G-code for multi-material prints
has been rewritten to be easier to parse.

Old format
; filament used = 19248.8mm (46.3cm3)
; filament used = 57.4
; filament cost = 1.5
; filament used = 8007.6mm (19.3cm3)
; filament used = 23.9
; filament cost = 0.6
; filament used = 0.0mm (0.0cm3)
; filament used = 0.0mm (0.0cm3)
; filament used = 0.0mm (0.0cm3)
; total filament cost = 2.1

New format
; filament used [mm] = 1600.7,1600.7,1600.7,1600.7,1600.7
; filament used [cm3] = 3.9,3.9,3.9,3.9,3.9
; filament used [g] = 4.8,4.8,4.8,4.8,4.8
; filament cost = 1.5,1.5,1.5,1.5,1.5
; total filament used [g] = 24.0
; total filament cost = 7.5

Where the non-printing extruders are filled in with zeros, and
the trailing non-printing extruders are not exported.

; filament used [g]
and
; filament cost
are only printed if non zero (material density and cost are defined)
2019-04-16 14:25:50 +02:00
Enrico Turri
c29f7bc147 Fix of #2044
Added sorting by z of the preview data used to generate the gcode preview because there can be shuffling in case of sequential printing
2019-04-04 09:16:03 +02:00
Vojtech Kral
734d57a714 Fix build on MSVC with PCH off 2019-03-27 12:14:34 +01:00
Enrico Turri
902bcf7f71 Fix of #1978 2019-03-18 09:42:34 +01:00
Lukas Matena
63b65bb3c8 Wipe tower brim lines are now printed with overlaps as they should be 2019-03-13 10:46:50 +01:00
Enrico Turri
f5b5e48ad7 Added cancel mechanism to GCodeAnalyzer::calc_gcode_preview_data() 2019-03-12 11:57:39 +01:00
Vojtech Kral
4e510dc3e7 PostProcessor on Unix: Execute using default shell #1908
escape gcode path, collect stderr
2019-03-12 11:10:30 +01:00
Enrico Turri
219ea04c23 Fix of #1812 (GCode Anayzer take in account extruder offsets for multiextruder printers) 2019-03-06 10:22:10 +01:00
Enrico Turri
8a29ec2204 GCode Anayzer take in account extruder offsets 2019-03-05 15:03:56 +01:00
bubnikv
a56f7d60e5 Fixed an issue, where the output G-code file name was not always updated
from the current Model/ModelObjects.
Fixed a possible race condition in updating Print::m_placeholder_parser
with the proposed filename / filename base.
Improved documentation (source code comments).
2019-02-03 10:41:14 +01:00
bubnikv
e59a10e0c2 Fix of a cooling slow down logic.
fixes "Min print speed" to "Estimated Print Time" Inconsistencies #1488
2019-02-01 17:15:41 +01:00
bubnikv
3b973e01dd Get name of both the G-code and project file from the 1st printable
object's name or file path.
Fixed some compilation warnings.
2019-02-01 11:44:08 +01:00
bubnikv
460cf820af Some optimizations of the color print preview. 2019-01-30 12:10:26 +01:00
bubnikv
d30676ceee Merge remote-tracking branch 'remotes/origin/ys_color_print' 2019-01-30 09:29:55 +01:00
bubnikv
49bb90523a Fix of a G-code comment. Fixes
Incorrect filament profile being used during purge - always set to PLA. #1691
2019-01-29 18:28:52 +01:00
YuSanka
e291172e24 Implemented "Color Print" for preview mode (without re-slicing) 2019-01-29 15:11:29 +01:00
bubnikv
3e28905621 Fixed missing includes in PostProcessor.cpp
Fixes https://github.com/prusa3d/Slic3r/issues/1679
2019-01-18 10:16:53 +01:00
bubnikv
668d374779 Implemented post-processing scripts on Windows.
Fixes https://github.com/prusa3d/Slic3r/issues/1666
2019-01-17 20:34:19 +01:00
bubnikv
e9990ed79e Fix of SPE-691 Slicer crash after extruder change
Added synchronization of GCodePreviewData between the front end / back end
(GCodePreview data is only used if PrintStep psGCodeExport is finished).
Added reset of GCodePreviewData on Print::apply() to conserve RAM.
2018-12-19 14:47:16 +01:00
bubnikv
1e6900afa2 Logging of memory usage for the GCodeAnalyzer and GCodePreviewData. 2018-12-18 15:55:45 +01:00
bubnikv
7e8d9c154d WIP: Fix of PrusaControl import.
Now the transformation matrices need to be restored as well.
2018-12-17 12:11:51 +01:00
bubnikv
d0edc36400 Implemented M220 B / M220 R for backup / restore of the speed override
at the firmware. The M220 B / M220 R are only applied for MM prints
without any flex or soluble (PVA, BVOH) material, as for these materials
the MMU slows down the print using the M220 code.
fixes "LCD Speed Modifier Lost on Tool Change #421"
2018-12-17 10:30:20 +01:00
bubnikv
6da83c7976 Make the increase of extruder motor current during MM filament
exchange sequences configurable.
2018-12-14 20:09:10 +01:00
bubnikv
52db7b055a WIP: Merged commits from stable between 1.41.2-beta and 1.42.2 final.
Changes in SupportMaterial.cpp, TriangleMesh.cpp and 01_trianglemesh.t
are yet to be merged.

WIP: Refactoring of layer height editing.
Removed layer_height_ranges from PrintObject, as the Print/PrintObject
now hold their copies of Model/ModelObject.
2018-12-11 16:33:43 +01:00
bubnikv
aed6eabae8 Fixed missing includes 2018-12-10 09:52:22 +01:00
hexane360
8481ca9610 Fixed post-processing (including perms check) on Unix 2018-12-10 09:05:37 +01:00
bubnikv
0e8d13142b Allow printing a MM object on a single material printer.
All extruders are clamped to the number of physical extruders
when passed to the back end.
2018-12-06 16:53:43 +01:00
YuSanka
360133246c Fixed ColorPrint current layer identification 2018-11-28 16:03:24 +01:00
Lukas Matena
69a7991c59 Fix of issue #1368 2018-11-28 12:30:48 +01:00
YuSanka
f203f6fbd9 ColorPrint improvement
+ Select "Color Print" preview type if it's not after add/delete new color change
+ Added level heights to the color legend instead of "Color N"
2018-11-27 16:04:56 +01:00
YuSanka
f8bc7cb959 Implementation of the "ColorPrint" on the 3DScene 2018-11-26 16:28:12 +01:00
bubnikv
cc283571e7 Fixed compilation issues on osx 2018-11-26 14:54:23 +01:00
bubnikv
a378bb7bed Removed some obsolete Perl bindings.
Removed libslic3r from the default include paths for all modules but
libslic3r. Now headers from libslic3r need to be included with an
explicit path (libslic3r/libslic3r.h etc)
Split the localization macros into I18N.{cpp,h}
2018-11-26 14:41:58 +01:00
bubnikv
c2e46350f2 Separated Print / PrintObject into PrintBase.cpp/h to support SLAPrint 2018-11-08 14:23:17 +01:00
Lukas Matena
377350db33 When iterating over PrintObject regions, use PrintObject::region_volumes (see also yesterday's commit 3eea327) 2018-11-07 15:17:29 +01:00
bubnikv
3eea327ef0 WIP: When iterating over PrintObject's regions, use the region count
by PrintObject::region_volumes. This is due to the way Print::apply()
works, it does not invalidate an existing PrintObject if a new region
is added to the print.
2018-11-06 15:31:26 +01:00
bubnikv
21caa9de48 Slic3r was split to a Slic3r.dll / Slic3r.exe / Slic3r-console.exe /
Slic3r-noconsole.exe on Windows.
2018-10-26 11:57:52 +02:00
Enrico Turri
9ae6d115a2 New selection -> removed obsolete methods\n+\nFixed a few compile warnings 2018-10-08 15:17:36 +02:00
bubnikv
d7f1c8670f Removed wrong dependency on wxWidgets from libslic3r.
Added cmake message for WXWIN environment variable.
2018-09-19 17:55:17 +02:00
bubnikv
0558b53493 WIP: Moved sources int src/, separated most of the source code from Perl.
The XS was left only for the unit / integration tests, and it links
libslic3r only. No wxWidgets are allowed to be used from Perl starting
from now.
2018-09-19 11:02:24 +02:00