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
bubnikv
7181f5d163
PrusaControl file format: Added multi-material support.
2017-07-28 15:48:49 +02:00
bubnikv
812a2c7cbd
Further implementation of FillRectilinear3.
2017-07-28 15:47:59 +02:00
bubnikv
137aab9631
Fixed compilation on Linux
2017-07-27 13:21:48 +02:00
bubnikv
a6ea01a23f
Moved some math macros (sqr, lerp, clamp) to libslic3r.h
...
Added UNUSED macro to libslic3r.h, used it to reduce some compile warnings.
Split the Int128 class from Clipper library to a separate file,
extended Int128 with intrinsic types wherever possible for performance,
added new geometric predicates.
Added a draft of new FillRectilinear3, which should reduce overfill near the perimeters in the future.
2017-07-27 10:39:43 +02:00
bubnikv
969e3f4a80
Fixed "Fill angle of any number other than an Integer does not work"
...
https://github.com/prusa3d/Slic3r/issues/427
Also enabled floating point rotation angle for supports.
2017-07-20 13:38:10 +02:00
bubnikv
6bb773d0dd
Prusa MM Wipe Tower, Improvements of the 1st layer:
...
Thiner priming line along the wipe tower,
relatively thick infill at the 1st layer to improve adhesion.
2017-07-20 12:58:51 +02:00
bubnikv
aaefb76888
Fixed test cases after change of the "sane" extrusion widths.
...
Changed the default perimeter / infill overlap to 25%.
2017-07-20 11:03:54 +02:00
bubnikv
ac672d9dc5
Changed the default "sane" extrusion width parameters to
...
1x nozzle_dmr for support and top infill,
and 1.125x nozzle_dmr for the rest.
This corresponds roughly to the default values tuned for the Prusa MK2
for normal prints.
2017-07-19 16:06:29 +02:00
bubnikv
2f2c0ddc99
Refactored Fill / Flow for readability.
...
Added an "overlap" member variable to fill classes in the preparation
for futher move of the "infill / perimeter" overlap to the Fill class.
Moved the orientation predicates from Fill to Geometry.
2017-07-19 15:53:43 +02:00
bubnikv
9c1b1829cf
PerimeterGenerator - a bit of refactoring for readability.
2017-07-19 15:42:49 +02:00
bubnikv
81823fe7df
Reduced the content of Geometry.pm, removed unused Perl subroutines.
...
Reduced the use Slic3r::Geometry and use Slic3r::Geometry::Clipper
clauses to only reference used subroutines.
2017-07-19 10:45:39 +02:00
bubnikv
2c82a327dd
Fix of "Wipe Tower ... only supported ... .4 nozzle" error when slicing
...
a non .4mm nozzle single extruder (Stock MK2S) print
https://github.com/prusa3d/Slic3r/issues/426
The constraint for the "Wipe Tower" checkbox has been raised, so
one will get this error message only if the printer settings has more
than one extruder configured, as the wipe tower does not get generated
for a single extruder print.
2017-07-17 09:07:18 +02:00
bubnikv
ed73f0b6ef
Fix of "Modifier meshes don't work for speed modifications"
...
https://github.com/prusa3d/Slic3r/issues/298
2017-07-14 17:30:54 +02:00
bubnikv
40a882d01e
Experimental feature, which may make the Clipper offsets run faster
...
due to avoiding the 128bit multiply operations:
A filtered predicate is tried to calculate SlopesEqual()
to minimize the invocation of 128bit multiply operations.
2017-07-13 15:52:19 +02:00
bubnikv
bd93d2f334
Fix of "Cooling fan problem Slic3r 1.35.5.16 "
...
https://github.com/prusa3d/Slic3r/issues/418
This is a regression of the cooling buffer changes done for multi-material
(supporting different cooling settings for different filaments)
2017-07-13 12:11:00 +02:00
bubnikv
c159165780
A bit of clean-up in GCode.cpp
2017-07-11 11:42:55 +02:00
bubnikv
c52c31a855
A bit of clean-up in FillRectilinear2.cpp
2017-07-11 11:42:21 +02:00
bubnikv
c7d16699a4
When setting an override extruder in the Object Settings dialog,
...
don't apply this extruder to supports. This did not make sense
as the new "don't change tool (0)" extruder choice fits well for non-soluble
and the soluble supports should not be overriden as well.
2017-07-11 11:41:23 +02:00
bubnikv
41f50b246c
Inlined Surface::any_internal_contains / any_bottom_contains
2017-07-10 13:15:36 +02:00
bubnikv
7c1350d007
Fixed "Too much support generated for buildplate only supports"
...
https://github.com/prusa3d/Slic3r/issues/359
2017-07-07 18:06:41 +02:00
bubnikv
774c69e3c6
Fix of "Problem with larger brim overlapping "
...
https://github.com/prusa3d/Slic3r/issues/373
2017-07-07 16:40:23 +02:00
bubnikv
434f538919
Fix of soluble interface / non-soluble support:
...
The non-soluble support with "don't care" extruder will preferably
be printed with a non-soluble extruder, if possible without a tool change.
2017-07-07 13:22:00 +02:00
bubnikv
abcd746774
Fix of
...
Overhang threshold not utilized after 1.34.1
https://github.com/prusa3d/Slic3r/issues/360
"Overhang threshold" and "Enforce support" don't work
https://github.com/prusa3d/Slic3r/issues/273
2017-07-07 10:45:39 +02:00
bubnikv
e78839d2fc
Fixed a regression after porting GCode generator to C++
...
Not lifting extruder after printing complete individual objects
https://github.com/prusa3d/Slic3r/issues/400
2017-07-05 11:58:00 +02:00
bubnikv
0ad4e9d51f
Refactored the cooling buffer: Removed ElapsedTime.
2017-06-30 20:01:32 +02:00
bubnikv
bf9027ff2d
Fix of a cooling buffer over multiple extruders.
2017-06-30 19:07:14 +02:00
bubnikv
115deee252
FLT_MAX strikes again
2017-06-30 17:14:13 +02:00
bubnikv
1158ce41df
Finalized implementation of a cooling buffer for multiple extruders
...
with different settings.
2017-06-30 17:05:58 +02:00
bubnikv
ab21a253e0
Hopefully finally fixed reordering of the multi-material parts.
2017-06-26 16:44:16 +02:00
bubnikv
8160db23cc
Implementation of "XY size Compensation for first layer"
...
https://github.com/prusa3d/Slic3r/issues/190
2017-06-26 16:28:10 +02:00
bubnikv
32fa84c5a5
Fix of https://github.com/alexrj/Slic3r/issues/4043 , thanks to @lordofhyphens.
...
Further refactoring of the cooling logic to collect per extruder data.
2017-06-23 10:13:09 +02:00
bubnikv
39b9341359
Include the wipe tower print time into the cooling time.
...
Further refactoring of Extruder class.
2017-06-22 15:18:37 +02:00
bubnikv
0454cc95f9
Ported the cooling changes from @alexrj: Don't slow down the external
...
perimeters if not necessary, don't take the bridging time into account
when slowing down the print.
Removed Extruder & GCodeWriter Perl bindings.
Improved Extruder for constness.
Refactored GCode::m_elapsed_time to struct ElapsedTime.
2017-06-22 12:59:23 +02:00
bubnikv
c1146e298b
Set the bed temperature based on the active extruder settings.
...
https://github.com/prusa3d/Slic3r/issues/157
2017-06-21 17:45:55 +02:00
bubnikv
f0325575c2
Slic3r has been modified to propagate the following filament specific
...
values to GCode generator, one per active extruder:
bed_temperature
bridge_fan_speed
cooling
disable_fan_first_layers
fan_always_on
fan_below_layer_time
first_layer_bed_temperature
max_fan_speed
min_fan_speed
min_print_speed
slowdown_below_layer_time
Now it remains to extend Slic3r to correctly apply these values.
2017-06-21 16:15:39 +02:00
bubnikv
0bd2bb1e8e
Compilation issue on Linux & OSX
...
https://github.com/prusa3d/Slic3r/issues/368
2017-06-21 14:12:11 +02:00
bubnikv
b12e4689e8
Fix of changing the order of volumes of a multi-volume part:
...
The 3D preview scene was not updated properly.
2017-06-21 14:10:22 +02:00
bubnikv
7ca02bda0f
Fix of a "split" function issue.
...
1) Load a multi-part stl
2) Rotate it by 90 degrees
3) Split it.
Before this fix, the split object jumped away from the print bed.
This sound similar to
https://github.com/prusa3d/Slic3r/issues/309
2017-06-19 14:26:19 +02:00
bubnikv
cb43f19a90
Fixed a variable layer height profile update issue.
...
https://github.com/prusa3d/Slic3r/issues/358
2017-06-15 20:15:53 +02:00
bubnikv
b724d789fd
New feature: Splitting an object into a multi-part volume.
2017-06-15 15:38:15 +02:00
bubnikv
a1f6403463
Fix of a wipe tower - wipe tower shrinking by the amount of material
...
wiped into the zig-zag pattern.
2017-06-15 10:53:37 +02:00
bubnikv
b8369ab19a
gcc and clang did not like throwing std::exceptions with a cstring arugment
2017-06-14 20:33:20 +02:00
bubnikv
2ac981e422
Improved error handling when importing configuration from a G-code.
2017-06-14 20:18:46 +02:00
bubnikv
f7334f58d3
Finalized the config import from a G-code.
2017-06-14 18:53:11 +02:00
bubnikv
93dce7a2d3
Ported config load / stored to C++, thanks @alexrj
...
Implemented import of config values from the G-code.
2017-06-14 17:51:14 +02:00
bubnikv
c61e098066
Integrated the not yet accepted boost::nowide library, thanks @alexrj.
2017-06-14 16:24:49 +02:00
bubnikv
c431bf5982
Fixed missing default_region_config values exported into the g-code.
2017-06-14 15:16:43 +02:00
bubnikv
8a2a9abbd4
Fix of "Raft and support dont work together"
...
https://github.com/prusa3d/Slic3r/issues/314
There was an issue with raft & soluble support.
Also there was a bug, where the support was not generated correctly
after a change of the support Z gap.
2017-06-13 19:29:15 +02:00
bubnikv
6cb7583756
Reverted the "set_and_wait_temperatures" configuration to match
...
the behavior of the @alexrj slic3r.
2017-06-13 13:46:04 +02:00
bubnikv
f7831240e1
Fixed compilation on OSX
2017-06-13 12:09:49 +02:00
bubnikv
a4992602ee
Auto arrange: Do at least something if the objects do not fit the bed.
...
Thans @alexr
https://github.com/prusa3d/Slic3r/issues/336
2017-06-13 11:43:25 +02:00
bubnikv
5cae4cc614
Fix of https://github.com/prusa3d/Slic3r/issues/285
...
Refactored Model.cpp/hpp to C++x11 loops,
simplified the mesh / bbox handling.
2017-06-13 11:35:24 +02:00
bubnikv
21ddcb8487
Fix of a layer height test to allow / disable the wipe tower.
2017-06-12 14:33:33 +02:00
bubnikv
f408f08850
Disabled the new Slic3r version check until we have a server set up
...
for the Slic3r Prusa Edition.
Hopefully a fix of https://github.com/prusa3d/Slic3r/issues/258
by moving the 2D thumbnail generation to the main thread and
forcing the simple 2D convex hull for even the small objects.
2017-06-12 14:25:35 +02:00
bubnikv
881a5c531b
Fix of the last commits:
...
1) FLT_MAX replaced with limits,
2) apply_config is called by the test case harness to update layer height profile.
2017-06-09 14:24:00 +02:00
bubnikv
958c6553e7
Hopefully a fix of
...
"Layer editing does not trigger reslicing with Background Processing enabled"
https://github.com/prusa3d/Slic3r/issues/293
2017-06-09 13:27:35 +02:00
bubnikv
2bbcd49278
Fix of a crash in pressure equlizer filter.
...
https://github.com/prusa3d/Slic3r/issues/339
2017-06-08 20:28:21 +02:00
bubnikv
dd41406a55
Fixed regression in invalidation of slicing steps.
2017-06-08 17:46:28 +02:00
bubnikv
89dcd3e8b1
Implemented raft support for the wipe tower
...
https://github.com/prusa3d/Slic3r/issues/324
Implemented a correct layer height preview for the wipe tower layers,
if the wipe tower layer height is not constant due to the application
of raft.
2017-06-08 16:58:29 +02:00
bubnikv
f9f0940297
Implemented rotation of the support structure.
2017-06-08 14:02:37 +02:00
bubnikv
a15e6127cf
Relaxed the requirements on the layer height for the Wipe Tower to
...
the span of 0.15mm to 0.35mm.
2017-06-08 12:10:34 +02:00
bubnikv
8b5f7f0fb2
Limit the object movement to the vincinity of the print bed.
2017-06-08 11:02:29 +02:00
bubnikv
53d08d1883
New BoundingBox3 class.
2017-06-06 19:12:46 +02:00
bubnikv
baf27ff021
Fix of View menu not working https://github.com/prusa3d/Slic3r/issues/307
2017-06-06 13:39:50 +02:00
bubnikv
3e764ada0c
For the wipe tower to work, verify that all objects are sliced
...
with the same layer heights.
Also enforce layer synchronization for soluble supports.
2017-06-06 11:40:35 +02:00
bubnikv
72f348658f
Testing for the required parameter combinations before enabling the wipe tower.
...
The wipe tower needs to be made more general in the future to overcome
these limitations.
2017-06-06 10:36:14 +02:00
bubnikv
88c9ae6ca6
Fix of
...
https://github.com/prusa3d/Slic3r/issues/315
a crash if the max_layer_height is left to a default value of zero.
2017-06-05 12:02:26 +02:00
bubnikv
ad3be1a69e
Implemented filament start / g-codes.
...
https://github.com/prusa3d/Slic3r/issues/265
https://github.com/prusa3d/Slic3r/issues/319
Based on the implementation by @lordofhyphens
19eea19d91
2017-06-05 11:30:57 +02:00
bubnikv
b5f38dd23f
Fixed the "avoid crossing perimeters" bug introduced in Slic3r 1.34.1.24
...
https://github.com/prusa3d/Slic3r/issues/311
https://github.com/prusa3d/Slic3r/issues/317
https://github.com/prusa3d/Slic3r/issues/323
2017-06-02 13:33:19 +02:00
bubnikv
ef73bb404b
Fixed compilation on gcc.
2017-06-01 16:43:21 +02:00
bubnikv
02592378e2
Improved "ensure vertical wall thickness" feature for multi material:
...
If the "interface_shells" feature is disabled, the "ensure vertical wall thickness"
feature will not add full infill over internal shells.
Fixed some issues with delayed loading of 3d scenes.
2017-06-01 16:31:29 +02:00
bubnikv
556f40bf00
Clean-up of print step invalidation.
2017-05-31 17:02:23 +02:00
bubnikv
c8b934f8d3
Yet more refactoring of Print / PrintObject in regard to
...
C++11 loops, configuration and step invalidation.
2017-05-31 12:55:59 +02:00
bubnikv
0a692cc497
Regression fix of percent config values serialization.
2017-05-30 21:29:43 +02:00
bubnikv
102329c54d
Further refactoring, C++11 conversion and code simplification.
2017-05-30 20:09:34 +02:00
bubnikv
e1ca1a82fb
Fixed a regression bug from the last commit. Some more code simplification
...
and inlining.
2017-05-30 18:33:17 +02:00
bubnikv
efb1fd2066
Fixed order of loading the configs into Print / PrintObjects
...
and loading the 3d print path preview.
2017-05-30 17:24:50 +02:00
bubnikv
41a4df0a38
Print, PrintObject: Invalidation of steps, when chained, will now return
...
a correct invalidated / not invalidated flag.
Rewrote the step valid state from std::set to a fixed array for performance
reasons.
2017-05-30 17:17:26 +02:00
bubnikv
e32632b9d9
Config.cpp/h - inlined short functions, converted loops to C++11,
...
fixed some constness issues.
2017-05-30 17:04:36 +02:00
bubnikv
2178180a19
Wipe tower: Wipe less than usual amount of material if the wipe
...
is followed by the final sparse zig-zag tower section.
2017-05-30 10:51:38 +02:00
bubnikv
0120f3ed92
Fix of the final purge over the wipe tower.
2017-05-30 09:25:34 +02:00
bubnikv
3d6c997012
fixed compilation on Windows
2017-05-25 22:54:42 +02:00
bubnikv
2f4ff6577a
With single_extruder_multi_material enabled,
...
don't append a tool selection (Txx) to the extruder temperature
settings (M104 and M109).
2017-05-25 22:52:28 +02:00
bubnikv
e000b22578
Implemented wipe tower print path preview.
2017-05-25 22:27:53 +02:00
bubnikv
7d64c465c0
New config field extruder_color for preview of extruder assignment.
2017-05-24 15:20:20 +02:00
bubnikv
2713aa1772
When generating a g-code for a layer, collect layers of multiple objects
...
with not exactly the same print_z, but support a slight deviation.
2017-05-23 17:09:43 +02:00
bubnikv
ca590cb559
Refactored ToolOrdering to a class,
...
layers with print_z closer than EPSILON are merged and printed together.
2017-05-23 15:00:01 +02:00
bubnikv
aad9f61bad
Wipe Tower: Fixed some ordering issue in the G-code writer.
2017-05-22 20:56:42 +02:00
bubnikv
c9c4105289
Fixed an excessive retract / derectract length
...
with the new retract_before_wipe value set to nonzero.
2017-05-22 18:16:35 +02:00
bubnikv
ff9d565ba7
Implemented UI for ordering volumes
...
https://github.com/prusa3d/Slic3r/issues/277
2017-05-20 22:02:04 +02:00
bubnikv
dfc4717308
Fixes for Multi Material ramming, increased separation of wipe lines.
2017-05-20 18:59:05 +02:00
bubnikv
a99b006b98
Implemented https://github.com/prusa3d/Slic3r/issues/199
...
by merging the work by @lordofhyphens done on https://github.com/alexrj/Slic3r/issues/3268
2017-05-20 15:29:25 +02:00
bubnikv
70db88dd90
Improved retract handling on bowden extruders:
...
Separated deretract speed from a retract speed,
allowed a partial retract before wipe.
2017-05-19 19:24:21 +02:00
bubnikv
8bd3dec331
Extrude brim of the wipe tower before any other objects.
2017-05-18 21:22:48 +02:00
bubnikv
11307eb350
typo in default ramming sequence.
2017-05-18 19:49:55 +02:00
bubnikv
c28e4cb0f7
Increased extruder driver current for ramming over the multi material
...
wipe tower.
2017-05-18 19:05:44 +02:00
bubnikv
81701b400c
Prusa Multi Material: Improved path planning when jumping to the wipe tower.
2017-05-18 16:53:19 +02:00
bubnikv
e75d851bc4
Updated MANIFEST,
...
fixed some compiler warnings.
2017-05-17 20:06:33 +02:00
bubnikv
fdff937cb2
Fixed tool ordering for sequential prints.
2017-05-17 19:25:36 +02:00
bubnikv
34747b2015
Added ABS material to the Prusa Multi Material wipe tower.
2017-05-17 18:14:47 +02:00
bubnikv
66b619dfa4
Bugfix of tool ordering.
2017-05-17 17:21:55 +02:00
bubnikv
f27ec3f226
Prusa Multi Material wipe tower: Do an unretract before doing
...
the wipe tower things.
2017-05-17 16:59:56 +02:00
bubnikv
cb0a66b743
Initial implementation of a wipe tower preview UI.
2017-05-17 16:53:40 +02:00
bubnikv
7b6c9b3b3c
Fixes of the Prusa Multi Material wipe tower.
2017-05-17 16:45:37 +02:00
bubnikv
4bc827d1da
WipeTowerPrusaMM: Added some documentation, fixed minor issues.
2017-05-17 10:42:39 +02:00
bubnikv
7b152919a6
Changed handling of extruder temperatures
...
for single_extruder_multi_material printers.
Fixed some compilation errors on OSX.
Disabled re-slicing on change of new G-code only parameters.
2017-05-16 16:02:52 +02:00
bubnikv
21be680ac2
Fixes of G-code multi-tool ordering.
2017-05-16 15:30:03 +02:00
bubnikv
c22b6edeeb
Initial integration of the Prusa MultiMatrial Wipe Tower.
2017-05-16 13:45:28 +02:00
bubnikv
74346efccb
Fix of a multi-material g-code export.
2017-05-15 16:42:29 +02:00
bubnikv
60c65f6da7
Fixed crashes intruduced recently into G-code generator.
...
Added a template sort_remove_duplicates.
2017-05-15 11:32:59 +02:00
bubnikv
89e34ae1d6
Missing include for OSX.
2017-05-12 14:22:20 +02:00
bubnikv
ff0412b417
Support material - Fixed some compilation warnings, added new debbuging
...
SVG file outputs.
2017-05-12 11:18:32 +02:00
bubnikv
3b5f40710c
Support Generator: Fixed initial indices in search caches.
...
Changed the interface layer infill type to concentric for soluble supports.
2017-05-12 11:14:25 +02:00
bubnikv
46e8259b99
Fixing some missing layers with support material.
2017-05-12 11:09:24 +02:00
bubnikv
805179b9da
Wipe tower refactored to remove renundancies,
...
added comments.
2017-05-12 10:44:56 +02:00
bubnikv
b92aa20cef
Include <strings.h> on linux.
2017-05-10 16:15:14 +02:00
bubnikv
146039f402
Added Prusa MultiMaterial Wipe Tower. Now it is time to integrate it
...
into the G-code generator.
2017-05-10 15:54:59 +02:00
bubnikv
2f57ee60d1
Improved G-code generator for multi-material prints
...
to minimize tool switches.
2017-05-10 11:25:57 +02:00
bubnikv
18bb3c3244
Added Notes Tab to Printer Settings #210
2017-05-05 11:59:51 +02:00
bubnikv
60528c5c2a
Performance improvements of the MotionPlanner
...
(rewrote the Dijkstra shortest path algorithm to use a binary priority
heap instead of a dumb O(n^2) algorithm, added some bounding box tests
to avoid expensive in-polygon tests if possible).
2017-05-05 09:59:56 +02:00
bubnikv
0adc6cc65e
Provide own implementation of std::make_unique for older compilers.
2017-05-03 18:57:33 +02:00
bubnikv
867619fa40
missing include <memory>
2017-05-03 18:35:55 +02:00
bubnikv
e90279c513
Ported the G-code generator from Perl to C++.
...
Removed GCode.pm
Removed the Perl bindigns for AvoidCrossingPerimeters, OozePrevention, SpiralVase, Wipe
Changed the std::set of extruder IDs to vector of IDs.
Removed some MSVC compiler warnings, removed obnoxious compiler warnings when compiling the Perl bindings.
2017-05-03 18:28:22 +02:00
bubnikv
72ae3585e4
Removed a broken Arc Fitting feature.
...
Removed the questionable Pressure Advance feature. It is better to use the Pressure Advance implemented into a firmware.
Added a C++ implementation of GCodeReader and SpiralVase, thanks to @alexrj
Added a C++ implementation of GCodeTimeEstimator, thanks to @lordofhyphens
2017-04-26 14:24:31 +02:00
bubnikv
69c0f55679
Fixes loading of multi-part ASCII STLs.
...
https://github.com/prusa3d/Slic3r/issues/255
2017-04-18 10:53:31 +02:00
bubnikv
23be6233c8
Finalized the experimental "synchronize support layers with object layers"
...
feature (the support_material_synchronize_layers settings).
The feature is now enabled for the soluble supports only
(with support_material_contact_distance > 0).
Fixes https://github.com/prusa3d/Slic3r/issues/197
2017-04-10 12:00:07 +02:00
bubnikv
688fe3e2b2
Fixed some rare support issues connected with the 1st print layer.
...
Fixed support issue, where the XY gap was ignored for the top contact layers
and a fixed 50% was used instead.
2017-04-07 17:44:51 +02:00
bubnikv
ed2ee2f6f3
Merged support_fills with support_interface_fills.
...
When extruding supports, the support is interleaved with interface
if possible (when extruded with the same extruder).
Otherwise the base is extruded first.
2017-04-07 17:37:30 +02:00
bubnikv
7ffb3590c4
Finalized the Prusa Control project file format import.
2017-04-05 14:45:43 +02:00
bubnikv
f9023c0603
Removed some unused code.
2017-04-05 13:50:59 +02:00
bubnikv
6f5700a3a6
Fix of
...
https://github.com/prusa3d/Slic3r/issues/66
https://github.com/prusa3d/Slic3r/issues/181
Implemented filtering of the support structures expanded into a grid,
where the support parts leaked through the object wall are removed
after the fact.
2017-04-05 09:56:59 +02:00
bubnikv
5126c5018a
Provision for disabling TBB parallelization for debugging purposes.
2017-04-05 09:53:24 +02:00
bubnikv
74b95e9152
Adapted BoundingBox get_extents(const ExPolygons &expolygons)
...
to work even with empty polygons.
2017-04-05 09:52:06 +02:00
bubnikv
555560f63c
Simplification, C++11 beautification.
2017-04-05 09:51:03 +02:00
bubnikv
ef2cfdb0d1
C++11 beautification of loops.
2017-04-05 08:59:03 +02:00
bubnikv
47543cf82a
Operator< for Point
2017-04-05 08:57:59 +02:00
bubnikv
329f0b9cf4
Debugging output and asserts for TriangleMeshSlicer::slice().
2017-04-05 08:57:37 +02:00
bubnikv
bd9ee88e2f
Fix of https://github.com/prusa3d/Slic3r/issues/214
...
Dent in perimeters around a hole
Clipper Offset has been extended to remove tiny edges before the offset.
This is important as the tiny edges pose difficulty
for normal calculation, leading to various adverse effects like
kinks and dents in the offsetted contour.
2017-04-04 11:17:25 +02:00
bubnikv
70fcedb113
Fix of https://github.com/prusa3d/Slic3r/issues/232
...
Single layer of sparse support above dense support before model
2017-04-04 09:57:54 +02:00
bubnikv
1719952f49
Fixing "opening an obj file causes Slic3r to become stuck and use 100% on one core" #221
...
Extended the OBJ parser to triangulate quads. Higher order polygons are not supported though.
2017-04-03 10:05:22 +02:00
bubnikv
8ac1d37b10
Fixed crashes on OpenGL < 2 due to printing null pointers returned
...
by glGetString().
2017-03-31 15:29:34 +02:00
bubnikv
36416d77b8
Fixes of VBO rendering on Linux with wxWidgets & GTK
2017-03-30 10:25:52 +02:00
bubnikv
b60ae4745f
Fixed missing #include<assert.h>
2017-03-29 19:57:11 +02:00
bubnikv
3e347c33dc
Bundled Eigen library.
2017-03-29 18:19:57 +02:00
bubnikv
5dc899d64e
Reset wipe moves on tool change and on travel.
2017-03-29 17:45:38 +02:00
bubnikv
4bbb1f4b63
Rewrote next_highest_power_of_2 as a template as OSX had issues with
...
the previous implementation.
2017-03-28 18:02:26 +02:00
bubnikv
3ebf0ce7fd
Improved memory allocation efficiency of the 3D path preview generator.
2017-03-28 17:09:57 +02:00
bubnikv
1fb302d480
Reverted due to a failing test t\multi.t
2017-03-28 14:29:27 +02:00
bubnikv
40b75f6cee
Snapped the bottom interface layer print heights to the top interface
...
layer print heights to avoid too thin layer surfaces. The minimum layer
height at the nozzle page is maintained for the support layers.
Base layers are trimmed by the briding bottom surfaces.
2017-03-28 13:46:31 +02:00
bubnikv
9f7a5c7a6f
Some beautification and C++11 adaptation.
2017-03-28 13:25:10 +02:00
bubnikv
640698d28b
Fixing Zero extrusion print moves and overlapping regions in first layer
...
https://github.com/prusa3d/Slic3r/issues/184
No E distances generated when support is selected. bug?
https://github.com/prusa3d/Slic3r/issues/175
2017-03-27 14:34:07 +02:00
bubnikv
67126d6f48
Moved the NVIDIA and AMD hints to the slic3r.exe wrapper.
2017-03-27 09:06:24 +02:00
bubnikv
0dae43e4bc
Bugfix: when the Voronoi diagram contained very large coordinates we need to check whether they are greater than our allowed range and consider the Voronoi edges infinite in those cases, in order to prevent overflows.
...
https://github.com/alexrj/Slic3r/issues/3776
9ad1360e44
2017-03-24 09:32:30 +01:00
bubnikv
53832aff24
Documented the boost libraries required by Slic3r Prusa Edition
...
https://github.com/prusa3d/Slic3r/issues/88
2017-03-23 16:28:23 +01:00
bubnikv
b7d3ed26c6
Link boost & intel Thread Building Blocks statically by default
...
on Windows and OSX, dynamically on Linux.
This could be overidden by an environment variable
SLIC3R_DYNAMIC=1
2017-03-23 15:06:22 +01:00
bubnikv
9e0a690d2e
Simplified the skirt paths.
2017-03-23 12:35:00 +01:00
bubnikv
073d6d2d43
Fixed colors of the path preview.
2017-03-23 12:34:35 +01:00
bubnikv
1b3c651643
Fixed iusses in rendering print paths through VBOs for multiple objects.
2017-03-23 11:10:53 +01:00
bubnikv
3b5d1d0e25
Try to enforce the use of a high performance NVIDIA / ATI GPU
...
on dual graphic card laptops.
2017-03-23 10:28:08 +01:00
bubnikv
1fb3d00932
Fix of parsing ASCII STLs on Visual Studio 2013 with global optimization.
2017-03-22 17:57:27 +01:00
bubnikv
ed495663e8
Support generator parallelized.
2017-03-22 15:35:50 +01:00
bubnikv
04cd474708
Fixed some instance of simplify_polygons() invocation.
...
Geometry::deg2rad() made a template.
Some methods of Layer made inline.
Added a helper template remove_nulls().
2017-03-22 15:35:09 +01:00
bubnikv
039cd0ac5b
new GLShader.cpp,h
2017-03-20 14:48:17 +01:00
bubnikv
045de596e2
Use OpenGL 2.0 shaders for the layer height rendering.
...
Use OpenGL 2.0 shaders for the print path rendering for performance reasons.
2017-03-20 12:05:20 +01:00
bubnikv
56f845f3c1
Fixed the reports given by the build process if BOOST or TBB libraries
...
were not found.
https://github.com/prusa3d/Slic3r/issues/177
2017-03-17 22:49:43 +01:00
bubnikv
8e28bd36a2
Link XS with -framework OpenGL on OSX.
2017-03-16 14:26:16 +01:00
bubnikv
73de247a15
Enabled SLIC3R_GUI by default. This is required to enable the OpenGL 2.0
...
API through C++ GLEW.
2017-03-16 14:09:42 +01:00
bubnikv
7f7d2da5fe
Use Vertex Buffer Objects for rendering of 3D volumes if possible.
2017-03-16 14:02:28 +01:00
bubnikv
c32c7fa1dc
Fixed a typo.
2017-03-15 21:26:46 +01:00
bubnikv
93cab990c7
Fixed some memory allocation issues of the new C++ 3d path preview
...
(reserved memory has to be shrank around the collected data).
Initial implementation of the vertex buffer objects for the 3d path preview.
2017-03-15 20:45:03 +01:00
bubnikv
d18e10c7c9
Rewrote the OpenGL object rendering to indexed triangle / quad sets
...
for lower memory consumption.
Rewrote the print path 3D preview to generate these indexed triangle / quad
sets, possibly with at least as possible duplication of vertices,
with a crease angle of 45 degrees, leading to maximum 8% overshoots
at the corners.
2017-03-15 16:33:25 +01:00
bubnikv
e7a920fe16
Fixed some picking issues after porting GLVolumes to C++.
...
Initial interface for print paths visualization by VBOs.
2017-03-14 10:11:08 +01:00
bubnikv
79e6f23fdc
code beautification, C++11 loops
2017-03-13 16:03:44 +01:00
bubnikv
c96d794604
BoundingBox, Print - methods inlined, added const accessors.
2017-03-13 16:03:11 +01:00
bubnikv
e6fddd364d
Volume rewritten from Perl to C++,
...
generation of vertex arrays from paths rewritten from Perl to C++,
parallelized.
2017-03-13 16:02:17 +01:00
bubnikv
50976e1b5a
Parallelized slices_to_fill_surfaces_clipped()
2017-03-08 23:02:27 +01:00
bubnikv
720459183e
Parallelized detection of extra perimeters.
2017-03-08 22:38:08 +01:00
bubnikv
a956186c76
Parallelized TriangleMeshSlicer::make_expolygons
2017-03-08 21:55:38 +01:00
bubnikv
336f86c101
Fixed a newly introduced memory leak into the Clipper library,
...
made all Clipper interfaces non-virtual.
2017-03-08 20:27:03 +01:00
bubnikv
4426e47e2a
Fixed a race condition in the parallelization
...
of the "ensure vertical wall thickness" feature.
2017-03-08 18:10:39 +01:00
bubnikv
20796b89c1
Improved debugging of slicing.
2017-03-08 15:58:40 +01:00
bubnikv
798bca561b
Parallelized the slow discover_vertical_shells()
2017-03-08 14:54:04 +01:00
bubnikv
f200781436
C++ compiler suppressed default constructor and assignment operator
...
for Surface after the move operators were implemented. Added
those operators manually.
2017-03-08 14:22:49 +01:00
bubnikv
52b76930aa
Simplify_slices rewritten to C++, parallelized.
...
Added some move methods to Surface class.
2017-03-08 13:43:49 +01:00
bubnikv
4331f38912
Fixing of slicing errors ported to C++, parallelized.
2017-03-08 11:56:42 +01:00
bubnikv
73439b7acb
Parallelized PrintObject::_slice(), make_slices() code.
2017-03-08 10:37:47 +01:00
bubnikv
1e6cf0cd98
TriangleMeshSlicer
...
replaced the vectors of vectors by vectors of indices to a continuous memory,
using binary search to get to an index.
2017-03-08 09:47:32 +01:00
bubnikv
edd7cabf68
Trace TriangleMeshSlicer at loglevel debug (nr. 4)
2017-03-07 22:50:32 +01:00
bubnikv
dfba2cb6b2
Parallelized PrintObject::detect_surfaces_type()
2017-03-07 21:46:45 +01:00
bubnikv
65c024f7cf
Parallelize PrintObject::process_external_surfaces()
2017-03-07 17:43:43 +01:00
bubnikv
109013bed7
Yet another fix of the static linking on Windows.
2017-03-07 16:33:36 +01:00
bubnikv
32b0428303
Yet another fix of a static TBB linkage.
2017-03-07 14:50:32 +01:00
bubnikv
a4dea4b7fc
Fix of intel TBB linking.
2017-03-07 14:31:08 +01:00
bubnikv
32ebb1e2c7
Fix of a static library extension of the INtel Thread Building Blocks on OSX/Linux.
2017-03-07 14:13:30 +01:00
bubnikv
cb1a6eae1e
Added dependencies on the Intel Thread Building Blocks.
...
Changed the C++ parallelization code to Intel Thread Building Blocks.
2017-03-07 13:03:14 +01:00
bubnikv
8a42c0ad9f
Implementation of scaling factor of objects into an AMF file.
...
https://github.com/prusa3d/Slic3r/issues/7
2017-03-06 17:35:38 +01:00
bubnikv
c23c0ee7d2
Fix of https://github.com/prusa3d/Slic3r/issues/172 ?
2017-03-06 15:03:31 +01:00
bubnikv
d20a9d73d4
Fix for OSX: clang requires the member operator< and == to be const.
2017-03-05 16:34:16 +01:00
bubnikv
a9a20003c0
Clipper memory optimization: Own memory manager for OutPt objects.
...
Allocate OutPt by chunks of 32, reuse the released OutPt objects.
2017-03-03 23:06:51 +01:00
bubnikv
f24427cd76
Another Clipper optimization. When adding a set of paths
...
to Clipper, allocate the edges in a single continuous vector.
2017-03-03 21:40:40 +01:00
bubnikv
fa4df36963
Fix: Orientation() has been declared inline, therefore not exported.
2017-03-03 20:39:04 +01:00
bubnikv
5580fd64b3
Clipper library:
...
Added some comments,
some methods were made inline, tiny methods moved to the header as inline,
dynamic allocation replaced with std:: containers,
changed some loops to the condensed C++11 syntax.
2017-03-03 20:38:53 +01:00
bubnikv
fddd7c620f
Some optimization of memory allocation, some reduction / inlining of short functions.
2017-03-03 20:38:40 +01:00
bubnikv
1909c75c21
TriangleMeshSlic3r used unordered_map, which was terribly horribly shamelessly
...
slow on mingw. Rewrote using std::vector<>, which is blazing fast.
2017-03-03 17:36:07 +01:00
bubnikv
a219ae3d27
Set boost tracing level on DLL initialization to errors only.
2017-03-03 14:38:25 +01:00
bubnikv
4de33effdc
Tracing of TriangleMesh repair.
2017-03-03 13:31:51 +01:00
bubnikv
930e6752d9
Reverted unification of positive and negative zeros when loaded
...
from an STL file.
2017-03-03 12:54:00 +01:00
bubnikv
4d00aa1800
More tracing of the slicing process.
2017-03-03 12:53:05 +01:00
bubnikv
062a6628e5
Revert "Some optimization of memory allocation, some reduction / inlining of short functions."
...
This reverts commit bc19e97d45
.
2017-03-02 20:44:53 +01:00
bubnikv
473624fcd7
Revert "Clipper library:"
...
This reverts commit 90a415ae10
.
2017-03-02 20:44:43 +01:00
bubnikv
cd7134e6f6
Revert "Fix: Orientation() has been declared inline, therefore not exported."
...
This reverts commit c2ee73d211
.
2017-03-02 20:44:28 +01:00
bubnikv
c2ee73d211
Fix: Orientation() has been declared inline, therefore not exported.
2017-03-02 17:34:53 +01:00
bubnikv
90a415ae10
Clipper library:
...
Added some comments,
some methods were made inline, tiny methods moved to the header as inline,
dynamic allocation replaced with std:: containers,
changed some loops to the condensed C++11 syntax.
2017-03-02 17:11:46 +01:00
bubnikv
4287362aa6
Extended tracing of the slicing process.
2017-03-02 16:52:24 +01:00
bubnikv
d430767fa7
Define a surface type count constant to be able to address a vector
...
with a surface type.
2017-03-02 16:42:26 +01:00
bubnikv
83a80a9b7d
Optimization of LayerRegion::slices_to_fill_surfaces_clipped()
...
Added some run time tracing through boost::log.
2017-03-02 16:41:16 +01:00
bubnikv
73f603d90e
Fix of #117 : A large fractal pyramid takes ages to slice
...
The Clipper library has difficulties processing overlapping polygons.
Namely, the function Clipper::JoinCommonEdges() has potentially a terrible time complexity if the output
of the operation is of the PolyTree type.
This function implmenets a following workaround:
1) Peform the Clipper operation with the output to Paths. This method handles overlaps in a reasonable time.
2) Run Clipper Union once again to extract the PolyTree from the result of 1).
2017-03-02 16:39:43 +01:00
bubnikv
258252cbf3
Shiny Profiler: Disable exponential dumping of the timing data.
2017-03-02 16:35:15 +01:00
bubnikv
349cf841d6
Need to include '-lboost_filesystem' in build #166
2017-03-02 16:33:50 +01:00
bubnikv
07fa15806f
Utility function SVG::export_expolygons() to paint a set of possibly
...
overlapping ExPolygons with attributes.
2017-03-02 16:32:43 +01:00
bubnikv
dff5bda202
The Shiny profiler is not thread safe. Disable parallelization if
...
SLIC3R_PROFILE is enabled.
2017-03-02 16:31:29 +01:00
bubnikv
bc19e97d45
Some optimization of memory allocation, some reduction / inlining of short functions.
2017-03-01 14:27:08 +01:00
Alessandro Ranellucci
6a90fceaaf
Ported expanded_output_filepath() to C++/XS
2017-02-28 10:38:32 +01:00
Alessandro Ranellucci
6f11969257
Restore [input_filename] in custom G-code as well
2017-02-28 10:28:29 +01:00
AndylgTom
4528f35bc0
Update Config.xsp ( #50 )
...
For fix to display Unicode in category
2017-02-28 10:06:03 +01:00
bubnikv
4010dd71f6
Support Prusa Control project files (.PRUS) by the GUI.
2017-02-27 16:09:22 +01:00
bubnikv
c9465cf7fa
Fixed typos in AMF export.
2017-02-27 01:39:20 +01:00
bubnikv
ee619701d8
Got rid of the Perl Format::STL, Format::AMF, Format::OBJ for good.
2017-02-27 01:03:00 +01:00
bubnikv
9ea570ea4e
Fix of a warning in expat parser, which turns to an error
...
on some Perl/XS installations (strawberry Perl 64bit)
2017-02-26 23:35:44 +01:00
bubnikv
2f67a16c6f
Fixing compilation issues.
2017-02-26 23:13:31 +01:00
bubnikv
2c932b1bf4
Fixed a bug in AMF serialization.
2017-02-26 22:59:25 +01:00
Joseph Lenox
1f1b6c8036
Fixed a missing include.
2017-02-26 22:40:10 +01:00
bubnikv
1b89c08bfc
TriangleMesh.cpp/h:
...
New methods: has_multiple_patches(), number_of_patches()
Improved constness of file access methods.
Reduced some memory allocations costs.
Fixed some crashes of the cut() method on invalid meshes, Slic3r crashes on the unstable triangulation now.
Documented.
2017-02-26 22:17:39 +01:00
bubnikv
5b98f1a068
Some utility methods to help loading models from the disk.
...
Not quite sucessfull try to fix the crahes on mesh cut.
2017-02-26 22:03:03 +01:00
bubnikv
efb02f71f0
AdMesh:
...
unify positive and negative zeros in stl_check_facets_exact() and stl_check_facets_nearby()
New function stl_transform() by a 3x4 matrix.
Some constness improvements.
2017-02-26 21:59:09 +01:00
bubnikv
25dfe7278c
Initial rewrite of the file accessors from Perl to C++.
...
This is especially important for the extremely slow AMF parser.
Also there is a new file handler for the Prusa Control 'PRUS' format.
2017-02-26 21:46:33 +01:00
bubnikv
91af2ddd1e
Include expat parser into the Slic3r source code tree.
...
Having the expat parser inside the Slic3r source base makes life easier
on non-Linux systems and it also allows us to configure the Expat
parser for maximum performance by disabling all unneeded features.
2017-02-26 21:42:52 +01:00
bubnikv
82aed45816
Hopefully fixes the aligned seam:
...
https://github.com/prusa3d/Slic3r/issues/74
The way it works now is following:
Slic3r will add some negative penalty to all perimeter points near the last seam.
Once the perimeter point with minimum penalty is found, its penalty is compared
to a point closest to the last seam. If the penalty of the point
closest to the last seam is nearly as good as the minimum penalty,
the point closest to the last seam is picked instead. This heuristics
will hide the seams into corners if possible, but if not possible, it will
strive to align the seams precisely.
2017-02-22 16:35:07 +01:00
bubnikv
523b7f3ebc
Fix of a typo specific to a debugging build.
2017-02-22 16:13:10 +01:00
bubnikv
f7acb20e23
Changed defaults for the perimeter/infill overlap (15-55%)
...
and for the infill pattern (honeycomb->stars)
2017-02-22 16:06:35 +01:00
bubnikv
a4dd6c7ce5
Added missing get_volume() method to the PrintObject Perl interface.
2017-02-22 16:05:14 +01:00
Alessandro Ranellucci
4a84643894
Fixed regression causing slowdown_below_layer_time to be ignored. #3515 #3443
2017-02-22 15:29:14 +01:00
Alessandro Ranellucci
8174c05df4
Command for reloading an object from file. #1466
2017-02-21 17:58:48 +01:00
Alessandro Ranellucci
a8edff1e84
Always retract in bottom layers. #3053 #3618
2017-02-21 16:37:31 +01:00
Joseph Lenox
c575a1f1d6
Added make_sphere, generates a mesh with specified step angle and raidus rho.
2017-02-21 16:29:09 +01:00
Alessandro Ranellucci
ceb72da632
Implement clone() for Fill classes
2017-02-21 16:22:54 +01:00
Joseph Lenox
716dc2e650
Made cube and cylinder static functions of the package, not some specific TriangleMesh object.
2017-02-21 16:11:52 +01:00
Joseph Lenox
f44df28a96
Fixed mesh generation to generate cylinders.
2017-02-21 16:10:54 +01:00
Joseph Lenox
b91b98b21e
Added prototype make_cylinder()
2017-02-21 16:10:38 +01:00
Joseph Lenox
3bb237deee
Added new constructor to TriangleMesh that accepts vectors of Points and make_cube function to make a new simple cube mesh.
2017-02-21 16:10:14 +01:00
Alessandro Ranellucci
a65c9ba083
Ported CoolingBuffer to C++/XS
2017-02-21 14:02:47 +01:00
bubnikv
8aae5bdb28
The variable layer editing shader was made OpenGL 2.0 compatible.
...
Fixed a bug in the scaling of colors for the variable layer editing.
2017-02-21 09:39:28 +01:00
bubnikv
006173342c
Fixes: Infill patterns triangles/stars seem to be mixed-up
...
https://github.com/prusa3d/Slic3r/issues/143
2017-02-20 22:36:34 +01:00
bubnikv
171148d3a6
Changed the platte of the variable layer height visualization,
...
green shall indicate a thin layer.
2017-02-20 22:22:23 +01:00
bubnikv
440a5eb2a0
Fixes an ugly infinite loop issue.
...
https://github.com/prusa3d/Slic3r/issues/142
2017-02-19 21:45:38 +01:00
bubnikv
70229be9bc
Added SystemInfo dialog,
...
a new SLIC3R_BUILD define to be replaced by the build script,
a menu item to open the "New Issue" github page.
2017-02-19 16:04:57 +01:00
bubnikv
3bfa6416d8
Fixed https://github.com/prusa3d/Slic3r/issues/126
...
by re-shuffling the simplification of a path to be extruded.
A non-simplified path was being used for a wipe move before,
causing an extremely detailed path to be exported into a G-code.
2017-02-15 17:51:46 +01:00
bubnikv
4d739c41a0
Improvements of the layer height spline editing close to the top
...
of the object.
2017-02-15 14:39:08 +01:00
bubnikv
d2d7c5bead
Fixed trimming of support volumes by objects for the soluble supports
...
and for the raft contact layer over soluble supports.
https://github.com/prusa3d/Slic3r/issues/120
2017-02-15 13:34:17 +01:00
bubnikv
d67de182a0
fix of C++11 gcc incompatiblity
2017-02-15 11:16:39 +01:00
bubnikv
3d11d1aebf
make_skirt ported to C++
2017-02-15 11:05:52 +01:00
bubnikv
90028e47e9
Added the append templates for std::vector
2017-02-15 11:03:19 +01:00
bubnikv
f5e4026aee
Fixed some of the raft issues introduced in the new C++ supports.
2017-02-14 19:49:30 +01:00
bubnikv
420e387055
new feature: Clip multi-part objects one by the other.
...
This works the same way as if the XY compensation was set to a tiny value
before, but without the overhead of an offset.
2017-02-14 12:36:04 +01:00
bubnikv
8d6acd2aec
Fix of "no support generated" https://github.com/prusa3d/Slic3r/issues/114
...
when a first layer height was set in percents.
2017-02-12 00:51:53 +01:00
Joseph Lenox
abda054720
Cherry-picked Repetier acceleration fixes, thanks to @lordofhyphens
...
e0d8101627
885f27b8ae
Added a printer settings to enable / disable variable layer height editing.
2017-02-10 09:39:19 +01:00
bubnikv
6c4b4f4d12
Compilation fix on gcc,
...
fix of a maximum layer height limit for variable layer height editing.
2017-02-09 17:09:19 +01:00
bubnikv
b30501b411
Limit the maximum support layer height by the maximum layer height
...
value defined at the printer's nozzle.
Internal filtering of empty support layers to avoid generating
unnecessary Z moves.
2017-02-09 16:19:14 +01:00
bubnikv
88e34ff5de
Store / retrieve layer height profile from the AMF file.
...
Reset the layer height profile when changing a print profile to an incompatible one.
Reset button on the layer height bar.
Fixed an update issue on zooming by a scroll wheel.
Fixed an issue when loading an AMF file: Object names are now retained.
2017-02-09 14:56:13 +01:00
Joseph Lenox
61c0ae4e94
Changed filament density to use g/cm^3. Extended tooltip to indicate calculation methods.
2017-02-08 11:40:52 +01:00
Joseph Lenox
203a965b3d
added total cost/weight to Extruder statistics, mocked up addendum to status bar change.
2017-02-08 11:40:01 +01:00
Joseph Lenox
3846d9e734
Add weight/cost output to gcode. On the way to #647
2017-02-08 11:39:45 +01:00
bubnikv
957803e60c
Added min_layer_height, max_layer_height per nozzle settings
...
for controlling the support layer height & variable layer height.
Added an experimental "rear" seam option.
2017-02-07 18:46:02 +01:00
bubnikv
43ac693900
Added a tooltip overlay for the variable layer height edit tool.
...
Short methods of PrintState made inline.
Added layer height profile to a Model class.
2017-02-07 18:17:12 +01:00
bubnikv
7e6390c4b6
Avoid placement of seams on bridging perimeters, if random seam is enabled.
...
https://github.com/alexrj/Slic3r/issues/3526#issuecomment-263125049
2017-02-02 18:49:33 +01:00
bubnikv
4256af22ff
Created a total_lengt() free function for Polygons and Polylines.
...
Modified the "extra perimeters when needed" function to use the new free functions,
extended the tooltip of the "extra perimeters when needed" feature.
2017-02-02 16:03:32 +01:00
bubnikv
c25ae35737
Fix of https://github.com/prusa3d/Slic3r/issues/75
...
Fixed by @alexr 8f0d8f2096
See also https://github.com/alexrj/Slic3r/issues/3613 https://github.com/alexrj/Slic3r/pull/3614
2017-02-02 15:09:22 +01:00
bubnikv
817d827f7a
GCodeWriter - made tiny methods inline.
2017-01-30 19:57:20 +01:00
bubnikv
4ab972b87a
When the support extruders are set to 0, support is printed with the current material without a tool change.
...
A fix of support path generator.
2017-01-30 19:56:46 +01:00
bubnikv
4e90ae9a28
FillRectilinear2:
...
Fix of a degenerate case, where there is a vertical segment on this vertical line and the contour
follows from left to right or vice versa, leading to low,low or high,high intersections.
2017-01-29 00:20:09 +01:00
bubnikv
0ca230a197
Supports - trimming base support layers with the bottom surfaces.
2017-01-26 12:02:10 +01:00
bubnikv
22124e5f61
Multiple bug fixes in the new support generator to guarantee gap
...
between object and support.
2017-01-25 18:33:05 +01:00
bubnikv
a74aaca681
Disable support interface loops by default.
2017-01-25 18:29:10 +01:00
bubnikv
1699864b8a
utility class ClosestPointInRadiusLookup
2017-01-25 18:26:06 +01:00
bubnikv
c5843988c0
ExtrusionEntity - add only valid polylines
2017-01-25 18:25:14 +01:00
bubnikv
40eaf144f0
new function remove_degenerate(Polylines ...)
2017-01-25 18:23:57 +01:00
bubnikv
c46b6ca27e
ExtrusionMultiPath perl binding - polyline() method.
2017-01-25 18:22:29 +01:00
bubnikv
3985f50c5b
Added new file: ExtrusionMultiPath.xsp
...
Fixed a missing copy constructor of ExtrusionPath.
2017-01-20 15:41:50 +01:00
bubnikv
ff25c0ccc2
Improvements of the new support generator:
...
Variable path thickness for all support layers to avoid over-extrusion.
Supports only in grid cells below the top contacts.
Provision for filtering excessively long perimeter pieces of the support infill lines.
2017-01-20 15:21:05 +01:00
bubnikv
08351b5e48
Fix of ExtrusionMultiPath binding to Perl & G-code generator.
2017-01-20 15:17:32 +01:00
bubnikv
29b986fa76
Improvement of the move semantics on various objects:
...
The source object will be empty after the move operation.
2017-01-20 14:39:44 +01:00
bubnikv
d5f9db76b3
Fix of an inconsistent bottom contact layer thickness
...
in case two and more bottom contact layers overlap after their extension.
New method modulate_extrusion_by_overlapping_layers() reduces thickness
of an extrusion path where it overlaps in Z with some other paths.
The same trick has yet to be applied to the layers overlapping in Z with
top contact surfaces.
2017-01-19 13:47:06 +01:00
bubnikv
0b90ebd74e
Move semantics on MultiPoint, Polygon, Polyline.
...
Append methods on Polyline.
squared length function on point->DistanceTo
2017-01-19 13:43:29 +01:00
bubnikv
50cdf8e6d1
Move semantics for ExtrusionEntityCollection
2017-01-19 13:37:15 +01:00
bubnikv
e016c4e423
New extrusion class: ExtrusionMultiPath
...
This is similar to an ExtrusionLoop, but it is open.
It may contain multiple chained paths with differing parameters.
This allows one to have a hierarchy of paths, where the ExtrusionEntityCollection
will be chained by the G-code generator, but ExtrusionMultiPath will not.
2017-01-19 13:35:55 +01:00
bubnikv
e6b441eea4
Merge branch 'master' of https://github.com/prusa3d/Slic3r
2017-01-16 10:57:06 +01:00
bubnikv
4eed07bbab
Fix of the 1st support layer.
2017-01-16 10:56:40 +01:00
Eyal Soha
b851e04c17
Change char to int
...
char might be signed or unsigned but int is definitely signed. This fixes prusa3d/Slic3r#93 .
2017-01-12 11:30:14 +02:00
Eyal Soha
0db4be56a5
use int instead of char
2017-01-12 10:05:59 +02:00
bubnikv
41fbec9063
Only synchronize intermediate layers if explicitely asked for.
2017-01-11 18:05:03 +01:00
bubnikv
f0cf7adf84
Bugfix of a new support - first layer thickness of the support.
2017-01-11 17:22:28 +01:00
bubnikv
c2ba5901e4
Copy / move assign operators for ExPolygon.
2017-01-11 14:38:24 +01:00
bubnikv
c632d08550
Only compile debug output functions for SupportGenerator if SLIC3R_DEBUG is enabled.
2017-01-11 14:37:53 +01:00
bubnikv
87964eb57a
Move semantics for the ExPolygon constructor.
2017-01-11 13:44:11 +01:00
bubnikv
bd3daeed5a
Slightly more efficient PrintObject Layer destruction.
2017-01-11 13:43:33 +01:00
bubnikv
fa1506c833
Bugfix of duplicate support print paths.
2017-01-11 13:42:41 +01:00
bubnikv
d9ea3df85f
Another step to make the new C++ supports working.
...
Added support_material_xy_spacing configuration.
2017-01-05 09:14:59 +01:00
bubnikv
1ba03af2da
Made the config value support_material_xy_spacing relative
...
to the external perimeter width.
2017-01-05 09:12:24 +01:00
bubnikv
bbdaa44acb
Const version of a PrintObject::get_region(). Made get_region() inline.
2017-01-05 09:11:36 +01:00
bubnikv
b42c5d6dfa
Extended the SVG exporting class with export_expolygons()
...
calculating the contour bounds internally.
2017-01-05 09:10:16 +01:00
bubnikv
aad3d4107f
Improved debugging of the EdgeGrid distance field function.
2017-01-05 09:09:26 +01:00
slicer-builder
bb22f1dc8a
prototyping tweakable XY supports;
...
option should be present now in advanced support menu.
Can't figure out what's going on atm; support should be moving but isn't
2017-01-03 11:46:52 +01:00
bubnikv
07dd06c53c
Merge remote-tracking branch 'origin/supports-synchronize-layers'
2017-01-03 10:51:23 +01:00
bubnikv
7a2572a0fb
Improved debugging of "ensure vertical wall thickness" feature.
2017-01-03 10:51:19 +01:00
bubnikv
17db5bff8d
Fix of
...
Number of solid top/bottom layers ignored,
Ensure Vertical Shell Thickness interferes with solid top layer count
https://github.com/prusa3d/Slic3r/issues/79
https://github.com/prusa3d/Slic3r/issues/60
2017-01-02 16:51:43 +01:00
bubnikv
479f716625
Improvements in the manual layer width editor.
2016-12-21 16:00:41 +01:00
bubnikv
955bc957ba
New supports now do rafts at least to the extent the test cases run through.
...
New supports enabled, old supports will go away soon.
2016-12-20 12:19:13 +01:00
bubnikv
6400cec7ae
Merge branch 'master' into dev
2016-12-15 12:54:34 +01:00
bubnikv
c1f4d06be2
define -DBOOST_LOG_DYN_LINK for boost::log
2016-12-15 09:46:41 +01:00
bubnikv
56e87e3bdb
Set BOOST_LOG_DYN_LINK symbol when linking with dynamic boost libraries.
2016-12-14 16:51:27 +01:00