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
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
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
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
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
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
eyal0
d903af5373
Many warnings fixed ( #510 )
...
Thanks
2017-09-11 09:49:59 +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
bubnikv
38e35cefc7
Removed the Perl Build.PL for the XS module. This has been replaced
...
by the CMake based build system.
2017-08-30 10:03:32 +02:00
bubnikv
4bd694e205
CMake build process: Fixed build on OSX: renamed XS to XS.bundle
2017-08-29 16:37:46 +02:00
bubnikv
6688d6c590
CMake build system: Link perl library on windows only.
2017-08-29 12:41:59 +02:00
bubnikv
c0a9c67632
CMake build system: Fix on older linux?
2017-08-28 23:17:24 +02:00
bubnikv
ff4e8d94c0
CMake build process: Workaround for an old CMake on Linux.
2017-08-28 23:11:43 +02:00
bubnikv
0cb491e135
CMake build process:
...
Added the "test" target to execute the perl prove unit / integration tests.
Added a post-build step to copy the XS.dll & Slic3r/XS.pm to local-lib.
2017-08-28 19:11:16 +02:00
bubnikv
48f826c2c5
Disabled a limit of the nozzle diameter 0.4mm for the Prusa Wipe Tower.
...
Allowed scaling of the extrusion amount over the Prusa Wipe Tower
for layer heights over 0.2mm.
2017-08-28 14:57:00 +02:00
bubnikv
61b89865ff
Fixed a regression bug (bundling of multiple STLs into a single model).
2017-08-28 14:54:46 +02:00
Vojtech Bubnik
85ffbf1f57
Merged
2017-08-18 22:47:26 +02:00
Vojtech Bubnik
d0c43c99c3
CMake build system: Linux fixes
2017-08-18 22:45:24 +02:00
Vojtech Bubnik
9620596d59
CMake build system - fixes for OSX. Now a working XS.bundle is being generated.
2017-08-18 13:06:10 -07:00
bubnikv
ba1c0b0137
CMake build process - fixes of the previous check-ins to build
...
cleanly on Windows & Linux. There is still a work on OSX:
The XS module has to be linked without perl.lib and with
the following parameters to produce a bundle: -bundle -undefined dynamic_lookup
2017-08-18 21:09:53 +02:00
bubnikv
e2a685b8bb
CMake build system: Fixes for OSX.
2017-08-18 16:59:36 +02:00
bubnikv
3dbc93c663
CMake: Aadd local-lib to PATH and PERL5LIB environment variables,
...
so the locally installed modules (mainly the Alien::wxPerl) will be reached.
2017-08-18 14:34:54 +02:00
bubnikv
cb1bc0aaf8
CMake build system, initial placeholder for slic3r C binary.
2017-08-18 13:32:35 +02:00
bubnikv
428b7d3f9d
CMake: Added all header files to the particular libraries.
2017-08-18 12:41:01 +02:00
bubnikv
2a3d2fb8c1
CMake: Split the globs into separate libraries.
2017-08-18 11:39:24 +02:00
Vojtech Bubnik
952ca18bf9
Modified to compile on Ubuntu
2017-08-17 19:43:14 +02:00
bubnikv
94483202ec
CMake build system: Always use the system libexpat on Linux.
2017-08-17 18:33:15 +02:00
bubnikv
c0f099c2cf
CMake conversion, further steps: Now it compiles on Visual Studio 2013.
2017-08-17 18:27:51 +02:00
bubnikv
bb36e78428
Further CMake integration, split the xs CMakeFiles.txt to
...
FindAlienWx.cmake and FindPerlEmbed.cmake for easier Perl integration.
2017-08-17 13:30:46 +02:00
bubnikv
5673205d2e
Initial implementation of a CMake build system for the Slic3r XS module.
...
Based on https://github.com/CReimer/Slic3r/tree/makefile_pr
Big thanks to @CReimer for his huge effort.
2017-08-16 19:05:08 +02:00
bubnikv
507f2ff45e
Comprimed the previous pull request.
2017-08-14 12:56:09 +02:00
redPrint7
fdc7036fe3
Update WipeTowerPrusaMM.cpp ( #464 )
...
Resolves compile error on Win XP / Win 7 with native toolchain MinGW32-w64 on perl 5.26 or Citrusperl 5.24.
2017-08-14 12:54:19 +02:00
bubnikv
3b54b68b59
Merged new methods for handling menus with icons,
...
merged "Use submenus for listing options in dropdown menu." #3905
thanks @alexrj
Adapted the "Use submenus" code to sort the menus in the same order
as they appear in the parameter tabs.
2017-08-04 16:28:01 +02:00
bubnikv
8d5e5519f2
Fix of compilation on Windows 32bit: Include windows.h for the declaration
...
of MultiByteToWideChar.
2017-08-03 19:49:41 +02:00
bubnikv
1385018724
Unicode handling:
...
Removed the Perl dependencies on Encode, Encode::Locale and Unicode::Normalize.
Added dependency on boost::locale.
Added encode_path, decode_path, normalize_utf8 functions to Slic3r.xs
Slic3r.xs has been made mostly utf8 safe by using the boost::nowide library,
thanks to @alexrj for the idea.
Simplified the encode_path / decode_path stuff:
wxWidgets are unicode already, so there is no need to decode_path() from it.
Perl / win32 interfacing is non-unicode, so decode_path() is executed
on ARGV just at the beginning of the perl scripts.
2017-08-03 17:31:31 +02:00
bubnikv
31085fb1d7
Ported some ModelObject methods from Perl to C++.
...
Added some utility functions to TriangleMesh, thanks to @alexrj
Some porting to C++ based on work by @alexrj.
2017-08-02 16:05:18 +02:00
bubnikv
777023c7a8
Ported PrintObject::prepare_infill & combine_infill from Perl to C++.
2017-08-02 14:24:32 +02:00
bubnikv
71f99423c5
New feature: Bridging angle override through a bridge_angle config
...
variable. When set to zero, the usual automatic bridge detection applies.
The bridging angle override may be set at the Infill->Advanced settings,
or through a modifier mesh.
2017-07-31 16:23:52 +02:00
bubnikv
75c72bc59b
Fix of "MM incorrect extruder temperature"
...
https://github.com/prusa3d/Slic3r/issues/443
Change of the PlaceholderParser:
All vector configuration values stored into the PlaceholderParser
are expected to be addressed by the extruder ID, therefore
if a vector configuration value is addressed without an index,
a current extruder ID is used.
Also a small fix of fan handling: The fan speed is set to zero
at the start of the G-code if the cooling for the initial extruder
is disabled.
2017-07-31 15:42:55 +02:00