Commit graph

223 commits

Author SHA1 Message Date
Lukas Matena
e2126c2dd6 Dedicated objects are now not ignored 2018-06-22 14:03:34 +02:00
Lukas Matena
bc5bd1b42b Assigning of wiping extrusions improved 2018-06-21 10:16:52 +02:00
bubnikv
ac011aec6d Removed dependencies of libslic3r on Slic3r GUI library. 2018-06-20 18:55:31 +02:00
bubnikv
6b2b970b9a Added machine evelope configuration parameters
(the MachineEnvelopeConfig class).
Added localization support for libslic3r through a callback
(the callback is not registered yet, so the localization does nothing).
Localized the Print::validate() error messages.
2018-06-20 13:57:37 +02:00
Lukas Matena
8a47852be2 Refactoring of perimeters/infills wiping (ToolOrdering::WipingExtrusions now takes care of the agenda)
Squashed commit of the following:

commit 931eb2684103e8571b4a2e9804765fef268361c3
Author: Lukas Matena <lukasmatena@seznam.cz>
Date:   Wed Jun 20 12:50:27 2018 +0200

    ToolOrdering::WipingExtrusions now holds all information necessary for infill/perimeter wiping

commit cc8becfbdd771f7e279434c8bd6be147e4b321ee
Author: Lukas Matena <lukasmatena@seznam.cz>
Date:   Tue Jun 19 10:52:03 2018 +0200

    Wiping is now done as normal print would be (less extra code in process_layer)

commit 1b120754b0691cce46ee5e10f3840480c559ac1f
Author: Lukas Matena <lukasmatena@seznam.cz>
Date:   Fri Jun 15 15:55:15 2018 +0200

    Refactoring: ObjectByExtruder changed so that it is aware of the wiping extrusions

commit 1641e326bb5e0a0c69d6bfc6efa23153dc2e4543
Author: Lukas Matena <lukasmatena@seznam.cz>
Date:   Thu Jun 14 12:22:18 2018 +0200

    Refactoring: new class WipingExtrusion in ToolOrdering.hpp
2018-06-20 12:52:00 +02:00
Lukas Matena
29dd305aaa Wiping into perimeters - bugfix (wrong order of perimeters and infills) 2018-06-13 11:48:43 +02:00
Lukas Matena
b6455b66bd Wiping into infill/objects - invalidation of the wipe tower, bugfixes 2018-06-07 16:19:57 +02:00
Lukas Matena
73452fd79d More progress on 'wipe into dedicated object' feature (e.g. new value in object settings) 2018-06-06 18:24:42 +02:00
Lukas Matena
4830593cac Started to work on the 'wipe into dedicated object feature' 2018-06-05 12:50:34 +02:00
Lukas Matena
7c9d594ff6 Fixed behaviour of infill wiping for multiple copies of an object 2018-06-04 12:15:59 +02:00
Lukas Matena
bdaa1cbdfd Wiping into infill - no infills are now inadvertedly printed twice (hopefully) 2018-06-01 15:43:22 +02:00
Lukas Matena
2d24bf5f73 Wipe into infill - copies of one object are properly processed 2018-05-31 16:21:10 +02:00
Lukas Matena
8bdbe41505 Wiping into infill should respect infill_first setting, marking moved to separate function 2018-05-30 11:56:30 +02:00
Lukas Matena
c72ecb382d Reduction is now correctly calculated for each region, soluble filament excluded from infill wiping 2018-05-28 15:33:19 +02:00
tamasmeszaros
b6f8ea0334 Progress should be displayed with synchronization. 2018-05-25 18:21:06 +02:00
tamasmeszaros
fcef1b107e Making some meaningful progress feedback. 2018-05-25 16:55:55 +02:00
Lukas Matena
bfe4350a89 Calculation of wipe tower reduction corrected, new config option (wipe into infill) 2018-05-25 16:11:55 +02:00
tamasmeszaros
5fe83110cb Fix crashing png export on Linux. 2018-05-25 15:01:57 +02:00
Lukas Matena
132a67edb2 Wipe tower changes to reduce wiping volumes where appropriate 2018-05-24 17:24:37 +02:00
Lukas Matena
95795f249a First steps in reorganizing infill order (to use infill instead of the wipe tower) 2018-05-24 14:05:51 +02:00
Lukas Matena
1d1c69f300 Merge branch 'master' into wipe_tower_improvements 2018-05-23 19:34:33 +02:00
tamasmeszaros
a2eecdfb25 Output directory selection changed to zip file selection with file dialog. 2018-05-23 16:28:18 +02:00
tamasmeszaros
3bdb12ada1 Making it compile on GCC 4.9 2018-05-23 14:16:54 +02:00
tamasmeszaros
a7298d9d89 Merge with latest master 2018-05-23 12:27:07 +02:00
tamasmeszaros
0c6eb19202 fix zip file error check 2018-05-23 12:24:11 +02:00
tamasmeszaros
7fe9a56ef8 Added some comments and sequential version of png slice export. 2018-05-23 11:02:07 +02:00
tamasmeszaros
2eddacfb7e getting rid of strerror problem 2018-05-22 16:39:47 +02:00
bubnikv
306d77559e Merge remote-tracking branch 'remotes/origin/scene_manipulators' 2018-05-22 14:32:07 +02:00
tamasmeszaros
73b861287c Zipped output and tryfixes for linux and mac build. 2018-05-22 11:16:32 +02:00
Lukas Matena
e2f44a231e A fix to use correct spacing with multiloop skirts 2018-05-22 10:50:38 +02:00
tamasmeszaros
e36164c76b OSX and linux build fixes 2018-05-22 10:15:15 +02:00
tamasmeszaros
6cc4e99632 Logging file system error and formatting png output filename for equal leading zeros. 2018-05-21 16:28:00 +02:00
tamasmeszaros
6b5c0073a7 Model centered when exporting to png. Added some comments to the rasterization. 2018-05-21 13:46:41 +02:00
tamasmeszaros
0f552832da PNG conversion and parallel execution working. 2018-05-18 18:11:29 +02:00
tamasmeszaros
d97939c012 Holes now printed correctly. export changed to pgm which is grayscale. 2018-05-18 15:08:18 +02:00
Lukas Matena
99293011e6 Corrected brim generation (width), enabling continuity with skirt 2018-05-18 12:19:54 +02:00
tamasmeszaros
c3a944ef97 Can rasterize polygons with holes using AGG. Export is raw ppm for now. 2018-05-17 18:17:15 +02:00
tamasmeszaros
e1b9c13024 Rasterizer skeleton 2018-05-16 18:51:28 +02:00
tamasmeszaros
d9ff63c022 Basic svg export ported from perl to the point where actual svg is assembled. Empty PNG files are genereted for each sliced layer. 2018-05-15 18:01:47 +02:00
Enrico Turri
81636abaa9 Merge branch 'master' of https://github.com/prusa3d/Slic3r into scene_manipulators 2018-05-02 14:45:42 +02:00
Lukas Matena
b4e63d47cb Yet another attempt to fix the layer height profile validation 2018-05-02 10:56:06 +02:00
Lukas Matena
24dc4c0f23 Yet another attempt to fix the layer height profile validation 2018-04-26 11:19:51 +02:00
Lukas Matena
8c77b9645c Loading, unloading and cooling reworked, new filament parameters regarding cooling were added 2018-04-24 13:02:08 +02:00
Enrico Turri
71d9500b2e More robust fix for 3D view and GUI buttons not in synch when object's size is almost identical to print volume's size 2018-04-24 09:00:33 +02:00
Enrico Turri
cd3be74e3b Workaround for 3D view and GUI buttons not in synch when object's size is almost identical to print volume's size 2018-04-23 15:03:38 +02:00
Lukas Matena
d7dc04eb57 Removed parameter filament_cooling_time (fixed value of 14s for now) 2018-04-17 08:18:12 +02:00
Lukas Matena
a154fd34ee Added parameter extra_loading_move, prevented high feedrate moves during loading 2018-04-16 14:26:57 +02:00
Lukas Matena
2726267748 Bugfix: validation of equal layering rejected even some valid configurations 2018-04-16 11:47:35 +02:00
Lukas Matena
abe6e8a783 Bugfix: legacy config options were not properly processed 2018-04-13 13:43:53 +02:00
Lukas Matena
adbaa42b2b Bugfix: cooling tubes parameters change invalidates generated wipe tower 2018-04-12 15:38:05 +02:00
Lukas Matena
719adfbaf3 The layer height check for multiple objects is now only enabled when variable layer height is enabled 2018-04-04 09:59:41 +02:00
Lukas Matena
89686b808d Added a check that all objects have the same layer height profile 2018-04-03 13:51:12 +02:00
Lukas Matena
281732ca38 Variable layer height enabled, nozzle diameters properly passed to the wipe tower generator 2018-03-29 15:32:09 +02:00
bubnikv
fca7c8abfe Fixed compilation and test cases. 2018-03-28 19:47:26 +02:00
bubnikv
33e1108f65 Background processing in C++, WIP. 2018-03-28 17:05:31 +02:00
bubnikv
e931f75010 Work in progress: Good bye, Perl Threads! 2018-03-23 11:41:20 +01:00
Lukas Matena
985b414c64 Removed parameter 'wipe_tower_per_color_wipe' from UI and configuration layer 2018-03-22 13:37:01 +01:00
Lukas Matena
e7a5bc1afe Added a check that no object uses extruder the printer doesn't have 2018-03-21 16:01:31 +01:00
Lukas Matena
9519fae490 Partial refactoring of wipe tower code (got rid of global constants, etc) 2018-03-21 15:57:17 +01:00
Lukas Matena
0fc2da5a32 Wipe tower generator should now work for more than 4 extruders (actual number extracted from wiping_volumes_matrix) 2018-03-20 15:45:11 +01:00
Lukas Matena
a782424d5f Wipe tower generator connected to purging volumes from the configuration layer 2018-03-20 15:07:18 +01:00
Lukas Matena
76b280c64c Removed parameter 'wipe_tower_adhesion', it will always be true 2018-03-19 15:53:49 +01:00
Lukas Matena
3d6f6530c0 Merge branch 'master' into wipe_tower_improvements 2018-03-16 14:06:23 +01:00
Lukas Matena
b556cec42d Got rid of wipe_tower_advanced option 2018-03-16 13:58:58 +01:00
Lukas Matena
67009d80fd Ramming parameters reduced to one and connected to the wipe tower generator again 2018-03-15 14:04:12 +01:00
bubnikv
4351187ce5 Fixed Print::validate() to allow for objects protruding below the print bed.
The part of the object below the print bed will simply not be sliced.
This fix also fixes integration tests, which often work with boxes
centered around (0,0,0).
2018-03-14 18:16:17 +01:00
bubnikv
b43a21d1be Extended Print::validate() to check, whether the objects
are inside the print volume.
2018-03-14 16:11:57 +01:00
Lukas Matena
27ab8ff4e1 Configuration layer changes (cooling_time, bridging, adhesion moved from dedicated dialog to filament/print settings) 2018-03-12 15:41:25 +01:00
Enrico Turri
bdd2d725c8 Out of bed detection - 1st installment 2018-03-09 10:40:42 +01:00
Lukas Matena
8340a71f88 Lots of unnecessary code removed, minor refactoring changes 2018-03-08 16:44:52 +01:00
Lukas Matena
5aca3045b9 (Un)loading speed and delay introduced into wipe tower generator 2018-03-05 10:45:35 +01:00
Lukas Matena
d2006c8d8e Cooling tubes parameters added into GUI and configuration layer (not yet into wipe tower generator) 2018-03-01 16:15:00 +01:00
Lukas Matena
a62ad3323f First naive implementation of wipe tower settings dialog 2018-02-28 16:04:56 +01:00
Lukas Matena
de92f45eaf Merge with master 2018-02-21 13:22:51 +01:00
bubnikv
b1f5e7e8fa Removed the GCodePreviewData from the Print class, it does not belong here,
as the GCode is generated outside of the Print class.
Exported the GCodePreviewData as GCode::PreviewData to Perl.
When exporting the G-code with a command line Slic3r,
the GCodeAnalyzer is now supressed for performance reasons.
Removed obsolete Perl module Slic3r::GUI::Plater::3DToolpaths.
2018-02-14 20:35:59 +01:00
bubnikv
3a6436f6f0 Split the GCodePreviewData from the GCodeAnalyzer,
as in the next step the GCodePreviewData will be exported to Perl.
2018-02-14 18:42:09 +01:00
bubnikv
030fc9c320 Merge branch 'master' into gcode_preview 2018-02-13 14:55:54 +01:00
Enrico Turri
f4522cd2fc GCode Preview - Customizable extrusion role colors by editing 3DPreview.pm 2018-02-13 13:16:23 +01:00
bubnikv
e7f05f8516 Fix of "Crash while trying to slice with a raft" #686
This was an issue specific to multi-material print with raft
and no support.
2018-02-13 11:18:58 +01:00
Enrico Turri
3f006dc11a GCode Preview - Added objects and wipe tower transparent shells 2018-02-12 09:04:05 +01:00
Enrico Turri
a417cf955d GCode Preview - Code cleanup 2018-01-17 10:39:05 +01:00
Enrico Turri
6a744238b9 Added preview of retractions and unretractions 2018-01-08 16:05:01 +01:00
Enrico Turri
c9839dd7cc Merge branch 'master' of https://github.com/prusa3d/Slic3r into gcode_preview 2018-01-08 13:45:57 +01:00
Enrico Turri
0f4bec8af0 gcode preview - first installment - wip 2018-01-08 13:44:10 +01:00
bubnikv
fec1fcdca8 Separated the Marlin G-code flavor from the RepRap G-code flavor
due to the differences in the M203 code
(RepRap firmware has it in mm/min, Marlin in mm/sec).
This difference is important to the G-code time estimator.

Changed the g-code flavor to Marlin for all Prusa3D bundled profiles.
2018-01-06 18:49:28 +01:00
Lukas Matena
180967484e Correction of wipe tower brim generation 2017-12-22 11:26:43 +01:00
Lukas Matena
c6718c94bf Merge fix 2017-12-21 14:24:47 +01:00
Lukas Matena
4583d62edd Merge branch 'master' into wipe_tower_improvements 2017-12-21 13:47:33 +01:00
Lukas Matena
b7a326a550 First attempts of variable wipe implementation, sparse infill modified to sawtooth 2017-12-21 13:28:26 +01:00
bubnikv
61e6f23ed2 Fix of
"Multimaterial printer switches filament at the wrong time during a print"
https://github.com/prusa3d/Slic3r/issues/607

There was a single layer between the raft top and the object first layer
missing on the wipe tower, and after this missing layer all the tool
changes were shifted by one layer, meaning two color print had the colors
switched.
2017-12-11 17:19:55 +01:00
bubnikv
8746f84fa2 Improved error reporting of the PlaceholderParser.
The PlaceholderParser is currently used by the GCode.cpp
and by Printer.cpp to generate a new name for the exported G-code or SVG file.
The PlaceholderParser::process() will throw a runtime_error with
a comprehensive error message.
The G-code export will include these error messages into the G-code text
with !!!!!! separators, and the GUI will inform the user, that the G-code
export failed.
2017-12-05 15:54:24 +01:00
bubnikv
16bd3fc624 Fixed an extruder ordering bug on the 1st layer wipe tower.
This is a regression after introducing the extruder priming areas
at the edge of the print bed.
2017-12-03 09:43:00 +01:00
Lukas Matena
2921302fe9 GUI integration of rotation angle setting 2017-11-30 12:08:22 +01:00
bubnikv
672194b475 Ported the between_objects_gcode custom G-code blocks,
thanks @lordofhyphens, https://github.com/alexrj/Slic3r/pull/3275

Improved handling of custom G-code blocks: Slic3r will try to extract
the target extruder and bed temperatures from the custom G-code blocks.
2017-11-28 15:19:57 +01:00
bubnikv
9a0100d6de Initial definition of PresetHints C++ class and Perl binding, ported the cooling logic hints to C++.
Removed Perl Flow::new_from_spacing bindings.
Some Fill C++11 beautification.
Fix of a support_material_1st_layer_flow, brim_flow and skirt_flow logic to use the extrusion_width if both first_layer_extrusion_width and support_material_extrusion_width are undefined.
Documented the extrusion width logic in the config tooltips, including the default values.
2017-11-09 10:48:06 +01:00
bubnikv
857b78ddca Fix of the previous commit: Slic3r::Config::new_from_defaults_keys
has to be provided with a reference to array of strings.
2017-10-27 22:49:59 +02:00
bubnikv
af51220f34 Fix of preceding commit. 2017-10-17 19:41:04 +02:00
bubnikv
3731820c48 Optimization of the configuration layer:
The values of StaticPrintConfig derived objects were searched by a name
walking through a huge chained if.
Now they are being mapped with a std::map.
Also initialization of StaticPrintConfig classes from their ConfigOptionDef
defaults is done by maintaining a single global definition of each
StaticPrintConfig derived class, and a new instance is initialized
from this static copy.

Also the ConfigOption instances are casted using static_cast
wherever possible, and their types are verified by a virtual type() method.
This approach avoids insiginificant performance penalty of a dynamic_cast.

Also the compare and clone methods were added to ConfigOption,
and the cloning & compare work on binary values, not by serialization.
2017-10-17 16:01:18 +02:00
bubnikv
b08d6f1969 The last priming area is shortened and the excess wipe is moved
into the wipe tower if there is enough space inside the wipe tower.
2017-09-12 15:55:38 +02:00
bubnikv
2c5304a520 Implemented an initial priming line for a single-material print
on a Prusa Multi-Material printer.
2017-09-04 13:51:05 +02:00