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
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
b7af7276c9
Instantiate the new C++ filler. It will be used for the supports first.
2016-10-03 16:59:00 +02:00
bubnikv
790b640521
Visualization of fill surfaces.
2016-09-26 13:56:24 +02:00
bubnikv
b2a6f43923
Documented perl modules.
2016-09-13 11:24:55 +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
Alessandro Ranellucci
4fad87e438
Fixed float comparison in combine_infill
2016-03-13 12:24:03 +01:00
Alessandro Ranellucci
a32937cef2
Refactoring: new Layer::make_fill() method
2016-02-20 20:51:07 +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
321b1a90a2
Two fixes for --debug
2015-11-08 09:13:26 +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
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
ee66392e11
Fix numerical issues causing incomplete raft under certain circumstances. Includes a minor refactoring of raft layer logic. #2723
2015-06-02 19:44:29 +02:00
Alessandro Ranellucci
13b63d06ed
Use thick raft layers as we do for support material layers. #2723
2015-03-09 20:00:55 +01:00
Alessandro Ranellucci
8654537e55
Use support material layer height for raft layer instead of object layer height. #2723
2015-03-09 19:36:23 +01:00
Alessandro Ranellucci
d8ee9dd5f5
Limit first object layer height correctly when using a larger support material extruder. #2722
2015-03-09 19:27:57 +01:00
Alessandro Ranellucci
722e94513c
Refactoring: removed the non-idempotent init_extruders() step. Also, infill_extruder was not limited to the available number of extruders when slicing from the plater, and support material extruder was considered also when support material was disabled
2015-03-06 09:56:58 +01:00
Alessandro Ranellucci
45c91b2ae9
Don't trigger extra perimeters when less than 30% of the upper loops would benefit from it. #2664 . Also fixes #2610
2015-02-24 00:34:43 +01:00
Alessandro Ranellucci
e88cf466fe
A couple notes about infill_only_where_needed
2015-02-23 00:55:00 +01:00
Alessandro Ranellucci
2655f3f816
Better and more robust implementation of infill_only_where_needed
2015-02-23 00:44:51 +01:00
Chow Loong Jin
073681a50a
Get first_layer_extrusion_width from PrintConfig instead of PrintObjectConfig
...
This fixes an issue where the support material doesn't honour a custom first
layer extrusion width.
Fixes : #2662
2015-02-17 13:59:46 +08:00
Alessandro Ranellucci
c0f453f83e
Simpler and more robust implementation of extra perimeters. #2395
2015-02-15 21:58:14 +01:00
Alessandro Ranellucci
6eb1fa36ed
Bugfix: bridge speed was still used for first object layer above raft when support_material_contact_distance == 0. Includes regression tests. #2656
2015-02-14 12:47:33 +01:00
Alessandro Ranellucci
fe4f79ba90
Fixed regression causing random loss of infill because of corrupt thin polygons returned by Clipper. #2539
2015-01-30 10:12:31 +01:00
Alessandro Ranellucci
7b980c1dc9
New option for vertical distance between object and support material, with special handling of the 0 case that disabled bridge flow/speed in order to allow for soluble material. #2491 #2272 #2069 #1942 #2435 #1703
2015-01-19 09:52:24 +01:00
Alessandro Ranellucci
9f0283f808
Minor issue when dealing with files with empty layers at bottom. #2553
2015-01-18 12:35:05 +01:00
Alessandro Ranellucci
04aa240265
Only apply perimeter/infill overlap to the endpoints of rectilinear infill (and do that in a more proper way)
2015-01-13 20:55:20 +01:00
Alessandro Ranellucci
4848cb7606
Ported PrintObject::bridge_over_infill() to XS
2014-12-24 10:20:55 +01:00
Alessandro Ranellucci
5d3cd792eb
Make infill_only_where_needed idempotent. #2198
2014-12-24 01:29:36 +01:00
Alessandro Ranellucci
e79aa2e81c
New --solid-infill-extruder option. Includes a refactoring of the strategy used to order layer extrusions according to their extruder and island; toolchanges and travel moves should be more optimized now. #618
2014-12-17 00:34:00 +01:00
Alessandro Ranellucci
e9166a8fe6
Use a semaphore to synchronize threads instead of blocking with join(). Lock threads array in order to ensure all of them are signalled. #2394
2014-12-13 15:01:53 +01:00
Alessandro Ranellucci
360dee862b
Keep model objects aligned to Z = 0 in plater
2014-12-12 22:43:56 +01:00
Alessandro Ranellucci
d350241da3
Make combine_infill() completely idempotent. Includes unit testing
2014-12-08 21:23:42 +01:00
Alessandro Ranellucci
9a9ba02d85
Bugfix: infill was not correctly generated when infill_every_layers was used along with raft_layers. Includes regression test. #2396
2014-12-08 20:14:04 +01:00
Alessandro Ranellucci
eb23990d6d
Ported PrintObject::total_layer_count() to XS
2014-12-01 00:00:12 +01:00
Alessandro Ranellucci
c7f5753a28
Ported PrintObject::bounding_box() to XS
2014-12-01 00:00:12 +01:00
Alessandro Ranellucci
33fe53fd7c
Ported three PrintObject methods to XS
2014-11-13 00:34:56 +01:00
Alessandro Ranellucci
334086d605
Bugfix: skirt and brim were not recalculated when objects where just moved in plater
2014-11-12 23:28:42 +01:00
Alessandro Ranellucci
b69caff93c
Ported LayerRegion::make_slices() to XS
2014-11-09 16:24:07 +01:00
Alessandro Ranellucci
3e4c572164
Ported some methods including add_model_object() and apply_config() to XS
2014-11-09 12:25:59 +01:00