bubnikv
39679f9518
Missed this one at the last check-in.
2016-11-20 12:59:29 +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
c3af189045
Reduced some compiler warnings.
2016-11-16 22:09:00 +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
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
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
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
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
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
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
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
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
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
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
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
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
620c6c7378
Ported from the playground branch. Various documentation and optimization.
2016-09-13 13:30:00 +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
9fcc8fe9ae
Meged with release_candidate_1_3
2016-09-12 11:29:39 +02:00
Alessandro Ranellucci
9e8022f6f6
More refactoring to medial axis and gap fill, more robust
2016-05-20 17:03:57 +02:00
Vojtech Bubnik
d022493297
Merge remote-tracking branch 'upstream/master'
2016-05-03 22:05:31 +02:00
bubnikv
f767ce816b
Optimized and improved rectilinear fill.
2016-04-13 20:45:44 +02: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
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
7da68c91a5
Vojtech likes to use Sublime on Windows to get the wheels rolling.
2016-04-11 17:05:58 +02:00
Alessandro Ranellucci
660b56acb5
Fixed type error
2016-03-26 12:21:54 +01:00
Alessandro Ranellucci
7c8b71012c
Force the 'nearest' strategy for starting skirt loops
2015-12-21 15:02:39 +01:00
Alessandro Ranellucci
934bd43e35
More refactoring on Config XS bindings
2015-12-16 12:58:06 +01:00
Alessandro Ranellucci
3c862836f2
Refactored the Config XS bindings
2015-12-16 12:33:19 +01:00
Alessandro Ranellucci
e2f2761a00
One more fix for compilation
2015-12-08 11:07:45 +01:00
Alessandro Ranellucci
4913e90e10
Remove any Perl related code from libslic3r
2015-12-08 00:39:54 +01:00
Alessandro Ranellucci
3fac8cd77e
Large refactoring of the Config classes
2015-12-07 19:39:49 +01:00
Alessandro Ranellucci
7e1fac8f76
Separate libslic3r code from slic3r application code
2015-12-06 12:54:01 +01:00
Alessandro Ranellucci
e2b203ba8d
Disable screensaver while projecting (untested on Windows)
2015-12-04 21:25:45 +01:00
Alessandro Ranellucci
7523550066
Try to fix compilation on older Perls
2015-12-02 19:57:03 +01:00
Alessandro Ranellucci
1bebe6097b
Make test happy
2015-12-02 19:39:16 +01:00
Alessandro Ranellucci
4f8a18bbad
Ported Layer::maker_perimeters() to XS
2015-12-02 19:32:57 +01:00
Alessandro Ranellucci
3a9cf91f83
Ported a couple more methods to XS
2015-12-02 18:29:33 +01:00
Alessandro Ranellucci
ed75219215
Ported mode Model methods to XS
2015-12-02 18:06:18 +01:00
Alessandro Ranellucci
dfce3a3138
Ported _arrange() and arrange_object() to XS
2015-12-01 21:51:16 +01:00
Alessandro Ranellucci
9febb10bd7
Smoother manual control movements
2015-11-08 10:20:47 +01:00
Alessandro Ranellucci
9a8724cdd0
More compilation changes for Win32
2015-11-06 11:51:24 +01:00
Alessandro Ranellucci
9f9b5afedb
Merge branch 'master' into sender
2015-11-05 11:04:01 +01:00
Alessandro Ranellucci
61f0a9e4da
Replace the flip word with mirror. #3060
2015-11-04 23:11:30 +01:00
Alessandro Ranellucci
f8d2c69713
Fixed compilation warnings and a potential bug in MotionPlanner, as reported in #3054
2015-11-04 20:50:32 +01:00
Alessandro Ranellucci
9ee6829ebc
Implemented connection timeout in C++
2015-11-02 20:36:36 +01:00
Alessandro Ranellucci
fc1a7471cf
Several improvements to the print job queue
2015-11-02 01:18:05 +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
9fcec10737
Finished porting LayerRegion to C++
2015-10-26 23:24:46 +01:00
Alessandro Ranellucci
6ac79e3ed6
Ported make_perimeters() to C++
2015-07-23 16:27:21 +02:00
Alessandro Ranellucci
b4515cf695
Finished porting PerimeterGenerator to C++
2015-07-23 15:53:02 +02:00
Alessandro Ranellucci
3e739b87da
Finished porting Slic3r::GCode to XS (speed boost!)
2015-07-02 20:24:16 +02:00
Alessandro Ranellucci
0ad4296aaf
Ported GCode::set_extruders() and GCode::change_layer() to XS
2015-07-02 19:33:08 +02:00
Alessandro Ranellucci
9a17efc480
Use GCodeWriter for path segments (refactoring)
2015-07-02 19:14:55 +02:00
Alessandro Ranellucci
fbd640fdc5
Ported GCode::extrude_path() to XS (speed boost!)
2015-07-02 18:57:40 +02:00
Alessandro Ranellucci
b025efe729
Ported GCode::travel_to() to XS
2015-07-02 15:12:04 +02:00
Alessandro Ranellucci
a6f4c8e567
Ported GCode::set_extruder() and OozePrevention
2015-07-02 15:02:20 +02:00
Alessandro Ranellucci
b14290b9f6
Make tests happy
2015-07-02 14:29:20 +02:00
Alessandro Ranellucci
5571144c0e
Ported Slic3r::GCode::needs_retraction() to XS
2015-07-01 23:14:40 +02:00
Alessandro Ranellucci
b4019bb438
Ported more Slic3r::GCode methods to XS
2015-07-01 23:00:52 +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
b43dd92766
Ported Slic3r::GCode::Wipe storage to XS
2015-07-01 20:57:16 +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
249088b4f8
Ported Config::setenv() to XS
2015-07-01 18:18:25 +02:00
Alessandro Ranellucci
f361d8ad43
Ported PlaceholderParser::apply_env_variables() to XS
2015-07-01 17:56:38 +02:00
Alessandro Ranellucci
7f70da97b4
New experimental autospeed feature. #2810
2015-05-31 22:04:32 +02:00
Alessandro Ranellucci
13b7316807
Merge branch 'master' into sender
...
Conflicts:
Build.PL
lib/Slic3r/GUI/MainFrame.pm
2015-05-28 18:05:36 +02:00
Alessandro Ranellucci
7d81aee62f
Added the [scale] placeholder. #2791
2015-05-02 21:59:15 +02:00
Alessandro Ranellucci
d6d7880507
Ported Slic3r::Geometry::arrange() to C++/XS
2015-04-29 19:19:07 +02:00
Alessandro Ranellucci
5eb3bc52ef
Ported ModelObject::rotate() and ModelObject::flip() to XS, as well as axes constants
2015-04-16 21:22:04 +02:00
Alessandro Ranellucci
be2f46ca68
Ported Layer::merge_slices() to XS
2015-04-16 20:44:55 +02:00
Alessandro Ranellucci
1f8ef2a63c
Fixed regression introduced by the recent PerimeterGenerator refactoring causing spiral vase not to be correctly skipped on multi-loop layers. Includes regression test. #2761
2015-04-12 20:16:27 +02: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
6cab5668e3
Restore correct ordering of concentric infill loops, preventing them from being reordered during G-code generation
2015-03-09 18:28:07 +01:00
Alessandro Ranellucci
d2172b4383
Merge branch 'master' into sender
2015-03-06 22:15:43 +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
ba6ae12635
Change end_program() to postamble()
2015-02-15 17:09:17 +01:00
Alexander Rössler
f2fa8cb63f
added end_program() function to GCodeWriter
2015-02-07 12:36:29 +01:00
Alessandro Ranellucci
3ae6f2630e
Merge branch 'master' into sender
...
Conflicts:
Build.PL
2015-02-01 14:07:32 +01:00
Alessandro Ranellucci
bb3bf28e59
Ported prepare_fill_surfaces() to XS/C++
2015-02-01 12:43:58 +01:00
Alessandro Ranellucci
8605969dc5
Don't output slic3r:z attribute in SVG for raft layers
2015-01-30 18:45:30 +01:00
Alessandro Ranellucci
e2b1b52679
Added a new Slic3r::Geometry::simplify_polygons() function
2015-01-30 18:33:20 +01:00
Alessandro Ranellucci
c264969962
Bugfix: crash when rendering lines with zero length in 3D preview. #2569
2015-01-25 15:21:45 +01:00
Alessandro Ranellucci
a5c0ffe963
Faster loading of 3D preview and much less memory used
2015-01-24 23:35:29 +01:00
Alessandro Ranellucci
8791f5a493
Cleanup of some method signatures and of XS return types
2015-01-19 18:53:04 +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
2bbb6c570b
Ported toolpaths rendering to C++
2015-01-18 01:07:22 +01:00
Alessandro Ranellucci
e749f6040f
New +Line::intersection_infinite() method
2015-01-16 16:25:39 +01:00
Alessandro Ranellucci
e0a3d2577c
Initial work for 3D rendering of toolpaths
2015-01-15 20:06:30 +01:00
Alessandro Ranellucci
18e815d032
More efficient 3D preview of slices
2015-01-15 18:49:07 +01:00