44 Commits

Author SHA1 Message Date
supermerill
1a19b023f0 Merge remote-tracking branch 'remotes/prusa/master'
note: new infill connect, maybe a good idea to get the previous one in case it's better (no useless lines)
note2: fillline overextrude, tofix
2020-11-23 00:28:47 +01:00
Vojtech Bubnik
84693a5810 New get_extents(const std::vector<Points> &pts),
refactored Lian Barsky line clipping
2020-11-16 10:20:47 +01:00
Vojtech Bubnik
4d102ac8ca FillAdaptive:
1) More accurate trimming of an anchor with another infill line
   or by another anchor line.
2) Trimming of very short infill lines, which are not anchored,
   by another infill lines.
2020-11-11 16:49:11 +01:00
Vojtech Bubnik
decda76344 AdaptiveInfill:
1) Shortening the anchor lines when touching another infill line
   to avoid over extrusion.
2) Reduction of the Intersection structure complexity by referencing
   the source lines.
2020-11-10 15:54:32 +01:00
Vojtech Bubnik
89df9c1038 Improvement of AdaptiveFill:
1) Merging of collinear infill lines separated by a thin gap created
   by trimming with the boundary polygon.
2) Sorting of the T-joints separately to the left / right of the common
   line.
3) Trimming self intersections of the anchor lines.
4) Dropping of very short segments, not anchoring short segments.
2020-11-10 13:56:12 +01:00
Vojtech Bubnik
239d588c5d 1) Implemented anchoring of infill lines to perimeters with length
limited anchors, while before a full perimeter segment was always
   taken if possible.
2) Adapted the line infills (grid, stars, triangles, cubic) to 1).
   This also solves a long standing issue of these infills producing
   anchors for each sweep direction independently, thus possibly
   overlapping and overextruding, which was quite detrimental
   in narrow areas.
3) Refactored cubic adaptive infill anchroing algorithm
   for performance and clarity.
2020-11-05 17:32:40 +01:00
supermerill
6fdd615b6e Merge remote-tracking branch 'remotes/prusa/master' into dev 2020-10-18 00:27:32 +02:00
Vojtech Bubnik
37c5fe9923 Refactoring of adaptive cubic / support cubic:
1) Octree is built directly from the triangle mesh by checking
   overlap of a triangle with an octree cell. This shall produce
   a tighter octree with less dense cells.
2) The same method is used for both the adaptive / support cubic infill,
   where for the support cubic infill the non-overhang triangles are
   ignored.
The AABB tree is no more used.
3) Optimized extraction of continuous infill lines in O(1) instead of O(n^2)
2020-09-17 18:39:28 +02:00
tamasmeszaros
5052149b81 Fix build on msvc 2020-08-18 13:45:18 +02:00
tamasmeszaros
4ef52af906 Add dedicated tests for support point generation 2020-08-18 11:41:14 +02:00
tamasmeszaros
7b6565abeb Improvements on mini pillars 2020-08-03 19:05:30 +02:00
Vojtech Bubnik
7b6dff3f03 Little simplification of Point to boost::polygon bindings 2020-05-22 09:29:21 +02:00
Lukas Matena
8afc9338de Merge branch 'lm_fdm_custom_supports_backend' 2020-04-24 15:16:33 +02:00
tamasmeszaros
8c04536514 Integrate scaling and unscaling into Point.hpp 2020-04-23 18:17:50 +02:00
Lukas Matena
79ef456d7c Fixed the algorithm so it works for horizontal triangles
Partial code cleanup
2020-04-21 01:39:40 +02:00
supermerill
f087cf1239 Merge remote-tracking branch 'remotes/prusa/master'
seems to work
need to update profiles & ui
2020-03-26 12:10:30 +01:00
bubnikv
c27297f6cc 64bit coord_t
Vec3i as a vertex index to TriangleMesh constructor
2020-03-25 14:35:41 +01:00
supermerill
dda438c74b Merge commit '5e3e5492487690fb48cd7c4bb0b7e0e019e30a5c' (wip) 2019-12-05 20:53:02 +01:00
bubnikv
c99e7cb0df Ported test_trianglemesh from upstream slic3r, thanks @lordofhyphens 2019-10-15 13:49:28 +02:00
bubnikv
42a858b999 Added test projects for libslic3r and fff_print.
Added test_geometry.cpp from upstream slic3r, thanks @lordofhyphens
Added circle_taubin_newton() for circle center calculation, thanks @lordofhyphens
2019-10-15 09:40:40 +02:00
supermerill
773972cc2c Merge remote-tracking branch 'remotes/prusa/master'
WIP, in particular, have to review the custom beds svg/stl
2019-07-31 18:22:49 +02:00
bubnikv
9fd0c55eb8 Simplified the "cereal" includes to not clash with Perl includes 2019-07-04 22:09:14 +02:00
bubnikv
d99e932ee8 WIP Undo / Redo: Serialization of the Model / ModelObject / Model instance
using the cereal framework.
2019-06-26 16:29:12 +02:00
remi
9f91aba4f9 debug gcode slice msg.
remove some warnings
add some test stls to use
2019-06-25 10:58:37 +02:00
supermerill
8840d01fb0 Merge remote-tracking branch 'remotes/prusa/master' 2019-05-16 19:55:45 +02:00
bubnikv
6526a8fcaf WIP: Transformation of instances in world coordinate space:
Ulocking the "anisotropic" scaling checkbox will bake the transformation
into meshes to allow for scaling in world axes.

Optimized and templated the stl_transform functions, now also available for 3x3 matrices.
The Canvas3D::reload_scene() now maintains selection even if all volumes of an instance changed their IDs.
2019-04-26 17:28:31 +02:00
supermerill
782d3706e1 Update/clean code where a wrong int type is used (unsafe int, bad type, ...)
as that that can be problematic if the type of coord_t change.
2019-04-08 19:46:46 +02:00
supermerill
16368c9575 Add some cpp test from mainline (thanks to @lordofhyphens)
* to build the tests on windows, you need vs2015 or 2017 with "CRT SDK"
so  you have to also build all deps & slic3r against this compiler.
 * I didn't tried to build the tests on linux/osx, maybe some cmkae changes are needed.
 * I added a slic3r_lib project to be able to link statically the test against all the slic3r project.
 * tests will need many changes to be able to use the new codebase. only the ones in the cmakelists are done right now.
 * some test may be in error, because the behavior of the test vs slic3r isn't defined well enough to make a decision of which one is wrong.
2019-03-29 18:02:25 +01:00
supermerill
8bc9f645f0 Merge remote-tracking branch 'remotes/prusa/master' 2019-03-26 15:42:08 +01:00
bubnikv
c482933845 Fixed a regression issue in the triangle mesh slicing code, where
a broken contour was not glued together using the closest neighbors.
2019-03-11 17:18:38 +01:00
supermerill
12a7143882 Merge remote-tracking branch 'remotes/prusa/master' into masterPE 2019-03-06 01:00:37 +01:00
bubnikv
d0553ece0e Extended tesselation wrapper for other 3d and 2d point types. 2019-02-08 09:26:48 +01:00
supermerill
75775bc909 Thin_wall / medial axis:
- reworked thin_variable_width (discretization into segments of constant width)
 - bugfix taper_ends
 - add setting thin_walls_overlap to control the perimeter/thin wall overlap
2019-02-07 18:25:42 +01:00
supermerill
f49af26123 cleaning warnings, add % for support interface gap 2019-01-30 15:52:30 +01:00
supermerill
1999974f7a Merge remote-tracking branch 'remotes/prusa/master' into masterPE 2019-01-25 19:45:50 +01:00
supermerill
162132eb35 gyroid & 3Dhoneycomb: now 'connected lines' follow the perimeters 2019-01-24 11:54:48 +01:00
bubnikv
5b1c1d5922 Fixed a bug in the Win32 start wrapper (wrong number of parameters was passed for the GUI slic3r.exe).
Reworked command line processing for the GUI slic3r. Now the config is loaded first, then the model files (also the configs from AMF/3MF are applied), and lastly the free standing parameters are applied.
Fixed unescaping for command line parameters. The string parameters are now not unescaped, string vector parameters are unescaped only if enquoted.
Tab::load_current_preset() - disabled CallAfter for predictability. With CallAfter, it was difficult to call the method in sequence with other methods.
Fixed some missing ->Destroy() calls on dialogs created from MainFrame
Fixed some compiler warnings.
2019-01-09 10:43:17 +01:00
supermerill
a36142d258 merge complete 2018-12-19 17:14:11 +01:00
bubnikv
6e30c60afc Fixed compilation on OSX. 2018-12-11 18:56:23 +01:00
bubnikv
52db7b055a WIP: Merged commits from stable between 1.41.2-beta and 1.42.2 final.
Changes in SupportMaterial.cpp, TriangleMesh.cpp and 01_trianglemesh.t
are yet to be merged.

WIP: Refactoring of layer height editing.
Removed layer_height_ranges from PrintObject, as the Print/PrintObject
now hold their copies of Model/ModelObject.
2018-12-11 16:33:43 +01:00
bubnikv
041de161a9 Fixes to storing and loading configs from AMF/3MF. 2018-11-07 14:57:50 +01:00
Vojtech Kral
1f926964ee WIP: Plater, build fixes 2018-10-08 17:41:37 +02:00
Vojtech Kral
342b584399 WIP: Plater 2018-10-01 09:28:40 +02:00
bubnikv
0558b53493 WIP: Moved sources int src/, separated most of the source code from Perl.
The XS was left only for the unit / integration tests, and it links
libslic3r only. No wxWidgets are allowed to be used from Perl starting
from now.
2018-09-19 11:02:24 +02:00