Commit Graph

440 Commits

Author SHA1 Message Date
bubnikv
6582182e0c Adapted to the new ClipperUtils.hpp interface by @alexrj 2016-12-13 19:22:23 +01:00
bubnikv
2d030f3a3c Most of the slicing code rewritten to C++. 2016-12-12 17:56:37 +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
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
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
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
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
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
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
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
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
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
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
15c1edd552 Configurable volumetric extrusion rate slope. 2016-09-13 15:02:28 +02:00
bubnikv
b2a6f43923 Documented perl modules. 2016-09-13 11:24:55 +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
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
ca98e2655a New command line option: --dont-arrange
Don't arrange the objects on the build plate. The model coordinates
define the absolute positions on the build plate.
The option --print-center will be ignored.

Also there is a fix in the command line invocation of --duplicate-grid
so it will run, but still there is something broken there and the results
are not correct.
2016-09-05 11:32:58 +02:00
Vojtech Bubnik
7649a1df41 Merge branch 'master' of https://github.com/alexrj/Slic3r into release_candidate_1_3 2016-06-03 17:45:05 +02:00
bubnikv
bb9c3dd9ce Fix of git #3293: More efficient GCode export
This fixes two problems of repeatedly copying data from the C++ layer
to perl, by factoring the copying out of an inner loop.
2016-06-01 20:58:05 +02:00
Joseph Lenox
f2e8c6f3bd Merge pull request #3262 from hyperair/fix-autospeed-F0-moves
Don't use equality comparisons for floats
2016-05-18 22:07:34 -05:00
bubnikv
3a0172888a Adapted to the new infills. 2016-04-15 17:54:47 +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
4fad87e438 Fixed float comparison in combine_infill 2016-03-13 12:24:03 +01:00
Chow Loong Jin
5f8eea9adf Don't use equality comparisons for floats
This fixes an issue where F0 moves arise from 0-width (or 0 layer
height?) support material segments when using autospeed.

Fixes: #3261
2016-03-08 08:28:30 +08:00
Alessandro Ranellucci
a32937cef2 Refactoring: new Layer::make_fill() method 2016-02-20 20:51:07 +01:00
Alessandro Ranellucci
1a286fc906 Fixes and improvements to MotionPlanner, much smarter now 2015-12-21 14:46:35 +01:00
Alessandro Ranellucci
9dc0514844 Use bridge flow and speed for solid_infill_every_layers 2015-12-19 12:48:48 +01:00
Alessandro Ranellucci
3c862836f2 Refactored the Config XS bindings 2015-12-16 12:33:19 +01:00
Alessandro Ranellucci
37ecc61d06 Two fixes for --debug 2015-11-08 09:12:59 +01:00
Alessandro Ranellucci
9f9b5afedb Merge branch 'master' into sender 2015-11-05 11:04:01 +01:00
Alessandro Ranellucci
198dc7d3bd When background processing fails because of an error, display it in an explicit dialog 2015-11-04 19:28:25 +01:00
Alessandro Ranellucci
a25757a66d Fixed regression causing empty prints to hang. #3107 2015-11-04 19:20:34 +01:00
Alessandro Ranellucci
9b21ac877a Merge branch 'master' into sender
Conflicts:
	Build.PL
	lib/Slic3r.pm
	xs/MANIFEST
	xs/src/libslic3r/PrintConfig.hpp
2015-11-01 19:12:13 +01:00
Alessandro Ranellucci
2811af349a Added a new grid infill pattern 2015-11-01 19:03:11 +01:00
Alessandro Ranellucci
9fcec10737 Finished porting LayerRegion to C++ 2015-10-26 23:24:46 +01:00
Alessandro Ranellucci
440af2c81c Bugfix: bridge anchors were shortened under rare circumstances 2015-07-03 23:38:41 +02:00
Alessandro Ranellucci
3e739b87da Finished porting Slic3r::GCode to XS (speed boost!) 2015-07-02 20:24:16 +02:00
Alessandro Ranellucci
fbd640fdc5 Ported GCode::extrude_path() to XS (speed boost!) 2015-07-02 18:57:40 +02:00
Alessandro Ranellucci
801f629fdc Ported Slic3r::GCode storage to XS 2015-07-01 21:47:17 +02:00
Alessandro Ranellucci
280f3f38d7 Ported Slic3r::GCode::OozePrevention storage to XS 2015-07-01 21:01:42 +02:00
Alessandro Ranellucci
bf9cd1b8e6 Ported Slic3r::GCode::AvoidCrossingPerimeters to XS 2015-07-01 20:14:05 +02:00
Alessandro Ranellucci
580d28d071 Finished porting PlaceholderParser to XS 2015-07-01 19:35:22 +02:00
Alessandro Ranellucci
52d3a047a0 One more raft issue causing extra layers. #2723 2015-06-03 09:39:10 +02:00
Alessandro Ranellucci
6018dafc46 Removed debugging statement 2015-06-02 20:03:57 +02:00