Commit Graph

840 Commits

Author SHA1 Message Date
YuSanka
59432d50ff To OptionsGroup added "reload_config" to reload configurations after changes in any fields & "get_config_value" to get current option value from config.
In Field extended "set_value" to Choice.
In PrintConfig added default_value to "post_process".
2018-01-09 09:41:07 +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
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
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
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
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
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
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
bubnikv
73a539780a Bumped up a version number. 2017-12-01 18:56:32 +01:00
bubnikv
ca0626b168 Fixed regression bugs regarding print validation,
fixed crashes when loading a config.ini with "compatible_printers"
disabled export of "compatible_printers" into gcode and config.ini

Enabled compatibility of printing multiple objects with support / no support
with a wipe tower.
2017-12-01 18:55:57 +01:00
bubnikv
752d72f58d Increased fill rate of the support 1st layer from 50% to 70%. 2017-11-30 19:04:07 +01:00
bubnikv
cecaf6eabc Slight optimization of the filament_start_gcode insertion:
It is not needed between the purging towers and the wipe tower brim.
2017-11-30 17:55:39 +01:00
bubnikv
bff7065360 Fixed a bug in the support generator: There was half extrusion width
gap created between the support and the support sheath.
Now the support sheath will overlap with the support base by 10%
of the extrusion width by default.
2017-11-30 16:24:48 +01:00
bubnikv
3996535e5d Changed handling of filament_gcode_start and filament_gcode_end custom
G-codes in case of single extruder multiple material setup:
At the start of the print, the filament_gcode_start is executed
for the active extruder only, and the filament_gcode_start /
filament_gcode_end are then executed at each tool change.

When the Prusa MM wipe tower is active, the tool changes are handled
a bit differently: M900 K0 is emited before the wipe tower extrusions start,
and the filament_gcode_start code is executed after the wipe tower extrusions
are done. This rule effectively disables the linear advance over the wipe tower.

Implements https://github.com/prusa3d/Slic3r/issues/568
2017-11-30 16:01:47 +01:00
bubnikv
830da1f8e4 Fixed a regression bug of handling the obsolete config parameters,
causing crashes.
2017-11-30 13:43:02 +01:00
bubnikv
2f54bf5bca Fixed a random crash in the PlaceholderParser due to deallocating
an undefined pointer.
2017-11-29 20:38:19 +01:00
bubnikv
f754cb422b Bumped up the version number. 2017-11-29 19:34:24 +01:00
bubnikv
ae118519ab Fixed a 32bit build bug in the new PlaceholderParser macro processor. 2017-11-29 19:27:26 +01:00
bubnikv
08e81f2765 Bumped up the build version. 2017-11-29 10:52:54 +01:00
bubnikv
9ca63f16bc New PlaceholderParser variable for sequential prints:
current_object_idx - zero based index of the object printed.
Implements feature request https://github.com/prusa3d/Slic3r/issues/578
2017-11-28 15:30:05 +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
bb2b180ecc Fixed G-code export of custom G-code sections to not add a newline
if the custom G-code already ends with a newline.
2017-11-26 21:23:18 +01:00
bubnikv
b54a15faa2 Fix of the new PlaceholderParser: Maintain whitespaces and new lines. 2017-11-26 20:43:31 +01:00
bubnikv
571d654e67 Placeholder parser - added a comment with a reference to a C grammar. 2017-11-26 11:52:44 +01:00
bubnikv
5c3ba79c6f PlaceholderParser - added an unary not operator. 2017-11-26 11:16:28 +01:00
bubnikv
2312fa845e Fixed compilation on GCC, changed to handle keywords correctly. 2017-11-26 10:54:54 +01:00
bubnikv
708f416c84 PlaceholderParser extended with {if}/{elsif}{else} blocks and
+ - * / == != <> numeric expressions.
2017-11-26 09:59:14 +01:00