Commit Graph

4046 Commits

Author SHA1 Message Date
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
50f06a0fe8 Increased the gimbal lock threshold to 170 degrees from 150 degrees.
This makes it possible to look at the bottom of an object.
2016-11-16 09:24:27 +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
7f1704b2ac Disabled live preview by default as it is not stable and/or the calculation takes too long for interactive usage. 2016-11-13 23:35:56 +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
bubnikv
c1af9bda0a Merge pull request #30 from hroncok/patch-1
Update the version
2016-11-11 15:51:58 +00: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
1070f0c0af New feature: Propose to enable "detect bridging perimeters"
when the supports are first enabled. Don't check keep asking,
if the user does not want the bridging perimeters to be enabled.
2016-11-11 15:05:39 +01:00
bubnikv
f4ee87ba24 Fixed https://github.com/prusa3d/Slic3r/issues/27 2016-11-11 12:00:40 +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
e15b5f4587 Fix of https://github.com/prusa3d/Slic3r/issues/16
Crashes while switching in preview through layers with arrow keys

Also added a check box to visualize a single layer only
in the 3D path view. The check box may be toggled with a 'S' key.

Added shift+U / shift+D buttons in the 3D path view to show a single
layer only.
2016-11-08 17:13:16 +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
b8590180d8 Fix of https://github.com/prusa3d/Slic3r/issues/20
Slicing preview incorrect in terms of visible solid layers
2016-11-08 15:33:13 +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
dfa3f8d597 Perl OpenGL 0.7 package causes crashes on many platforms.
Constrain compilation to Perl OpenGL version lower than 0.7.
897ca52654
2016-11-04 23:23:01 +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
bubnikv
61d82b02b5 Improves https://github.com/prusa3d/Slic3r/issues/3
Limits the length of an infill connecting segment of a solid infill
to 3x the solid infill spacing.
2016-11-04 00:55:43 +01:00
bubnikv
483a658144 Method ExtrusionEntity::polygons_covered() and derived were split
into polygons_covered_by_width() and polygons_covered_by_spacing().

Bugfix of ExtrusionLoop::split_at(const Point &point),
where the split ExtrusionPaths were not initialised correctly.
2016-11-04 00:10:35 +01:00
bubnikv
f278fa454e Merge pull request #10 from flannelhead/cpp11-fix
Fix compilation with C++11 and above
2016-11-03 19:10:45 +00:00
bubnikv
7b6b609df1 ExtrusionEntity and derived classes: Documented, short methods made
inline for efficiency and readability, grow() renamed to polygons_covered().
2016-11-03 10:24:32 +01:00
bubnikv
12b7818caa Only call wxWidgets method wxApp::SetAppDisplayName for wxWidgets 3.0
and newer.
2016-11-03 09:15:30 +01:00
Sakari Kapanen
fad91b86bd unique_ptr instead of auto_ptr for C++11 and above 2016-11-03 08:18:27 +02:00
Sakari Kapanen
60ea0561ec Copy and move variants of chained_path functions 2016-11-02 22:31:03 +02:00
Sakari Kapanen
381c88ce0c Fix typos preventing compilation with CPPVER >= 11 2016-11-02 22:29:59 +02:00
bubnikv
d530bdba67 Test of a 100% coverage by the FillRectilinear2 has been disabled before,
now also the expected number of tests executed has been adjusted accordingly.
2016-11-02 17:15:05 +01:00
bubnikv
28ccb51f9b Fixed a crash when accessing a non-existing config value from C++ infill.
Disabled a test case of 100% infill coverage. This needs to be
yet improved.
2016-11-02 16:55:56 +01:00
bubnikv
a6cf6afb49 Missing #include <memory> 2016-11-02 11:13:13 +01:00
bubnikv
95ede7c4b8 Rewrote Fill2.pm to C++, deleted Perl infills for good.
Removed dependency on Perl Math::PlanePath module.
Fixed compilation with Visual Studio and SLIC3R_DEBUG: Visual Studio older than 2015 does not support the prinf type specifier %zu. Use %Iu instead.
C++11 move semantics enabled.
2016-11-02 10:47:00 +01:00
bubnikv
3a31d37d35 Fix of https://github.com/prusa3d/Slic3r/issues/5 :
missing #include <assert.h> in FillBase.hpp

Also disabled the automatic width adjustment in all the infills
by default for now.
2016-11-02 09:00:26 +01:00
bubnikv
36f51ff2bf Fixed a return value in the Config multi-string parser. 2016-11-01 14:52:44 +01:00
bubnikv
0264381f79 Missing include for memcpy for Linux. 2016-11-01 13:53:28 +01:00
bubnikv
3d3654707b Added "Notes" page to the filament configuration.
Added "filament_max_volumetric_speed", a cap on the maximum volumetric
extrusion role, filament specific. This is very useful when mixing
rigid filament with a soft filament.

Extended the import / export of multi-string values into configuration
values, including the test cases. Multi-line strings will be enclosed
into quotes, quotes escaped using a C-style escape sequences. Single
word strings could still be stored without quotes.
2016-11-01 13:41:24 +01:00
bubnikv
4e66ed81d2 Fixed the fill density for rectilinear, triangular and cubic infills.
Initial implementation of the "infill link maximum distance" feature.
Parts of the perimeter connecting two infill lines will be dropped,
if longer than a given threshold.
2016-10-27 17:03:57 +02:00