Commit Graph
100 Commits
Author SHA1 Message Date
bubnikv a74aaca681 Disable support interface loops by default. 2017-01-25 18:29:10 +01:00
bubnikv 1699864b8a utility class ClosestPointInRadiusLookup 2017-01-25 18:26:06 +01:00
bubnikv c5843988c0 ExtrusionEntity - add only valid polylines 2017-01-25 18:25:14 +01:00
bubnikv 40eaf144f0 new function remove_degenerate(Polylines ...) 2017-01-25 18:23:57 +01:00
bubnikv c46b6ca27e ExtrusionMultiPath perl binding - polyline() method. 2017-01-25 18:22:29 +01:00
bubnikv 081c1d681c Fixed preview of ExtrusionMultiPath instances. 2017-01-20 20:20:41 +01:00
bubnikv c0b3de6248 Hopefully fixes https://github.com/prusa3d/Slic3r/issues/90
Latest master segfaults with perl 5.24.1 #90
The fix achives similar goal to https://github.com/alexrj/Slic3r/pull/3575
but it is simpler.
2017-01-20 16:56:37 +01:00
bubnikv 3985f50c5b Added new file: ExtrusionMultiPath.xsp
Fixed a missing copy constructor of ExtrusionPath.
2017-01-20 15:41:50 +01:00
bubnikv ff25c0ccc2 Improvements of the new support generator:
Variable path thickness for all support layers to avoid over-extrusion.
Supports only in grid cells below the top contacts.
Provision for filtering excessively long perimeter pieces of the support infill lines.
2017-01-20 15:21:05 +01:00
bubnikv 08351b5e48 Fix of ExtrusionMultiPath binding to Perl & G-code generator. 2017-01-20 15:17:32 +01:00
bubnikv 29b986fa76 Improvement of the move semantics on various objects:
The source object will be empty after the move operation.
2017-01-20 14:39:44 +01:00
bubnikv d5f9db76b3 Fix of an inconsistent bottom contact layer thickness
in case two and more bottom contact layers overlap after their extension.

New method modulate_extrusion_by_overlapping_layers() reduces thickness
of an extrusion path where it overlaps in Z with some other paths.

The same trick has yet to be applied to the layers overlapping in Z with
top contact surfaces.
2017-01-19 13:47:06 +01:00
bubnikv 0b90ebd74e Move semantics on MultiPoint, Polygon, Polyline.
Append methods on Polyline.
squared length function on point->DistanceTo
2017-01-19 13:43:29 +01:00
bubnikv 50cdf8e6d1 Move semantics for ExtrusionEntityCollection 2017-01-19 13:37:15 +01:00
bubnikv e016c4e423 New extrusion class: ExtrusionMultiPath
This is similar to an ExtrusionLoop, but it is open.
It may contain multiple chained paths with differing parameters.
This allows one to have a hierarchy of paths, where the ExtrusionEntityCollection
will be chained by the G-code generator, but ExtrusionMultiPath will not.
2017-01-19 13:35:55 +01:00
bubnikv e6b441eea4 Merge branch 'master' of https://github.com/prusa3d/Slic3r 2017-01-16 10:57:06 +01:00
bubnikv 4eed07bbab Fix of the 1st support layer. 2017-01-16 10:56:40 +01:00
bubnikv a747a87e83 Merge pull request #94 from eyal0/fix_rpi_less_than
Change char to int because char might be unsigned
2017-01-12 10:59:22 +01:00
bubnikv 41fbec9063 Only synchronize intermediate layers if explicitely asked for. 2017-01-11 18:05:03 +01:00
bubnikv f0cf7adf84 Bugfix of a new support - first layer thickness of the support. 2017-01-11 17:22:28 +01:00
bubnikv c2ba5901e4 Copy / move assign operators for ExPolygon. 2017-01-11 14:38:24 +01:00
bubnikv c632d08550 Only compile debug output functions for SupportGenerator if SLIC3R_DEBUG is enabled. 2017-01-11 14:37:53 +01:00
bubnikv 87964eb57a Move semantics for the ExPolygon constructor. 2017-01-11 13:44:11 +01:00
bubnikv bd3daeed5a Slightly more efficient PrintObject Layer destruction. 2017-01-11 13:43:33 +01:00
bubnikv fa1506c833 Bugfix of duplicate support print paths. 2017-01-11 13:42:41 +01:00
bubnikv d9ea3df85f Another step to make the new C++ supports working.
Added support_material_xy_spacing configuration.
2017-01-05 09:14:59 +01:00
bubnikv 1ba03af2da Made the config value support_material_xy_spacing relative
to the external perimeter width.
2017-01-05 09:12:24 +01:00
bubnikv bbdaa44acb Const version of a PrintObject::get_region(). Made get_region() inline. 2017-01-05 09:11:36 +01:00
bubnikv b42c5d6dfa Extended the SVG exporting class with export_expolygons()
calculating the contour bounds internally.
2017-01-05 09:10:16 +01:00
bubnikv aad3d4107f Improved debugging of the EdgeGrid distance field function. 2017-01-05 09:09:26 +01:00
bubnikv 07dd06c53c Merge remote-tracking branch 'origin/supports-synchronize-layers' 2017-01-03 10:51:23 +01:00
bubnikv 7a2572a0fb Improved debugging of "ensure vertical wall thickness" feature. 2017-01-03 10:51:19 +01:00
bubnikv 17db5bff8d Fix of
Number of solid top/bottom layers ignored,
Ensure Vertical Shell Thickness interferes with solid top layer count
https://github.com/prusa3d/Slic3r/issues/79
https://github.com/prusa3d/Slic3r/issues/60
2017-01-02 16:51:43 +01:00
bubnikv 479f716625 Improvements in the manual layer width editor. 2016-12-21 16:00:41 +01:00
bubnikv 955bc957ba New supports now do rafts at least to the extent the test cases run through.
New supports enabled, old supports will go away soon.
2016-12-20 12:19:13 +01:00
bubnikv 5614e997a4 Merge pull request #43 from ctgreybeard/dev
xs/Build.pl fails to find boost libraries
2016-12-15 12:55:19 +01:00
bubnikv 6400cec7ae Merge branch 'master' into dev 2016-12-15 12:54:34 +01:00
bubnikv c1f4d06be2 define -DBOOST_LOG_DYN_LINK for boost::log 2016-12-15 09:46:41 +01:00
bubnikv 56e87e3bdb Set BOOST_LOG_DYN_LINK symbol when linking with dynamic boost libraries. 2016-12-14 16:51:27 +01:00
bubnikv a870b69733 Fixed static linking against boost. 2016-12-14 15:43:26 +01:00
bubnikv ff0a8956ee Fixed previous checkin. 2016-12-14 15:42:38 +01:00
bubnikv c79e1cc89b Fixed UI bug on OSX, experimental features made switchable through
environment.
2016-12-14 15:36:18 +01:00
bubnikv 79ff013ea7 Fixed crashes on shader destruction on OSX. 2016-12-14 15:09:12 +01:00
bubnikv ae2e37b4bd Added diagnostics of @LIBS, @INCS to the Build.PL
Extended MANIFEST with new files.
2016-12-13 22:46:28 +01:00
bubnikv 2cd96cabcd Another take to get rid of the templates from the ClipperUtil.hpp
to compile cleanly on OSX.
2016-12-13 22:13:02 +01:00
bubnikv 852b542913 Had troubles with the template instantiation on OSX, so I reverted
them to overloaded functions. This is certainly easier to read and
work with anyway.
2016-12-13 21:30:56 +01:00
bubnikv ddea33d93a Fixed compilation of ClipperUtils on GCC, which is more strict
than VS2013 compiler.
2016-12-13 19:52:28 +01:00
bubnikv e64dcf5e59 VS2013 could compile this, let's hope GCC will as well. 2016-12-13 19:39:20 +01:00
bubnikv 6582182e0c Adapted to the new ClipperUtils.hpp interface by @alexrj 2016-12-13 19:22:23 +01:00
bubnikv b2a5a1d22f Added a move constructor / assignment operator to the old Clipper library
PolyTree class.
2016-12-13 18:59:18 +01:00
bubnikv e22d007ab7 Fixed typo, missing class name. 2016-12-12 23:46:50 +01:00
bubnikv 06540f73f7 Try to fix compilation problems due to Perl crazy macros. 2016-12-12 19:13:33 +01:00
bubnikv ce7717e450 Fix compilation on Linux. 2016-12-12 18:59:35 +01:00
bubnikv e5b77e08de Perl crazy macros strike again, they collide with boost threads. 2016-12-12 18:55:04 +01:00
bubnikv 46b44fc141 User interface of the variable layer thickness. Certainly not finished yet,
but sufficient for evaluation of the prints.
2016-12-12 18:02:24 +01:00
bubnikv 2d030f3a3c Most of the slicing code rewritten to C++. 2016-12-12 17:56:37 +01:00
bubnikv 1ea958158a Support for user definable variable layer thickness, the C++ backend. 2016-12-12 17:53:38 +01:00
bubnikv 2ab86a4895 ConfigOptionVector::get_at(idx)
Avoid using exceptons for normal work flow. Assert if the vector is empty.
2016-12-12 15:56:42 +01:00
bubnikv d775c6c14c Added methods set/add to SurfaceCollection. 2016-12-12 15:54:37 +01:00
bubnikv 333a0b1c0e Shortcuts for zero mesh transformations. 2016-12-12 15:52:04 +01:00
bubnikv 933a0db9ed Minor fix of bridging flow, see @alexrj 3a3b24ec7c803c58919a5401e5804261999875b4 2016-12-12 15:33:14 +01:00
bubnikv 126126cc78 Fixes after the merge of changes by @alexrj. 2016-12-08 19:02:16 +01:00
bubnikv 5d18657ac5 Don't be lazy, use fully qualified Slic3r::Polygon/ExPolygon/Point/Line names 2016-12-08 15:16:09 +01:00
bubnikv 3e8cafa857 Fix of ASCII STL parser. Accept a model even with invalid normals. 2016-12-05 11:39:17 +01:00
bubnikv 330ffed87e Adjusted copyright header of the Perl GLShader module. 2016-12-02 11:19:27 +01:00
bubnikv 7e1af658b6 Initial experiments with vertex / fragment shaders,
prototype to visualize layer thickness.
2016-12-02 11:14:24 +01:00
bubnikv bd618569e1 Print the supports before the object layer at the same height. 2016-11-30 18:54:19 +01:00
bubnikv 26a8017e99 Made the support interface contact loops configurable. 2016-11-30 17:33:55 +01:00
bubnikv 38cb2842ac support_material_synchronize_layers implementation 2016-11-30 16:06:12 +01:00
bubnikv 556204fddc support_material_synchronize_layers configuration value
for synchronization of object layers with print layers.
2016-11-30 16:04:15 +01:00
bubnikv 946b36bb4d Supports using the EdgeGrid simplify_contour 2016-11-29 19:30:59 +01:00
bubnikv 1d44e92a6e Point dot operator and PointHash object for std unique_xxx functions. 2016-11-29 19:29:24 +01:00
bubnikv 5c23ee504c EdgeGrid::contours_simplified for supports 2016-11-29 19:28:33 +01:00
bubnikv ca5ad58ad2 logging of slicing process 2016-11-29 19:27:23 +01:00
bubnikv 85aa802d4b Fix of the last clipperutil safety_offset modification. Handle safety
offset of holes separately, don't forget to reverse them before / after.
2016-11-29 19:26:26 +01:00
bubnikv 792856a505 Bounding Box - new method align_to_grid 2016-11-29 19:25:10 +01:00
bubnikv bde2ee6a7e Step forward in the C++ supports. 2016-11-28 17:36:50 +01:00
bubnikv 8b0784f26c Added a free "cross product" function to Pointf (thinking the Pointf is
really a vector in this case).

Made the == operator inline.
2016-11-28 17:34:52 +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 e93253e270 Extended tracing of Support generator 2016-11-24 15:38:19 +01:00
bubnikv a5b04d5cf3 Support calculation optimized. 2016-11-24 15:05:05 +01:00
bubnikv e02755632e new Utils.hpp 2016-11-24 14:05:06 +01:00
bubnikv 0d20a81354 Log support through boost::log 2016-11-24 13:44:51 +01:00
bubnikv e67e37c772 Supports: Disabled debugging,fix of bottom surface over print. 2016-11-24 11:29:31 +01:00
bubnikv 14df0717ca Fix of new suports. 2016-11-24 10:43:47 +01:00
bubnikv d8be4de6cf One step further to the C++ Supports. 2016-11-23 15:51:47 +01:00
bubnikv 1a1eaa0810 increased version number. 2016-11-20 23:06:56 +01:00
bubnikv a069c41b20 On Windows, load the icon either from the exe, or fron the ico file. 2016-11-20 14:22:26 +01:00
bubnikv 39679f9518 Missed this one at the last check-in. 2016-11-20 12:59:29 +01:00
bubnikv ef69474636 Optimized Layer::merge_slices()
Don't merge classified pieces of layerm->slices, but use the non-split
islands of a layer. For a single region print, these shall be equal.

Added Slic3r-console.ico windows icon for the console Slic3r.
This is a copy of the big icon, with the big images stripped off.
2016-11-20 12:38:59 +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 2085a482c7 admesh: Fixed a problem in loading an STL when compiled with
Visual Studio 2013. Added multiple compile time checks for data
sizes and alignment. The library STL import is not big endian safe, so
added a test for endianity, modified STL export to a faster little endian only.
2016-11-17 16:57:58 +01:00
bubnikv 9772584d78 Tame the Shiny profiler. Make it switchable with define SLIC3R_PROFILE. 2016-11-16 23:11:51 +01:00
bubnikv 3d47c52b47 In "ensure vertical wall thickness", the union_ is called each time
a new layer is added to the shell. This is faster than calling union_
over all collected polygons. Also security offset has been disabled.
2016-11-16 22:16:20 +01:00
bubnikv 6a3bdf43dc ClipperUtils extended with intrusive profiling macros.
offset2() was exteded with a shortcut, if both offset directions
are of the same direction.
2016-11-16 22:12:58 +01:00
bubnikv bcda69c1e5 Extended the Build.PL to understand an environment variable
SLIC3R_PROFILE to set the C++ symbol of the same name to enable
Shiny profiler.
2016-11-16 22:10:04 +01:00
bubnikv c3af189045 Reduced some compiler warnings. 2016-11-16 22:09:00 +01:00
bubnikv 901ec0ad37 Disable includes inside Shiny sources when SLIC3R_PROFILE symbol is not defined. 2016-11-16 22:04:38 +01:00
bubnikv bfbe85b5c2 Some optimization of the "ensure vertical wall thickness" feature. 2016-11-16 18:04:47 +01:00
bubnikv e857833a91 Undef seed macro because of crazy perl macro substitutions. 2016-11-16 13:19:48 +01:00