64 Commits

Author SHA1 Message Date
Vojtech Bubnik
014953c864 Merge branch 'et_spe_1784_binary_gcode' into master_262 2023-08-30 12:52:02 +02:00
Vojtech Bubnik
2f94681dd2 ArcWelder: Fixing out-of-vector access. 2023-08-29 16:53:33 +02:00
Vojtech Bubnik
3cfe2f4a3a Merge branch 'vb_arc_welder' into master_262 2023-08-28 15:50:00 +02:00
tamasmeszaros
0b31ef6e1e Beginning of arrange gen2 2023-08-16 09:59:10 +02:00
Vojtech Bubnik
e0baccd654 ArcWelder: Disabled for pressure equalizer.
Fixed some compiler warnings
2023-07-27 10:04:21 +02:00
Vojtech Bubnik
98c011d59b ArcWelder: Improved resolution of arc discretization in G-code preview 2023-07-26 11:24:32 +02:00
Vojtech Bubnik
95641d0269 ArcWelder: Fixed arc_angle() in case the two arc points are further
than a circle diameter. This may happen for a perfectly valid
180 degrees circle due to numerical errors.

Added some asserts and comments elsewhere.
2023-07-24 17:18:20 +02:00
Vojtech Bubnik
bde6fb2528 ArcWelder: Smooth interpolation of skirt & brim
Lower resolution (higher decimation rate) for
sparse infill: 3x
support: 4x
skirt+brim: 4x
2023-07-18 11:31:23 +02:00
Vojtech Bubnik
b4b9f2fb2b ArcWelder: Fixed some compiler warnings 2023-07-17 17:17:04 +02:00
Vojtech Bubnik
7eca48b755 ArcWelder: Extended cooling buffer with G2/G3 IJ/R 2023-07-17 16:56:08 +02:00
Vojtech Bubnik
5111a3d4cf Fixed one more double "template template" 2023-07-17 15:46:09 +02:00
Vojtech Bubnik
9319a6152f ArcWelder: Fixed some compiler errors. 2023-07-17 15:21:12 +02:00
Vojtech Bubnik
594e36c70a ArcWelder bugfixes 2023-07-17 14:18:56 +02:00
Vojtech Bubnik
9fe36fc300 WIP Arc interpolation bugfixes 2023-07-15 12:31:55 +02:00
Vojtech Bubnik
7551b4ffd3 ArcWelder: Bugfixes & switchable G2/3 R vs. IJ 2023-07-14 16:22:03 +02:00
Vojtech Bubnik
3df8da662e WIP Arc discretization, arc interpolation and unit tests. 2023-07-14 11:20:55 +02:00
Vojtech Bubnik
19062b4d5f ArcWelder path interpolation based on the work by Brad Hochgesang @FormerLurker.
WIP GCode/SmoothPath.cpp,hpp cache for interpolating extrusion path with arches.
Removed Perl test t/geometry.t, replaced with C++ tests.
Refactored ExtrusionEntity and derived classes to hold extrusion attributes in new ExtrusionFlow/ExtrusionAttributes classes.
Reworked path ordering in G-code export to never copy polylines, but to work with a new "flipped" attribute.
Reworked G-code export to interpolate extrusion paths with smooth paths and to extrude those smooth paths.
New parameters: arc_fitting, arc_fitting_tolerance
Renamed GCode class to GCodeGenerator
Moved GCodeWriter.cpp/hpp to GCode/
Moved Wipe from from GCode.cpp,hpp to GCode/Wipe.cpp,hpp
Moved WipeTowerIntegration from GCode.cpp,hpp to GCode/WipeTowerIntegration.cpp,hpp
New variant of douglas_peucker() to simplify range of iterators in place.
Refactored wipe in general and wipe on perimeters / hiding seams.

WIP: Convert estimate_speed_from_extrusion_quality() and its application to smooth paths.
WIP: Cooling buffer to process G2G3, disable arc fitting for filters that cannot process it.
2023-07-13 11:54:42 +02:00
Lukas Matena
f57de43680 Fixed several more warnings 2023-03-23 22:59:01 +01:00
Lukas Matena
1fbbaaae9b Fixed several warnings 2023-03-07 14:47:25 +01:00
Vojtech Bubnik
978f5c8b47 Merge remote-tracking branch 'remotes/origin/master' into vb_ensurovani 2023-02-17 15:20:47 +01:00
Lukas Matena
21c76d2e2e Fixed a typo in assert 2023-02-10 12:25:49 +01:00
Vojtech Bubnik
001358cbba Merge remote-tracking branch 'remotes/origin/master' into vb_ensurovani 2023-02-02 09:53:14 +01:00
Lukáš Hejl
8ac60ccc7a Extend the algorithm for detecting non-planar Voronoi diagrams to include testing orientation between a line and a parabola and testing orientation between two parabolas. It fixed most of the issues reported in #8846.
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
2023-01-11 22:18:00 +01:00
Vojtech Bubnik
7cb3007558 Fixed ThickPolyline clear(), which did not clear widths.
Fixed by refactoring ThickPolyline to compose Polyline instead
of being derived of it.
2023-01-10 12:18:06 +01:00
Vojtech Bubnik
479a39ce0e Fixed some compiler warnings 2023-01-04 16:41:42 +01:00
Lukas Matena
a37f09edaa Measurement: optimize feature extraction:
- do not call ransac when not needed
- decrease number of ransac iterations
- precalculate inverse of transformation matrix
- pass the min error from ransac algorithm, do not calculate it again
2022-12-06 09:57:24 +01:00
Vojtech Bubnik
a98467f661 Merge remote-tracking branch 'remotes/origin/master' into vb_treesupports 2022-11-18 13:26:48 +01:00
Vojtech Bubnik
fe51f77839 Improvements in performance of Medial Axis algorithm.
Fixes Slicing slows or hangs on "Generating Permiters 20%" cpu load is at 100% #8164
Fixes Slicing hangs on generating perimeters with thing:3565827 (30g) #3259
2022-11-16 12:03:31 +01:00
Pavel Mikuš
06fbab12fe
Pm overhang extra perimeters (#7)
Implementation of extra perimeters on steep overhangs/flat unsupported parts
Also contains:
Principal components computation over polygon area
New fast bridge direction estimation which minimizes amount of unanchored bridge endpoints
2022-11-09 10:38:36 +01:00
Lukas Matena
d7a34f7e40 Merge branch 'master_250' 2022-08-30 16:31:07 +02:00
Lukáš Hejl
de48bcd1b2 Fix of #8724, #8747, and #8753: Crash when Voronoi vertexes of a finite edge have some coordinate NaN or infinite. 2022-08-30 08:28:14 +02:00
Lukas Matena
bce2b148f4 Merged 2.5.0-beta1 into master (NO CONFLICTS FIXED) 2022-08-15 13:41:40 +02:00
PavelMikus
44a388d560 prefer enforcers over blockers, lower the threshold distance,
dynamic modification of segments count in alignment based on smoothnes
2022-08-11 15:30:51 +02:00
Lukáš Hejl
77f5973c25 Fix of #8446: Non-planar Voronoi diagram.
This is the follow-up to 63c66f4f189b6f3d3a3b95ddd158c66ee5166420. Detection of non-planar (degenerated) Voronoi diagrams was rewritten to check if all neighboring edges of the Voronoi vertex are CCW ordered.
2022-07-26 13:47:40 +02:00
Lukas Matena
fbdf777898 Merge branch 'master_250' 2022-07-15 15:04:10 +02:00
PavelMikus
fec3afa490 cubic spline segment size based on the length of string 2022-07-14 10:15:05 +02:00
Lukas Matena
62e59a4526 Fixing conflicts part 1:
fixed simple conflicts
2022-06-29 16:43:29 +02:00
Lukas Matena
b61714bb3e Merge branch 'master_250' (NO CONFLICTS FIXED):
CONFLICT (content): Merge conflict in resources/profiles/PrusaResearch.idx
CONFLICT (content): Merge conflict in resources/profiles/PrusaResearch.ini
CONFLICT (content): Merge conflict in src/libslic3r/CMakeLists.txt
CONFLICT (content): Merge conflict in src/libslic3r/Fill/Fill.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode.hpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/GCodeProcessor.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/GCodeProcessor.hpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/SeamPlacer.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/SeamPlacer.hpp
CONFLICT (add/add): Merge conflict in src/libslic3r/Geometry/Curves.hpp
CONFLICT (content): Merge conflict in src/libslic3r/PerimeterGenerator.cpp
CONFLICT (content): Merge conflict in src/libslic3r/Point.hpp
CONFLICT (content): Merge conflict in src/libslic3r/PrintConfig.hpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/ConfigWizard.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GCodeViewer.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GLCanvas3D.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GUI_App.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp
CONFLICT (content): Merge conflict in src/slic3r/Utils/FixModelByWin10.cpp
CONFLICT (modify/delete): t/perimeters.t deleted in HEAD and modified in master_250.  Version master_250 of t/perimeters.t left in tree.
CONFLICT (content): Merge conflict in tests/fff_print/CMakeLists.txt
CONFLICT (content): Merge conflict in tests/fff_print/test_fill.cpp
CONFLICT (content): Merge conflict in version.inc
CONFLICT (modify/delete): xs/xsp/PerimeterGenerator.xsp deleted in HEAD and modified in master_250.  Version master_250 of xs/xsp/PerimeterGenerator.xsp left in tree.
2022-06-29 14:37:14 +02:00
PavelMikus
79cfefa2fe potential size_t overflow tiny bug fix 2022-06-23 13:34:24 +02:00
PavelMikus
d59d8eebde Full occlusion guided seam placer backport 2022-06-07 11:12:48 +02:00
Vojtech Bubnik
d4b8d4d0f3 Further Perl unit test porting to C++ and Perl interface reduction:
Ported cooling, gap fill, thin walls and polyline unit tests.
2022-05-05 17:57:57 +02:00
Lukáš Hejl
5a67d0e183 Fixed build on Linux (GCC 11.2). 2022-05-05 13:52:52 +02:00
Vojtech Bubnik
576c167bd5 Ported "avoid crossing perimeters" and bridging unit tests from Perl
to C++.
Further reduced Perl bindings.
Got rid of the ExPolygonCollection wrapper, replaced with ExPolygons.
2022-05-04 18:21:08 +02:00
PavelMikus
47fc39a4ba fixed misleanding or wrong comments of the fitting function 2022-04-25 12:42:51 +02:00
PavelMikus
ae89d65e3e added description for the parameter count increase 2022-04-25 12:42:51 +02:00
PavelMikus
396d3215bd Refactoring of curve fitting algorithm:
removal of artificial extension at the ends of the curve
removal of observation points normalization
added clamping of parameter index which compensates for under-represented spline segments
added parameter for level of freedom at the ends of the curve
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
c19770189f Follow-up to 1c9ba291fe32bc4a4c78cabbab0639b0c164f23f
Refactoring of Curves.hpp for better memory management and vectorization
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
42e802c1b8 Refactoring of Curves.hpp for better memory management and vectorization
(replaced vector of vectors with Eigen 2D matrices).
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
7d02647ebf Removed various Point::ccw() and Point::ccw_angle() methods, they were
provided for Perl bindings and their semantic was confusing.
Implemented free function angle() to measure angle between two vectors.
Reworked Polygon::convex/concave_points(), changed the meaning of their
angle threshold parameter.
Removed some unused methods from Perl bindings and tests.
Reworked the "wipe inside at the external perimeter" function
after Point::ccw_angle() was removed.
2022-04-25 12:42:51 +02:00
PavelMikus
156a60017d fixed ExPolygons dealocation while using EdgeGrid
fixed warnings in Bicubic.h file
2022-04-25 12:42:51 +02:00