Commit Graph

951 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
459a42aab6 Fixed a bug in conditional compilation of the Shiny profiler. 2016-09-15 00:57:40 +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
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
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
bubnikv
f518e0675c Initial commit of the new Pressure Equalizer, the EdgeGrid
signed distance field structure.
The EdgeGrid is used to avoid placing the seams on overhangs.
2016-09-12 16:25:15 +02:00
bubnikv
73cbb4b5dc some optimizations of Point rotation 2016-09-12 13:52:31 +02:00
bubnikv
9a83d4e8d5 Reverted some now unnecessary changes. Reverted the infill to the original perl implementation. 2016-09-12 13:26:17 +02:00
bubnikv
9fcc8fe9ae Meged with release_candidate_1_3 2016-09-12 11:29:39 +02:00
bubnikv
ab357c75a5 Updated xs/Build.PL to support Visual Studio compiler suite.
Updated xs/Build.PL to understand BOOST_LIBRARY_PATH and
BOOST_INCLUDE_PATH environment variables. This way one may easily
switch between various boost builds.

Some minor tweeks were done to make Slic3r compile with
Visual Studio 2013.
2016-08-21 21:46:17 +02:00
bubnikv
bd23fe9c44 Fixed a crash in a constructor of FullPrintConfig due to an incorrect use
of virtual inheritance. Note that an invocation of ConfigBase::optptr()
is routed to FullPrintConfig::optptr() for all classes of the FullPrintConfig
hierarchy. FullPrintConfig::optptr() in turn invokes optptr()
of PrintObjectConfig, PrintRegionConfig, PrintConfig and HostConfig.
Due to the use of virtual inheritance, this all happens, when
PrintObjectConfig gets constructed as part of FullPrintConfig, but
at that time PrintRegionConfig, PrintConfig and HostConfig are not
constructed yet. Accessing them at that time leads to crashes,
when compiled with Visual Studio 2013 compiler. For some reason
the code generated by gcc does not crash, but I believe the behavior
is undefined and it is better to be fixed anyway.

The patch solves the problem by calling set_defaults() by the topmost
object, which not only fixes the crashes, but also avoids repeated
initialization.
2016-08-21 19:09:31 +02:00
Vanessa Ezekowitz
39dfee79c7 Mention anti-ooze sacrificial skirt feature. 2016-06-01 17:47:54 -04:00
Alessandro Ranellucci
9e8022f6f6 More refactoring to medial axis and gap fill, more robust 2016-05-20 17:03:57 +02:00
Joseph Lenox
b068616366 Merge pull request #3120 from Vicious-one/patch-1
Fix for #3069
2016-05-18 23:01:19 -05:00
Chow Loong Jin
209b919fe6 Fix cooling not working if !gcode_comments
The cooling markers were being passed into GCodeWriter::set_speed() as a
comment which were being ignored if gcode_comments was false.

Fixes: #3325
2016-05-12 23:35:39 +08:00
Vojtech Bubnik
d022493297 Merge remote-tracking branch 'upstream/master' 2016-05-03 22:05:31 +02:00
bubnikv
79c5e0a52d Optimize remove_duplicate_points. 2016-04-15 18:01:08 +02:00
bubnikv
42d9db04f2 Don't crash, if the number of lines to display is zero. 2016-04-15 17:58:29 +02:00
bubnikv
83166a7ff3 Close SVG file when the object gets deallocated. 2016-04-15 17:57:38 +02:00
bubnikv
f3bda8a57a Disable optimizations and debug check even in debug mode. 2016-04-14 11:17:44 +02:00
bubnikv
23a5edbd11 Breaking into the debugger from the menu. This may be useful in Windows. 2016-04-13 20:51:03 +02:00
bubnikv
d6b53d18b8 Optimized and improved rectilinear fill. 2016-04-13 20:46:45 +02:00
bubnikv
f767ce816b Optimized and improved rectilinear fill. 2016-04-13 20:45:44 +02:00
Joseph Lenox
510ca9f9e2 Merge pull request #3303 from hyperair/fix-cooldown
Changes to properly detect extrusion moves for "layer cooldown" slowdowns and properly calculate time required to complete moves.
2016-04-12 12:50:43 -05:00
Chow Loong Jin
3d73fbf5fd Use float for elapsed_time
When accumulating elapsed_time from many moves that take less than 1
second, elapsed_time does not get incremented because (unsigned int)0.9
= 0.
2016-04-13 01:13:42 +08:00
Chow Loong Jin
4c622c504f Account for travel moves in elapsed_time 2016-04-13 01:13:39 +08:00
Alessandro Ranellucci
a54edf8fbc Support static linking of the Boost libs 2016-04-11 22:14:12 +02:00
bubnikv
3b81bf0e33 Remove some debugging info. 2016-04-11 17:48:27 +02:00
bubnikv
3ba625da22 Revert incorrect checkins. 2016-04-11 17:34:15 +02:00
bubnikv
ed83ff37f8 Simulation of extrusion in a plane, useful for finding out under / over-extruions. 2016-04-11 17:10:13 +02:00
bubnikv
9716ee8eca Interface to a filler, ported from Perl to C++. 2016-04-11 17:09:15 +02:00
bubnikv
be3e4caf1d Fills were reimplemented in C++.
While reimplementing the FillPlanePath code, the octagon infill was fixed to extrude the right amount of material.
2016-04-11 17:08:30 +02:00
bubnikv
7da68c91a5 Vojtech likes to use Sublime on Windows to get the wheels rolling. 2016-04-11 17:05:58 +02:00
Alessandro Ranellucci
f66585c250 Fixed compilation on OS X 2016-04-11 12:04:54 +02:00
bubnikv
d392858ee3 The chaining and leftmost_point methods were rewritten as static methods, so they may be called on Polylines without having to convert to PolylineCollection first. 2016-04-10 19:32:39 +02:00
bubnikv
6c5c9eddba Fixed a typo when SLIC3R_DEBUG is active. 2016-04-10 19:13:08 +02:00
bubnikv
bcfbe02c8d New method to rotate only polygons, not translate.
New free function to_polygons. Whithout this function one needs to construct the ExPolygonCollection, which means a deep copy.
2016-04-10 19:12:32 +02:00
bubnikv
023310882f Added a macro SLIC3R_CPPVER to indicate the C++ language version supported by the compiler. 2016-04-10 19:07:34 +02:00
bubnikv
7d54e28e30 Added optimized methods for point and polyline rotation.
Existing methods for rotation were optimized by calculating the sin/cos values once only.
Added an operator- for points.
2016-04-10 19:06:46 +02:00
bubnikv
c8ff517389 New constructors for the bounding box with min/max points were added.
empty(bbox) function template was added.
2016-04-10 19:02:00 +02:00
bubnikv
33ddb13e5d Use CLIPPER_OFFSET_SCALE instead of a numeric value. 2016-04-10 18:58:12 +02:00
Chow Loong Jin
2e2e4e68d3 Fix layer time slowdown
The recent GCode writer changes which put the speed changes on a line of
their own have caused the layer time slowdown to be ignored by the regex
in CoolingBuffer.pm.

Fixes: #3134
2016-04-10 16:10:18 +08:00
bubnikv
4156b51c18 Debugging visualization of the gap fills into a SVG format, if SLIC3R_DEBUG is set. 2016-03-27 10:53:59 +02:00
Alessandro Ranellucci
9576973b57 Tune gap fill and thin walls to less extreme values 2016-03-26 18:37:37 +01:00