Commit Graph
100 Commits
Author SHA1 Message Date
bubnikv 91e1dc639d Fix of the preceding cherry pick. 2017-11-30 19:00:26 +01:00
bubnikv d161d4f78c There is a hack applied to add accelerator keys to the menu
without being registered. Unfortunately this hack works on wxWidgets
on Windows. On OSX or Linux, a warning is emited and no accelerator
key is shown on the menu.
This commit just removes the warnings, it does not add the menu accelerators.
https://github.com/prusa3d/Slic3r/issues/539
2017-11-30 18:26:15 +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 a617e02ae6 New hot key for auto arrange: 'a'. 2017-11-30 17:45:03 +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 8807d288d7 Fixed a regression issue when starting Slic3r with non-existent datadir. 2017-11-30 15:51:51 +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 6aff27f3ab Moved initialization of Slic3r XS datadir variable to GUI.pm
Solves https://github.com/prusa3d/Slic3r/issues/594
2017-11-30 10:22:39 +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 6729dc1c6d Fixed a failing PlaceholderParser test case. 2017-11-29 16:35:48 +01:00
bubnikv 08e81f2765 Bumped up the build version. 2017-11-29 10:52:54 +01:00
bubnikv 0ddbfccb08 Added some test cases for the conditional G-code math calculator.
https://github.com/prusa3d/Slic3r/issues/438
2017-11-28 19:56:32 +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 f58b217369 Implemented loading of a Slic3r Config Bundle as a Slic3r Config file. 2017-11-28 11:57:33 +01:00
bubnikv 3c0cd3cbc8 Improve error handling of loading Slic3r profiles. 2017-11-28 10:08:01 +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
bubnikv 9205c8aab4 Sketch of the PlaceholderParser if/elsif/else macro. 2017-11-17 18:46:03 +01:00
bubnikv 47f193fe2d The PlaceholderParser has been rewritten to use
a real boost::spirit::qi parser, accessing the DynamicConfig repository
directly. This is a first step towards a full fledged expression
interpreter.
2017-11-17 11:15:46 +01:00
bubnikv 200f176951 Fixed compilation on Linux / GTK 2017-11-10 18:50:14 +01:00
bubnikv 4628308415 Oh those compiler differences. 2017-11-10 17:42:30 +01:00
bubnikv bfce6dba9b Integrated the "compatible printers" idea by @alexrj with Vojtech's twist:
The incompatible presets are hidden in the tabs if show_incompatible_presets
is false. If show_incompatible_presets is true, there is a button to
show / hide the incompatible presets from the tab selector.
2017-11-10 17:27:05 +01:00
bubnikv b23b9ea1d2 Implemented volumetric flow rate hints,
removed some C++11 conditioned compilation. Slic3r now requires C++11.
2017-11-09 15:10:20 +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 5fb54ed1f3 Code beautification: PrintConfig tooltips were split to multiple lines. 2017-11-09 10:06:25 +01:00
bubnikv e4614f301c ConfigBase with option template to do the type conversion
of resolved ConfigOption.
2017-11-09 10:05:37 +01:00
bubnikv 71b58e24a9 Fixed a regression bug in the "first layer extrusion width" G-code comment.
https://github.com/prusa3d/Slic3r/issues/566
2017-11-06 15:43:56 +01:00
bubnikv e6ecb77d9a Fixed loading of configs and configs from g-codes. 2017-11-03 19:14:33 +01:00
bubnikv b11d9708ed Updated Controller after the presets C++ port. 2017-11-02 21:51:06 +01:00
bubnikv dd9e1aff70 When loading Slic3r.ini of older Slic3rs, remove the .ini suffix
from the preset names.
This fixes https://github.com/prusa3d/Slic3r/issues/367
2017-11-02 17:31:24 +01:00
bubnikv ee84e1773d Fixed an incorrect comment separator in generated g-code. 2017-11-02 16:50:08 +01:00
bubnikv 4ab4a9afe8 Fighting with boost::filesystem::directory_iterator 2017-11-02 16:40:25 +01:00
bubnikv 7551006102 Another fix or Unices of the previous commit. 2017-11-02 16:35:46 +01:00
bubnikv df5628422c Fixed serial port enumeration on non-Win32 systems. 2017-11-02 16:29:03 +01:00
bubnikv e8b6d92d4d Looks like the reworked C++ preferences start to work again. 2017-11-02 16:21:34 +01:00
bubnikv 95c284c764 Next step of Perl to C++ configuration layer conversion. 2017-11-01 19:30:05 +01:00
bubnikv 337f6c5808 Deleted the config-bundle-to-config.pl tool, it will be replaced
with direct loading of a config bundle as a config file the same way
it has been done for the config from a G-code.
2017-10-30 18:55:31 +01:00
bubnikv d564fc95df Split Preset.cpp,hpp to Preset.cpp,hpp and PresetBundle.cpp,hpp 2017-10-30 18:41:50 +01:00
bubnikv 1fee3633a0 New C++ class AppConfig for maintaining the config.ini
New helper function for generating a unified "generated by slic3r" header.
2017-10-30 18:15:41 +01:00
bubnikv 835e5b71a8 Reduce UI flicker. 2017-10-28 00:18:02 +02: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 21633bc0ba throw std::invalid_argument instead of std::exception 2017-10-27 21:28:39 +02:00
bubnikv 2455aee97c Further reduction of Perl Config.pm methods. 2017-10-27 18:52:35 +02:00
bubnikv 3bc79e80d5 Fixed configuration & validate C++ ports. 2017-10-27 16:11:06 +02:00
bubnikv 5a99e694ce Another step towards the C++ presets. 2017-10-26 17:17:39 +02:00
bubnikv ee645007f2 Another step towards C++ presets. 2017-10-25 12:53:31 +02:00
bubnikv 7308017ee8 Added the AGPL v3 license file 2017-10-21 16:09:25 +02:00
bubnikv fe0bf6ebf3 Optimization of Perlglue ConfigBase__get 2017-10-18 14:26:38 +02:00
bubnikv d9d6d996e9 Utility functions to pass wxWidgets pointers from Perl to C++ code.
C++ var_dir / set_var_dir() interface to access the UI resources
from the C++ code.
2017-10-17 20:00:15 +02:00
bubnikv af51220f34 Fix of preceding commit. 2017-10-17 19:41:04 +02:00
bubnikv b9d57483d8 perglue.cpp - use static_cast instead of dynamic_cast if possible,
use switch instead of plenty of ifs,
export clone<DynamicPrintConfig> to Perl XS.
2017-10-17 19:19:41 +02:00
bubnikv 746afbd790 Yet another compilation fix? 2017-10-17 18:49:07 +02:00
bubnikv 9a7d1bb566 Another compilation fix. 2017-10-17 18:41:54 +02:00
bubnikv de2c6a2a3d exception what() method shall be noexcept. 2017-10-17 17:53:16 +02:00
bubnikv 67ce4d862b One more fix of the preceding commit. 2017-10-17 17:48:04 +02:00
bubnikv 38aca5047f Fix of the preceding commit for gcc & clang:
Add a class name suffix to the s_cache static members
of the StaticPrintConfig derived classes.
2017-10-17 17:37:03 +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 a91d7cb2f7 Redefined the ==, != operators of Point and BoundingBox classes
to become members of their respective classes to avoid type clashes
through implicit casting operators of ConfigOption classes.
2017-10-17 14:36:30 +02:00
bubnikv a191fbbec8 Fix of a 3D print path preview for the wipe tower: Calculate
the bounding boxes accurately.
2017-10-04 13:50:04 +02:00
bubnikv 5a844c91f1 When executing G-code post-processing scripts written in perl on windows,
run the perl interpreter, which was used to run the Slic3r.
https://github.com/prusa3d/Slic3r/issues/514
2017-10-03 17:05:47 +02:00
bubnikv a830a3c161 Fixes the scene disappearing when there are no Prusa MM priming towers. 2017-10-03 14:15:00 +02:00
bubnikv e719e48a84 Fixed a bug in the temperature handling of the Prusa Multi Material
priming towers.
2017-10-03 13:43:34 +02:00
bubnikv eb0117b1c1 Fix of https://github.com/prusa3d/Slic3r/issues/492
When a layer contained the support interface only, it was errorneously
printed with the support base material.
2017-10-03 13:22:37 +02:00
bubnikv 9898024ce9 admesh: changed header_num_facets to uint32 2017-10-03 12:41:53 +02:00
bubnikv 1958673806 Fixed the cubic infill: The cubic infill was 30% flatter than it should
have been.
2017-10-03 11:29:13 +02:00
bubnikv a52a04550e Big endian fix, thanks to @hyperair for hints and initial implementation. 2017-10-03 10:57:16 +02:00
bubnikv 84d4bf8fdb Load presets into the new C++ class. 2017-10-02 17:35:00 +02:00
bubnikv b1e3b0cdf9 Further fixes of the previous commit. 2017-09-20 10:16:00 +02:00
bubnikv 8089631f10 Fix of the previous commit: Fix compilation on Linux. 2017-09-20 10:03:53 +02:00
bubnikv 473233019c Initial partial implementation of presets in C++. 2017-09-19 13:55:48 +02:00
bubnikv b58756f38b A bit of refactoring and beautification. 2017-09-18 10:01:37 +02:00
bubnikv e16f827223 Ported PrintConfigBase::_handle_legacy from Perl to C++,
merged from upstream Slic3r, thanks to @alexrj.
2017-09-18 09:56:48 +02:00
bubnikv cd084a33c6 Fixed a regression bug, which was made during the porting of
discover_horizontal_shells() fron Perl to C++, where
the already calculated bridge direction was being lost.

Improved constness of the debug methods
    void export_region_slices_to_svg(const char *path) const;
    void export_region_fill_surfaces_to_svg(const char *path) const;
2017-09-14 13:15:32 +02:00
bubnikv 630b746cab Fix a lag when starting to move a platter object.
The fix is done by disabling the print out of a model statistics,
which runs the model fixing twice.
2017-09-14 09:06:14 +02:00
bubnikv 777dc8c48b Fixed a missing bbox.defined=true assignment. 2017-09-13 15:52:51 +02:00
bubnikv e2a169b0e5 Changed the G-code protocol for cleaning up the priming towers
for the multi material prints.
2017-09-13 13:27:49 +02:00
bubnikv 83b5b9e660 Set a missing bbox.defined flag. 2017-09-13 10:28:02 +02:00
bubnikv 6b2b279889 Fix of "exponentional values generated as G1 F-1.95058e+006 causing problems"
https://github.com/prusa3d/Slic3r/issues/463
2017-09-12 18:20:06 +02:00
bubnikv 98408bbed0 Fixed a crash when slicing leads to no print.
Fixed a bug in TriangleMesh::bounding_box().
2017-09-12 16:48:44 +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 6d4ec5c989 Further fix of https://github.com/alexrj/Slic3r/issues/4085
making it safe in case wxWidgets do not report supporting multisampling,
but the OpenGL context actually does and it leaves the multi-sampling enabled.
This then may in theory lead to incorrect picking by color.
2017-09-12 10:14:24 +02:00
bubnikv 888a904c9b Workaround of
"GL_MULTISAMPLE and GL_ARRAY_BUFFER_ARB messages on failed launch"
https://github.com/alexrj/Slic3r/issues/4085

Also fixes
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872273
2017-09-12 10:03:10 +02:00
bubnikv 100c8f60a5 Added GCode/PrintExtents.cpp,h
Added a check for a collision between the multi material priming
regions with the rest of the print.
2017-09-12 09:01:48 +02:00
bubnikv 748c1ab1de Merge branch 'master' of https://github.com/prusa3d/Slic3r 2017-09-11 09:58:54 +02:00
bubnikv fd3b474a63 Merges https://github.com/prusa3d/Slic3r/pull/509 2017-09-11 09:58:41 +02:00
bubnikv 836dd98113 CMake build system: Adding -fext-numeric-literals when compiling with gcc.
This should fix https://github.com/prusa3d/Slic3r/issues/500
2017-09-11 09:20:22 +02:00
bubnikv 93774087f1 Fixed typo from the previous commit. 2017-09-04 13:55:56 +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
bubnikv 29d9a1e810 Fixed a default locale on Windows for UTF normalization. 2017-09-04 10:34:51 +02:00
bubnikv b35f5780dc Fixed compilation on OSX & LInux 2017-09-04 10:14:56 +02:00
bubnikv b610866d77 Implemented priming of all the filaments of the Prusa Multi Material. 2017-09-01 17:30:18 +02:00
bubnikv 247070cd82 Fixed a regression bug of Slic3r::encode() / decode() 2017-08-30 14:57:13 +02:00