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.
https://github.com/alexrj/Slic3r/pull/3552/commits/897ca52654dd380d07de9f87cb36043cdc59db87
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
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
bubnikv
34fab1566f
"Background slice now" function, initial implementation by @lordofhyphens
...
https://github.com/alexrj/Slic3r/pull/3501
2016-10-25 13:24:42 +02:00
bubnikv
34248c2fbf
On Windows use the Slic3r.ico instead of the PNG file
...
for the application icon.
2016-10-24 18:05:26 +02:00
bubnikv
51c8d73b11
Fixed a division by zero in 3D scene, if there is nothing to show.
...
Improved Prusa3D icon.
2016-10-24 17:32:22 +02:00
bubnikv
741a85187c
Suppress the '- default -' selection of Print/Filament/Printer settings
...
if there is any valid option available. This feature has been asked for
by the Prusa3D customers as the '- default -' option has nothing to do
with the actual printer and when selected accidentally, it could even
lead to a printer damage.
2016-10-24 16:07:36 +02:00
bubnikv
4524ecf66b
by alexrj: Always convert strings to UTF-8 before passing them to XS
2016-10-24 14:08:22 +02:00
bubnikv
250ff451ba
by alexrj: Fixes in GCodeSender to reset the connection after it breaks.
...
by alexrj: Fix in mouse handling of 2DBed.
by alexrj: ClipperUtils for ExPolygon vs. ExPolygon
2016-10-24 14:07:38 +02:00
bubnikv
cc8b7390ee
Make sure the shells for the "ensure verticall wall thickness" feature
...
are thick enough to be actually filled by the rectilinear fill.
Otherwise gaps would be left in the sparse infill, causing missing
bond to the perimeters.
2016-10-22 22:25:00 +02:00
bubnikv
b28d31d0fe
Fixes gaps created around the 3D honeycomb infill. The bug has been
...
introduced during the C++ porting of the original Perl code.
2016-10-22 21:31:39 +02:00
bubnikv
67c98eca5f
Cleaned up the PNG headers of the icon files:
...
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
2016-10-22 17:31:41 +02:00
bubnikv
3574d68465
Changed the icons to indicate this is not the alexrj build.
2016-10-22 17:15:42 +02:00
bubnikv
20cd34a3a5
Cubic infill.
2016-10-21 18:56:55 +02:00
bubnikv
1fb57e439e
Defined the +-* operators on Pointf.
...
Removed the deprecated VibrationLimit feature.
Added triangle infill.
The Prusa3D fork of Slic3r has been marked as "Slic3r Prusa Edition"
with menus pointing to the prusa3d/slic3r github release page
and Prusa3D drivers downloads page.
2016-10-21 16:53:42 +02:00
bubnikv
15d3e94a66
Unified the creation of paths of debugging output files
...
pointing to a predefined output directory.
2016-10-21 10:18:01 +02:00
bubnikv
59f3fed9f2
gcc bailed out on <cstdint>
2016-10-20 18:38:44 +02:00
bubnikv
978fca6f7c
Fixed a compilation problem on OSX.
...
Fixed an inverted assert condition.
2016-10-20 18:34:33 +02:00
bubnikv
9e4edcd8ec
Enabled the C++ fillers for all infills, not just the supports.
...
Made sure the C++ fillers are instantiated at the worker threads,
where there are being released.
Extended the FillRectilinear2 to calculate the contour / line intersection
with exact arithmetics, improved robustness and added error handling
and error reporting, if the contours to be filled are not correct.
2016-10-20 17:44:46 +02:00
bubnikv
f788f50b5a
Disabled asserts in the release build (-DNDEBUG).
...
Added a safe variant of offset(const Slic3r::ExPolygon...), which offsets each loop separately.
New functions "remove_sticks" to remove zero area parts of polygons.
New functions "remove_small" and "remove_degenerate" for polygon clean up.
Extended the C++ supports, those are not finalized yet though.
2016-10-20 13:04:23 +02:00
bubnikv
53907a9cfe
Fix of a crash when setting a viewport over an empty platter.
...
Exported bounding box 'empty' method to perl.
2016-10-18 16:44:05 +02:00
bubnikv
26349b30c5
Fixed a bug in EdgeGrid for horizontal or vertical lines ending at the grid lines.
2016-10-17 18:06:38 +02:00
bubnikv
c0956dbd34
Disable debugging output from the Filler2.pm
2016-10-17 17:16:02 +02:00
bubnikv
7fd06ef311
Removed #include <malloc.h> from the Shiny profiler as there is no
...
malloc.h on OSX.
2016-10-17 12:13:30 +02:00
bubnikv
6f4a04c2d7
Fix of compilation on Linux. Disable hopefully finally the Shiny profiler.
2016-10-17 10:33:23 +02:00
bubnikv
52dc18e350
Hopefully fixed compilation of the Shiny profiler on Linux,
...
where the Shiny profiler shall be disabled.
2016-10-17 09:55:42 +02:00
bubnikv
19312d0a1a
Yet another fixes to make SupportMaterial.cpp compile on gcc.
2016-10-17 09:34:48 +02:00
bubnikv
30c1be40da
Fixes of SupportMaterial.cpp
2016-10-17 09:27:20 +02:00
bubnikv
e8f73134e6
Fixed a typo, which broke compilation on GCC.
2016-10-16 23:13:43 +02:00
bubnikv
75ee1baf1d
Another tiny change to support non C++11 compiler.
2016-10-16 23:05:47 +02:00
bubnikv
a7c53c7f5f
Disable C++11 hash feature in C++ Supports to compile on Strawberry.
2016-10-16 22:56:21 +02:00
bubnikv
47cc9687a0
Added a new switch: ensure_vertical_shell_thickness
...
This enables a zig-zag infill similar to Cura or Simplify3D
on overhangs.
2016-10-16 22:11:19 +02:00
bubnikv
7d7f093120
C++ supports sketched, but not finalized yet. Slic3r is still using
...
the old Perl supports, but this time with the C++ fillers.
2016-10-16 16:30:56 +02:00
bubnikv
8f40d9b34e
Initial implementation of C++ supports,
...
some documentation of the existing code.
2016-10-13 16:00:22 +02:00
bubnikv
c16eca0065
Improvements of the C++ RectInfill2 code for supports:
...
Make the contours more continuous.
Some documentation, asserts and such.
2016-10-06 21:41:52 +02:00
bubnikv
ee4b9ab82f
Select standard camera views (left / right / top / bottom / front / rear / default)
...
by menu.
2016-10-05 14:13:07 +02:00
bubnikv
5268574ade
Made the sheath around the base support configurable. Without the sheath
...
it is easier to remove the support, but the support is more fragile.
2016-10-04 14:38:13 +02:00
bubnikv
5bb37ad2c4
A new feature "support_material_buildplate_only" implemented.
...
Also a bug has been fixed for zero interface layers. Before
slic3r would put infinite number of interface layers over top surfaces,
if the number of interface layers was set to zero.
2016-10-04 13:54:10 +02:00
bubnikv
ae2bae137a
Added a low layer slider into the 3D preview window.
...
This is to limit the preview to a span of layers.
2016-10-03 17:01:29 +02:00
bubnikv
b7af7276c9
Instantiate the new C++ filler. It will be used for the supports first.
2016-10-03 16:59:00 +02:00
bubnikv
d2635ab799
Finished merging of bridging regions.
2016-09-30 16:11:19 +02:00
bubnikv
3a81e6bee4
Bugfix of bottom bridges. If close regions shall be closed by bridges,
...
these regions are grown to anchor the bridge lines to the bottom surface.
The grown regions may overlap. In that case the regions are now merged
before the bridging direction is calculated for the merged region.
2016-09-30 15:23:18 +02:00
bubnikv
b5e24d3527
Fix of a test case of PerimeterGenerator.
2016-09-28 11:17:59 +02:00
bubnikv
403329db49
Misc bugfixes.
2016-09-26 13:58:47 +02:00
bubnikv
790b640521
Visualization of fill surfaces.
2016-09-26 13:56:24 +02:00
bubnikv
e0d1aa8a1a
Collect the perimeter surfaces when generating perimeters.
...
The perimeter surfaces are later used for performing infill
below overhangs and to maintan configured vertical wall thickness
at sloping surfaces.
2016-09-26 13:44:23 +02:00
bubnikv
8f04f5d5f6
Don't adjust width of infill. It produces dangerously wide fills.
...
If the infill flow adjustment is enabled, report cases,
where the infill flow grows over the limits.
Make the internal bridging infill 50% sparse.
2016-09-26 13:38:37 +02:00
bubnikv
6950ce3bcf
Report when the threading is disabled and when the debugging output
...
is enabled.
Two new environment variables are respected:
SLIC3R_SINGLETHREADED and SLIC3R_DEBUGOUT.
2016-09-26 12:57:15 +02:00
bubnikv
c514e731da
Documented the bridge detector.
2016-09-26 12:53:41 +02:00
bubnikv
feb269c97c
G code generator will include marks for the G-code analyzer, so
...
the path preview will be colored with a fine granularity.
2016-09-26 12:52:40 +02:00
bubnikv
8564ac391c
Test case for Bugfix: use Lift-z option for 2. extruder #3385
...
thanks to
https://github.com/platsch
2016-09-26 12:50:05 +02:00
bubnikv
088b0dab90
Bugfix: use Lift-z option for 2. extruder #3385
...
Thanks to https://github.com/platsch
https://github.com/alexrj/Slic3r/pull/3392
2016-09-26 12:49:29 +02:00
bubnikv
edc70e27d9
New routines for debugging visualization of surfaces & infills.
2016-09-26 12:45:23 +02:00
bubnikv
4046552dd1
Documented MultiPoint.
2016-09-26 12:44:45 +02:00
bubnikv
758458e5a0
PressureEqualizer - fixed compiler warnings, documented.
2016-09-26 12:44:03 +02:00
bubnikv
4a13efd081
Surface / Surface Collection - optimization routines for filtering,
...
routines for visualization.
2016-09-26 12:42:44 +02:00
bubnikv
a506030082
Draft of a 3D toolpaths preview.
2016-09-26 12:38:29 +02:00
bubnikv
03b1312f2d
G-code analyser, first draft. The G-code analyser will be used
...
for advanced visualization of the printing paths, including
the extrusion types.
2016-09-26 12:37:54 +02:00
bubnikv
565146d9d1
Fix of a spiral vase with realtive extruder distances enabled.
...
The clone function is used by the SpiralVase.pm only, so the change
is safe.
2016-09-23 12:59:20 +02:00
bubnikv
6e97b9bb73
Optimization of the layer offsets in 3D visualization.
2016-09-15 12:26:53 +02:00
bubnikv
459a42aab6
Fixed a bug in conditional compilation of the Shiny profiler.
2016-09-15 00:57:40 +02:00
bubnikv
a53bd3dfe9
Generate multiple vertex lists rather than requesting a single huge
...
memory block.
2016-09-15 00:06:42 +02:00
bubnikv
2a5095a1ea
OpenGL support through GLEW. Only active if compiled with SLIC3R_GUI=1.
2016-09-14 16:31:26 +02:00
bubnikv
266e1c4be1
Initial commit of the GLEW library for calling OpenGL from the C++ code.
2016-09-14 14:07:41 +02:00
bubnikv
b1575b4dcb
Integration of the Shiny lightweight intrusive profiler.
2016-09-14 11:43:38 +02:00
bubnikv
4c67230436
Documented the purpose of various perl modules.
2016-09-14 11:22:41 +02:00
bubnikv
55218c8c4d
Documented.
...
Fixed rough Z buffer quantization issues with ortographic camera.
Initial implementation of a perspective camera.
2016-09-14 09:38:59 +02:00
bubnikv
17d9c8c9dd
fixes for gcc: Missing include float.h
2016-09-13 15:59:23 +02:00
bubnikv
7d56827e26
updated for older gcc
2016-09-13 15:29:31 +02:00
bubnikv
f73ca007e6
Fixed compilation on old gcc.
2016-09-13 15:15:44 +02:00
bubnikv
15c1edd552
Configurable volumetric extrusion rate slope.
2016-09-13 15:02:28 +02:00
bubnikv
620c6c7378
Ported from the playground branch. Various documentation and optimization.
2016-09-13 13:30:00 +02:00
bubnikv
a5b7f14dfa
Updates in the C++ infill code.
2016-09-13 11:26:38 +02:00
bubnikv
b2a6f43923
Documented perl modules.
2016-09-13 11:24:55 +02:00
bubnikv
6dfe4c0b96
Debugging code: Storing the test STLs inlined in the Perl code into a file.
2016-09-13 09:48:29 +02:00
bubnikv
068f71847e
Some inlining optimizations.
2016-09-13 09:46:41 +02:00
bubnikv
c443f49da3
Fix in splitting the loop at a new point.
2016-09-13 09:44:30 +02:00