Commit graph

1239 commits

Author SHA1 Message Date
Lukas Matena
0e9e487930 First implementation of wipe tower rotation 2017-11-28 17:32:11 +01: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
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
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
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
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
2a3d2fb8c1 CMake: Split the globs into separate libraries. 2017-08-18 11:39:24 +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