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
bubnikv
a870b69733
Fixed static linking against boost.
2016-12-14 15:43:26 +01:00
bubnikv
ae2e37b4bd
Added diagnostics of @LIBS, @INCS to the Build.PL
...
Extended MANIFEST with new files.
2016-12-13 22:46:28 +01:00
bubnikv
2cd96cabcd
Another take to get rid of the templates from the ClipperUtil.hpp
...
to compile cleanly on OSX.
2016-12-13 22:13:02 +01:00
bubnikv
852b542913
Had troubles with the template instantiation on OSX, so I reverted
...
them to overloaded functions. This is certainly easier to read and
work with anyway.
2016-12-13 21:30:56 +01:00
bubnikv
ddea33d93a
Fixed compilation of ClipperUtils on GCC, which is more strict
...
than VS2013 compiler.
2016-12-13 19:52:28 +01:00
bubnikv
e64dcf5e59
VS2013 could compile this, let's hope GCC will as well.
2016-12-13 19:39:20 +01:00
bubnikv
6582182e0c
Adapted to the new ClipperUtils.hpp interface by @alexrj
2016-12-13 19:22:23 +01:00
bubnikv
b2a5a1d22f
Added a move constructor / assignment operator to the old Clipper library
...
PolyTree class.
2016-12-13 18:59:18 +01:00
bubnikv
e22d007ab7
Fixed typo, missing class name.
2016-12-12 23:46:50 +01:00
bubnikv
06540f73f7
Try to fix compilation problems due to Perl crazy macros.
2016-12-12 19:13:33 +01:00
bubnikv
ce7717e450
Fix compilation on Linux.
2016-12-12 18:59:35 +01:00
bubnikv
e5b77e08de
Perl crazy macros strike again, they collide with boost threads.
2016-12-12 18:55:04 +01:00
bubnikv
1ea958158a
Support for user definable variable layer thickness, the C++ backend.
2016-12-12 17:53:38 +01:00
bubnikv
2ab86a4895
ConfigOptionVector::get_at(idx)
...
Avoid using exceptons for normal work flow. Assert if the vector is empty.
2016-12-12 15:56:42 +01:00
bubnikv
d775c6c14c
Added methods set/add to SurfaceCollection.
2016-12-12 15:54:37 +01:00
bubnikv
333a0b1c0e
Shortcuts for zero mesh transformations.
2016-12-12 15:52:04 +01:00
bubnikv
933a0db9ed
Minor fix of bridging flow, see @alexrj 3a3b24ec7c803c58919a5401e5804261999875b4
2016-12-12 15:33:14 +01:00
bubnikv
126126cc78
Fixes after the merge of changes by @alexrj.
2016-12-08 19:02:16 +01:00
bubnikv
5d18657ac5
Don't be lazy, use fully qualified Slic3r::Polygon/ExPolygon/Point/Line names
2016-12-08 15:16:09 +01:00
Alessandro Ranellucci
24e0b568b5
Fix compilation, cherry picked from @alexrj fde6e2e61deabd097a3bf565d4948077147b25ab
2016-12-08 15:01:36 +01:00
Alessandro Ranellucci
a26330a292
Try to fix compilation problem with Boost 1.54. #3595
2016-12-08 14:56:13 +01:00
Joseph Lenox
a8930f12cd
Fix perl redefining multiple functions also defined/used by boostlib through the include chain. ( #3593 )
...
Resolved ordering dependency (thanks win32 perl!)
2016-12-08 14:53:52 +01:00
Alessandro Ranellucci
5dc8a0808e
Maybe the Travis CI server has more than 16 cores?
2016-12-08 14:52:42 +01:00
Alessandro Ranellucci
d8082b9db4
Try to fix compilation error about the new threads default
2016-12-08 14:52:15 +01:00
Alessandro Ranellucci
9e8dae817d
Fixes and improvements to the view selection menu, cherry picked from @alexrj a7693c4719c0e0e0129aea7461706d2ed53a52cc
2016-12-08 14:51:35 +01:00
Alessandro Ranellucci
d628764da6
Minor fixes to parallelize code, cherry picked from @alexrj 5242b3e03ab2b195ba9c7c53fba705a8ed1c7abd
2016-12-08 14:44:03 +01:00
Alessandro Ranellucci
73ddd3b438
Refactored parallelization code, cherry picked from @alexrj 36789774471a0bf9a66bb33cc3ab6984f8ede8c6
2016-12-08 14:40:47 +01:00
Alessandro Ranellucci
9fbd135f14
Automatically detect the number of cores and use that as a default for threads number
2016-12-08 14:28:36 +01:00
Alessandro Ranellucci
70a9de085b
Parallelize TriangleMeshSlicer::slice(), cherry picked from @alexrj 83ad123d951c6ee663d2f3b02e095c203ca794e7
2016-12-08 14:28:09 +01:00
Alessandro Ranellucci
e9290252d6
Fixed regression in the _make_perimeters port
2016-12-08 14:25:05 +01:00
Alessandro Ranellucci
86c8207d31
Ported make_perimeters() and infill() to C++/XS, use pure C++ threads, cherry picked from @alexrj 66591bcc556c01572ec7519b1f8cb4ee2d430685
2016-12-08 14:24:40 +01:00
bubnikv
3e8cafa857
Fix of ASCII STL parser. Accept a model even with invalid normals.
2016-12-05 11:39:17 +01:00
bubnikv
26a8017e99
Made the support interface contact loops configurable.
2016-11-30 17:33:55 +01:00
bubnikv
556204fddc
support_material_synchronize_layers configuration value
...
for synchronization of object layers with print layers.
2016-11-30 16:04:15 +01:00
bubnikv
946b36bb4d
Supports using the EdgeGrid simplify_contour
2016-11-29 19:30:59 +01:00
bubnikv
1d44e92a6e
Point dot operator and PointHash object for std unique_xxx functions.
2016-11-29 19:29:24 +01:00
bubnikv
5c23ee504c
EdgeGrid::contours_simplified for supports
2016-11-29 19:28:33 +01:00
bubnikv
ca5ad58ad2
logging of slicing process
2016-11-29 19:27:23 +01:00
bubnikv
85aa802d4b
Fix of the last clipperutil safety_offset modification. Handle safety
...
offset of holes separately, don't forget to reverse them before / after.
2016-11-29 19:26:26 +01:00
bubnikv
792856a505
Bounding Box - new method align_to_grid
2016-11-29 19:25:10 +01:00
Bill Waggoner
50fe691604
Squashed commit of the following:
...
commit 7fc66514bf3fbcc2c2709a4eb94856fa9b3ba523
Author: Bill Waggoner <ctgreybeard@gmail.com>
Date: Mon Nov 28 14:09:09 2016 -0500
Build.pl fails to find boost libraries
commit 3fa66c4970eb2235aa57041a5a318ddcb1910219
Author: Bill Waggoner <ctgreybeard@gmail.com>
Date: Mon Nov 28 14:00:07 2016 -0500
Build.pl fails to find boost correctly
Signed-off-by: Bill Waggoner <ctgreybeard@gmail.com>
2016-11-28 14:28:50 -05:00
bubnikv
bde2ee6a7e
Step forward in the C++ supports.
2016-11-28 17:36:50 +01:00
bubnikv
8b0784f26c
Added a free "cross product" function to Pointf (thinking the Pointf is
...
really a vector in this case).
Made the == operator inline.
2016-11-28 17:34:52 +01:00
bubnikv
695c92fb00
CLIPPER_OFFSET_SCALE was made a power of two, the scaling functions
...
inside ClipperUtils are now using bit shifts instead of multiplication
by doubles, which makes the scaling precise.
Removed the scale parameter from all offset functions.
Modified the safety offset to calculate offset per polygon instead
of over all polygons at once. The old way was not safe and very slow,
sometimes this meant a kiss of death for supports for example.
2016-11-28 17:33:17 +01:00
bubnikv
e93253e270
Extended tracing of Support generator
2016-11-24 15:38:19 +01:00
bubnikv
a5b04d5cf3
Support calculation optimized.
2016-11-24 15:05:05 +01:00
bubnikv
e02755632e
new Utils.hpp
2016-11-24 14:05:06 +01:00
bubnikv
0d20a81354
Log support through boost::log
2016-11-24 13:44:51 +01:00
bubnikv
e67e37c772
Supports: Disabled debugging,fix of bottom surface over print.
2016-11-24 11:29:31 +01:00
bubnikv
14df0717ca
Fix of new suports.
2016-11-24 10:43:47 +01:00
bubnikv
d8be4de6cf
One step further to the C++ Supports.
2016-11-23 15:51:47 +01:00
bubnikv
1a1eaa0810
increased version number.
2016-11-20 23:06:56 +01:00
bubnikv
39679f9518
Missed this one at the last check-in.
2016-11-20 12:59:29 +01:00
bubnikv
ef69474636
Optimized Layer::merge_slices()
...
Don't merge classified pieces of layerm->slices, but use the non-split
islands of a layer. For a single region print, these shall be equal.
Added Slic3r-console.ico windows icon for the console Slic3r.
This is a copy of the big icon, with the big images stripped off.
2016-11-20 12:38:59 +01:00
bubnikv
79f5a16536
Reverted the perimeter generator to not save the perimeter areas.
...
These could be calculated from the fill areas if needed.
On the other side, the non-classified (non-split) fill areas are stored
now for use in the "ensure vertical wall thickness" feature,
also the non-split fill areas are re-used when recalculating the infills.
This is safer than trying to stitch the fill region together from the
classified fragments.
Modified the "ensure vertical wall thickness" feature to use the non-split
fill areas instead of perimeter areas for the calculation
of non-supported regions. This is cheaper as the fill areas contain
roughly half the edges.
2016-11-17 23:22:59 +01:00
bubnikv
2085a482c7
admesh: Fixed a problem in loading an STL when compiled with
...
Visual Studio 2013. Added multiple compile time checks for data
sizes and alignment. The library STL import is not big endian safe, so
added a test for endianity, modified STL export to a faster little endian only.
2016-11-17 16:57:58 +01:00
bubnikv
9772584d78
Tame the Shiny profiler. Make it switchable with define SLIC3R_PROFILE.
2016-11-16 23:11:51 +01:00
bubnikv
3d47c52b47
In "ensure vertical wall thickness", the union_ is called each time
...
a new layer is added to the shell. This is faster than calling union_
over all collected polygons. Also security offset has been disabled.
2016-11-16 22:16:20 +01:00
bubnikv
6a3bdf43dc
ClipperUtils extended with intrusive profiling macros.
...
offset2() was exteded with a shortcut, if both offset directions
are of the same direction.
2016-11-16 22:12:58 +01:00
bubnikv
bcda69c1e5
Extended the Build.PL to understand an environment variable
...
SLIC3R_PROFILE to set the C++ symbol of the same name to enable
Shiny profiler.
2016-11-16 22:10:04 +01:00
bubnikv
c3af189045
Reduced some compiler warnings.
2016-11-16 22:09:00 +01:00
bubnikv
901ec0ad37
Disable includes inside Shiny sources when SLIC3R_PROFILE symbol is not defined.
2016-11-16 22:04:38 +01:00
bubnikv
bfbe85b5c2
Some optimization of the "ensure vertical wall thickness" feature.
2016-11-16 18:04:47 +01:00
bubnikv
e857833a91
Undef seed macro because of crazy perl macro substitutions.
2016-11-16 13:19:48 +01:00
bubnikv
a36cc6491c
Fixed compilation of XS modules by undefinig the "seed" macro
...
redefined crazily by Perl.
2016-11-16 13:14:42 +01:00
bubnikv
1589ffb224
Fix for compilation on Strawberry Perl with C++11 enabled.
2016-11-16 13:06:51 +01:00
bubnikv
68e9ec0d41
Set the C++ version to C++11 for all compilers but Visual Studio C++.
2016-11-16 13:00:36 +01:00
bubnikv
4c407c8a59
Optimization of Model bounding box routines (avoids copying the mesh),
...
optimization of the admesh rotate function (also made numerically more robust).
2016-11-16 11:53:29 +01:00
bubnikv
52de3940fe
Improvements of admesh robustness when loading and fixing STLs.
...
https://github.com/prusa3d/Slic3r/issues/33
2016-11-16 10:33:23 +01:00
bubnikv
d1d6e907c5
Positive and negative zeros are possible in the floats, which are considered equal by the FP unit.
...
When using a memcmp on raw floats, those numbers report to be different.
Unify all +0 and -0 to +0 to make the floats equal under memcmp.
2016-11-16 09:31:18 +01:00
bubnikv
e6d802a5ff
Fixed a 64bit compatiblity in admesh, fixed a typo in TriangleMesh::swap()
2016-11-15 17:22:00 +01:00
bubnikv
9abe07852e
Fixed https://github.com/prusa3d/Slic3r/issues/32
2016-11-12 23:20:49 +01:00
bubnikv
7ebc3b0884
Merge branch 'master' of https://github.com/prusa3d/Slic3r
2016-11-12 19:05:12 +01:00
bubnikv
b116fe287c
Fixes https://github.com/prusa3d/Slic3r/issues/32#issuecomment-260135542
...
Reverts an inadverent bug introduced in 4460b5ce50
2016-11-12 19:04:40 +01:00
Miro Hrončok
ec3aeb1e47
Update the version
...
If this version is not updated, Slic3r shows the old version
in the title bar and status bar and that can be confusing to the user.
2016-11-11 16:46:05 +01:00
bubnikv
c2d5b32ee2
Changed the logic of the "ensure vertical wall thickness" feature
...
slightly by inflating the projected top/bottom/bottom bridge surfaces
before they are added into a surface. This ensures, that the possible
projected infill areas merge with the perimeter supporting areas,
but the perimeter supporting areas will not be inflated on their own,
if there is no touching projection of a top/bottom/bottom bridge
surface.
2016-11-11 11:13:36 +01:00
bubnikv
4460b5ce50
re-wrote PrintObject::detect_surfaces_type() to C++,
...
Fixed some cracks in the fill surfaces created by rounding all surfaces inside detect_surface_type().
Fixed https://github.com/prusa3d/Slic3r/issues/12
Bridging-Angle not optimal
Extended the "Ensure veritcal wall thickness" mode (merged with the original discover_horizontal_shells function), but this a work in progress. Already Slic3r with "ensure vertical wall thickness" produces less spurious infills inside solids.
2016-11-10 19:23:01 +01:00
bubnikv
317e9131e8
New sparse infill: "stars" - David's star shaped infill.
...
This is very similar to a "triangles" infill, but maximum two lines
intersect at a single point.
added utility function get_extents_vector()
2016-11-09 15:39:12 +01:00
bubnikv
eb0ab38618
Fixes https://github.com/prusa3d/Slic3r/issues/26
...
Strange behavior of Extra perimeters and ensure wall thickness
Old behavior is re-enabled when ensure vertical wall thickness is off.
2016-11-09 10:24:45 +01:00
bubnikv
e92501e51e
Use a less aggressive positive offset for top/bottom/bridge surfaces,
...
when enlarging them for better anchoring.
2016-11-08 15:35:08 +01:00
bubnikv
443e900e07
Fixed compilation on Strawberry
2016-11-08 11:23:08 +01:00
bubnikv
5aacc6b015
Extended exit report when catching an exception under a broken
...
Strawberry Perl.
2016-11-08 11:15:09 +01:00
bubnikv
2e53c06159
Finished the SLIC3R_HAS_BROKEN_CROAK magic.
2016-11-08 10:59:43 +01:00
bubnikv
eb61373b69
Compilation with an environment variable SLIC3R_HAS_BROKEN_CROAK set
...
will force the perl confess / croak called from a C++ code to
print an error message and exit. There is a bug in some Strawberry
Perl instalations leading to an interpreter hang up and an exit
with a reasonable message is better than that.
2016-11-08 10:49:32 +01:00
bubnikv
22ca927f12
Reworked the bridge detector to allow searching a single bridging
...
direction over multiple regions. This allows a single bridge to be
drawn over holes, which are too close to each other to allow
for separate bridges.
Fixes Bridging-Angle not optimal
https://github.com/prusa3d/Slic3r/issues/12
Re-allowed adaptive infill line width for solid infills. The adaptive
infill line width works in some circumstances, see Issue #15 ,
but the original implementation often changed the line width too
aggressively. The current implementation limits the line width change
to 20%.
Fixes Gaps between infill and perimeter leads to errors in laydown on following layer
https://github.com/prusa3d/Slic3r/issues/15
2016-11-08 09:59:25 +01:00
bubnikv
5a81731577
Implemented utility functions to operate over lines, polylines, polygons,
...
surfaces.
2016-11-07 22:49:11 +01:00
bubnikv
aac968162b
Unit test to verify whether Slic3r would hang when croaking from
...
a C++ exception handler. This is an unfortunate error in some
Strawberry Perl distributions.
2016-11-06 17:42:36 +01:00
bubnikv
e9e55e7ac3
Fix missing cubic infill line, thanks @KoKuToru for pointing out the problem
...
and proposing a fix.
https://github.com/prusa3d/Slic3r/pull/18
Fixed a slight bug, where the infill did not take the complete area.
2016-11-06 16:03:13 +01:00
bubnikv
bfb336df0c
Refactored Print::validate() method to not throw an exception, but
...
to return a string with an error message instead. This was necessary
to avoid a hang-up on some Strawberry Perl distributions, when
a perl "croak" function is called after a C++ exception is caught.
2016-11-05 02:23:46 +01:00
bubnikv
89cf29080b
Fix of https://github.com/prusa3d/Slic3r/issues/14
...
A to_polygons(SurfacePtrs &&) method does not make sense as
the ownership of the Surfaces stored in the pointer array is not known.
Thanks to @flannelhead for precisely pinpointing this issue.
2016-11-04 17:20:32 +01:00
bubnikv
96a1c74d45
Let's hope to fix compilation on gcc.
2016-11-04 17:09:01 +01:00
bubnikv
a10e9c6573
Fix of https://github.com/prusa3d/Slic3r/issues/13
...
The BoundingBox::defined flag was not set in constructor,
if initialized from min/max corners.
2016-11-04 16:49:08 +01:00
bubnikv
6217622865
Hopefully a fix of https://github.com/prusa3d/Slic3r/issues/11
...
Replaced eval { die } construct with a bool return value indicating
success or failure of an automatic arrangement of parts on the print bed.
Don't know exactly what is happening here, but throwing a "die" inside
a XS function and then catching it inside an eval {} block is suspcious.
2016-11-04 15:03:51 +01:00
bubnikv
3fc57ba8d8
Fixed compilation of the XS module with SLIC3R_GUI compilation flag
...
enabled, leading to a linkage of GL and GLU libraries.
https://github.com/prusa3d/Slic3r/issues/8
2016-11-04 01:06:26 +01:00