Commit Graph

859 Commits

Author SHA1 Message Date
Enrico Turri
3f57e20235 GCodeTimeEstimator: refactoring of forward and reverse passes on blocks 2018-01-04 13:00:34 +01:00
bubnikv
011281df86 Fix of the Spiral Vase after the GCodeReader rework.
A patch of the GCodeTimeEstimator to avoid crashes. This is not a final fix though.
2018-01-03 21:55:32 +01:00
bubnikv
998157fc9b Fixed an issue with vsprintf and on demand buffer allocation.
Improved the GCodeReader to support spaces before the G-code.
2018-01-03 20:53:39 +01:00
bubnikv
9d98a27b98 Fix of compilation on OSX and Linux. By the standard, a temporary
value cannot be passed to a reference.
2018-01-03 17:57:37 +01:00
bubnikv
b292554fd8 Optimized the GCodeReader.
Fixed the profiling build.
2018-01-03 17:29:49 +01:00
bubnikv
0e4ecfaf56 Fix of time estimator (int abs used instead of float abs) 2018-01-02 13:29:40 +01:00
bubnikv
fec05d430b Fixed a typo in fprintf 2018-01-02 11:14:22 +01:00
bubnikv
02256e900f Merged the branch time_estimate 2018-01-02 10:57:30 +01:00
bubnikv
0de0e4ff41 Bumped up the version number. 2018-01-02 10:34:32 +01:00
bubnikv
4c35d98d7d Bumped up the version number. 2017-12-29 21:21:26 +01:00
bubnikv
5cf9cd5395 Bumped up the build version. 2017-12-21 21:07:43 +01:00
bubnikv
1eef6d3552 Improved error reporting of the PlaceholderParser. 2017-12-21 17:07:57 +01:00
bubnikv
f5160b7a72 Fixed "Slic3r crashes when sending STLs with special characters to the printer"
https://github.com/prusa3d/Slic3r/issues/597
The "Send to OctoPrint" function will now send the file name encoded
in UTF-8, so the file name will not get mangled.

The C++ Slic3r::encode_path() function was returning a string to Perl,
which was marked as UTF-8. This has been fixed, now encode_path() returns
a plain Perl string.

Added path_to_filename, path_to_stem, path_to_extension, path_to_parent_path
Perl wrappers to boost::filesystem::path splitting functionality
to be able to split UTF-8 encoded files on Windows correctly.
2017-12-21 16:56:33 +01:00
bubnikv
fed5128b7f Reverted regex to boost::regex as the C++11 regex seems to be broken
on Linux/gcc 4.9.
2017-12-20 21:54:47 +01:00
bubnikv
8acd51fc62 Replaced boost::regex with std::regex. 2017-12-20 18:25:53 +01:00
bubnikv
c8d14fb617 The wipe tower generator does not call start_filament_gcode when
returning from a wipe tower and the particular wipe tower layer
is only sparsely filled without a tool change.
https://github.com/prusa3d/Slic3r/issues/642
2017-12-20 12:03:54 +01:00
bubnikv
a402b1b83d Implemented <,>,<=,>=,or,and,||,&& operators. 2017-12-19 16:48:14 +01:00
Enrico Turri
b2eb522f55 GCodeTimeEstimator - clean up unused code 2017-12-19 09:29:04 +01:00
bubnikv
6b81f43206 First implementation of the "compatible_printers_condition"
for the print and filament profiles.
Added documentation for building the boost library for Slic3r on Linux.
2017-12-18 15:07:38 +01:00
bubnikv
bb61de8379 Fixed a regression error: The "current_extruder" identifier was not set
at the placeholder parser.
Implemented a new PlaceholderParser::evaluate_boolean_expression()
functionality to evaluate just a boolean expression using the full
expressive power of the macro processing syntax. This function
will now be used for deciding, which print or filament preset
is compatible with which printer preset.
2017-12-18 12:14:09 +01:00
bubnikv
bbfb9a4190 Added regex matching operators to the conditional G-code processor
in a form similar to Perl:

Following expression returns true, if the variable matches the regex:
	variable =~ /regex/
Following expression returns true, if the variable does not match the regex:
	variable !~ /regex/
2017-12-15 17:14:24 +01:00
bubnikv
4bbe328117 Config wizard will prompt user to copy the profiles from Slic3r to Slic3rPE
if the datadir is left to the default value (which is Slic3r),
and Slic3rPE directory exists.
2017-12-14 13:47:22 +01:00
bubnikv
d65835f89b Improvement of region classification numerical stability.
The Clipper library is not stable when calcuating offsets of contours
with holes. Replaced a single call of offset2 with offset_ex(offset_ex()).
This is not the most efficient solution, but it fixes this problem.
Fixes https://github.com/prusa3d/Slic3r/issues/456
2017-12-14 13:26:44 +01:00
bubnikv
cdab27d337 Enabled a long wipe when moving away from the wipe tower
to reduce stringing.
2017-12-14 09:50:38 +01:00
Enrico Turri
0fe855cd6d Time estimate shown in GUI as formatted string / Write to file made by class GCode's private methods 2017-12-14 09:18:28 +01:00
bubnikv
08b74f8caf Fix of the wipe tower priming towers. The priming towers were printed
at the homing height on the MK2MM printer, not at the 1st layer height.
2017-12-13 15:35:00 +01:00
bubnikv
91e847cb76 Yet another fix for https://github.com/prusa3d/Slic3r/issues/607.
Use EPSILON to match two layers by their floating point Z height.
2017-12-13 10:32:25 +01:00
Enrico Turri
20234c94ee GCodeTimeEstimator - added retract_acceleration, minimum_travel_feedrate members and process of M201 gcode 2017-12-12 13:44:52 +01:00
bubnikv
74cb74f1fc Increased maximum allowed temperature to 1500 centigrades as someone
is seemingly uses Slic3r to print glass :-)
https://github.com/prusa3d/Slic3r/issues/629
2017-12-12 13:43:36 +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
Enrico Turri
e199d0532c GCodeTimeEstimator - added process of G92 gcode 2017-12-11 15:15:21 +01:00
Enrico Turri
34a0a2cb5e GCodeTimeEstimator - added process of M82 and M83 gcodes 2017-12-11 14:03:29 +01:00
Enrico Turri
50a45949d1 merge with master 2017-12-11 12:01:30 +01:00
Enrico Turri
bea9628be0 time estimation shown in GUI after gcode export 2017-12-11 11:11:54 +01:00
bubnikv
1938828520 Slic3r version was not set by the placeholder parser.
https://github.com/prusa3d/Slic3r/issues/615
2017-12-11 09:31:29 +01:00
Enrico Turri
a0a503e4a8 integration of time estimator into gcode export - save time estimation into gcode file 2017-12-11 09:06:29 +01:00
bubnikv
679aa2822c Moved the Slic3rPE/print,filament,printer folders to
Slic3rPE/presets/print,filament,printer
to separate the presets from further data stored into the Slic3rPE
directory.
2017-12-10 22:11:00 +01:00
bubnikv
657f2734f1 Extended the Config Wizard to offer a selection of config bundles
bundled with Slic3r installation, and install it into user's Slic3r profile.
These bundled config bundles will be contained in the Slic3r source
tree under Slic3r/resources/profiles.

Breaking change! The Slic3r user directory has been renamed to Slic3rPE
for the Prusa Edition. Also it is likely, that the Slic3rPE directory
will be reorganized before the final 1.38 release to reserve space
for temporary profiles downloaded from the Internet.
2017-12-10 13:19:44 +01:00
bubnikv
8509e4b5f5 Fixes regression error introduced in Slic3r 1.38.2:
Slic3r 1.38.3 gcodes not building up bed temperature
https://github.com/prusa3d/Slic3r/issues/614
2017-12-09 16:39:49 +01:00
bubnikv
f0e154d54c Bumped up the build version. 2017-12-09 15:49:43 +01:00
Enrico Turri
092d271fa2 time estimator wip stage 2 2017-12-08 10:50:36 +01:00
Enrico Turri
bc3d184d7c time estimator wip 2017-12-06 14:12:10 +01:00
bubnikv
7892dfd53c Fixed a regression bug in G-code export, where ferror was called on
released FILE structure.
2017-12-05 18:40:46 +01:00
bubnikv
0a2be9d7bf Fixed compilation on unices. 2017-12-05 17:52:12 +01:00
bubnikv
c34ec9b7d3 PlaceholderParser: Improved error reporting https://github.com/prusa3d/Slic3r/issues/600
Fixed '+' operator for strings.
2017-12-05 17:38:29 +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
1244fd09eb More efficient utf8 parser for the PlaceholderParser. 2017-12-04 18:22:42 +01:00
bubnikv
fb1bebd982 PlaceholderParser: simplistic extension to parse UTF8 characters
in the G-code and string constants.
Solves https://github.com/prusa3d/Slic3r/issues/600
2017-12-04 17:42:35 +01:00
bubnikv
2b0b8e6e68 Removed the hard-coded priming line when
both single_extruder_multi_material and wipe_tower are enabled,
and the print prints with a single extruder only.

Newly the same situation will be handled through a conditional G-code
in the following format:

{if not has_wipe_tower}
; Do the priming
{endif}
2017-12-04 11:57:54 +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