683 Commits

Author SHA1 Message Date
Lukas Matena
9dc7b70084 Merge branch 'master_27x' 2024-03-27 16:37:47 +01:00
David Kocik
f624c55f6f Store PrusaLink passwords in wxsecretstore 2024-03-25 10:22:30 +01:00
Martin Šach
ea9dfa9a8d Use path generation even on layer change 2024-03-20 14:42:27 +01:00
Martin Šach
f850433e2b Cancel instance before moving to a next object in sequential print 2024-03-14 15:42:52 +01:00
Martin Šach
0207819b57 Split objects in the middle of travel. This works only for single extruder setups (no toolchanges), but is a step forward 2024-03-14 15:42:52 +01:00
Martin Šach
28d935b0b3 Improve cancel object label placement.
* Make LabelObjects hold more state
* Place cancel object labels at proper positions in the gcode
2024-03-14 15:42:52 +01:00
Martin Šach
78cd2f9e68 Move IndexRange.hpp to LayerRegion.hpp and fix warnings 2024-03-05 14:35:41 +01:00
Martin Šach
555424ffbb Fix test of layer region expansion - angle can be N * pi, not just 0. 2024-03-05 14:35:41 +01:00
Martin Šach
bb2186cbcf Refactor: expand_merge_surfaces now uses expansion_zones.
This enables addition of other expansion zones in the future.
For example to make sure bridges are anchored properly even
if there is top fill next to them.
2024-03-05 14:35:41 +01:00
Martin Šach
4d0bae1d3f Refactor: Move bridge expansion to separate function.
This will enable using it in the other expansion calls.
2024-03-05 14:35:41 +01:00
Martin Šach
81d9724436 Refactor: Allow any number of expansion zones in expand_bridges.
Split the function expand_bridges_detect_orientations into
multiple functions. And allow any number of expansion zones
by using a vector instead of explicitly listing the
parameters.
2024-03-05 14:35:41 +01:00
Martin Šach
9797110a96 Refactor: Move "LayerRegion" to separate header and add a test.
Move declarations associated with LayerRegion to a separate header file.
Add test for bridge surface expansion to enable further refactoring.
2024-03-05 14:35:40 +01:00
Lukas Matena
1f87c498cd Merge branch 'master_27x' 2024-02-20 23:01:02 +01:00
Martin Šach
0b4e406b28 Add missing point to the rectangular travel 2024-02-19 15:24:48 +01:00
Martin Šach
5f9f5be614 Add lift to first travel move on layer. Add retraction_length 0 to test, to avoid lifting back up and going back down. 2024-02-14 16:58:47 +01:00
Lukáš Hejl
8784ca0ecf SPE-1729: Try to compute the Voronoi diagram again on modified ExPolygon when an invalid Voronoi diagram is produced during the calculation of the medial axis.
There are several ExPolygons with very thin lines and holes formed by very close (1-5nm) vertices that are on the edge of our resolution. Those thin lines and holes are both unprintable and cause the Voronoi diagram to be invalid.
So, we filtered out such thin lines and holes and tried to compute the Voronoi diagram again.
2024-02-08 15:40:20 +01:00
Lukáš Hejl
fb84f3113a Introduce wrapper class around boost::polygon::voronoi_diagram. 2024-02-08 15:40:02 +01:00
Lukas Matena
a42223f963 Merge branch 'master_27x' 2024-01-26 13:07:19 +01:00
Martin Šach
8cbea4982a Add lift before the first travel move in GCode.cpp 2024-01-23 09:00:58 +01:00
tamasmeszaros
e24be7891e FIxed the issue but TMArrangeKernel needed changes
fixing object function not favoring existing pile to stick to

Trying to fix problem with shit+arrange not sticking to existing objects
2024-01-17 14:42:17 +01:00
Martin Šach
97ba0fb478 Fix retraction test 2024-01-17 13:09:26 +01:00
Martin Šach
f9283728d6 During first layer change, do not actually move z.
This enables the user to set his own z in start gcode. Fixes #11843.
2024-01-17 12:22:22 +01:00
Lukáš Hejl
da57489874 Implement lift before obstacles that take into account already extruder extrusions on the current layer.
Ignore the first intersection of the travel path with the object from which the travel starts.

Created a new class TravelObstacleTracker, for wrapping all data structures related to lift before obstacles.
2024-01-17 12:22:22 +01:00
Lukáš Hejl
2fc9299c65 Use max value of double instead of std::optional in get_first_crossed_line_distance() and get_obstacle_adjusted_slope_end(). 2024-01-17 12:22:22 +01:00
Lukáš Hejl
5858cbf0f7 Fix warnings in Travels tests. 2024-01-17 12:22:22 +01:00
SachCZ
7f397cd7b3 Implement ramping layer change using a tag in gcode
During layer change, instead of generating the gcode, generate a placeholder tag. Then at the end of layer processing replace this tag with a ramping travel move.
This solves the issue, that one does not know the starting point of the current layer where the layer change gcode would be originally generate.
The ramping layer changes uses smoothing of the ramping travel. Also it is adjusted in such a way that it increases the ramp angle when the travel is too short, to always reach the next layer.
2024-01-17 12:22:19 +01:00
SachCZ
24e3254697 Smooth z-hop curve to avoid unreasonably high jerk setting.
* Replace the ramping travel with a smooth ramping travel on marlin 2 under the right circumstances.
2024-01-17 12:21:36 +01:00
Martin Šach
b287bbc5dc Remove obsolete cmake find script and also remove Fill.hpp 2024-01-08 10:27:38 +01:00
Martin Šach
6b0dcc658d Fix narrowing conversion and memory leak in tests 2024-01-08 10:27:38 +01:00
Martin Šach
6b01ae30db Rewrite xs/t/15_config.t to c++. 2024-01-08 10:27:38 +01:00
Martin Šach
9164dd55e6 Rewrite xs/t/09_polyline.t to c++ 2024-01-08 10:27:38 +01:00
Martin Šach
37a707b05f Rewrite xs/t/03_point.t to c++ 2024-01-08 10:27:38 +01:00
Martin Šach
f78ab3e788 Rewrite xs/t/10_line.t to c++ 2024-01-08 10:27:38 +01:00
Martin Šach
3e28ea3379 Rewrite layers.t to c++ 2024-01-08 10:27:38 +01:00
Martin Šach
6e871a874a Rewrite gcode.t to c++ 2024-01-08 10:27:38 +01:00
Martin Šach
852faddc5b Rewrite retraction.t to c++ 2024-01-08 10:27:38 +01:00
Lukáš Hejl
da88c2affc Silence the warning about the unused total_extrusion_length in Arachne tests. 2024-01-04 10:22:27 +01:00
Lukáš Hejl
a27aea4598 Remove the unused variable new_radius in Arc Welder tests. 2024-01-04 10:22:27 +01:00
Lukas Matena
b82aa37bf5 Fixed build when building without GUI 2024-01-02 16:01:14 +01:00
tamasmeszaros
f85061d737 Remove commented trash test code 2023-12-19 13:23:11 +01:00
Martin Šach
e298593a2e Refactor: Separate gcode generator layer changes utilities to a file. 2023-12-06 09:49:56 +01:00
Martin Šach
e13d3cdbf2 Refactor: Move gcode travel utils to a separate file. 2023-12-06 09:49:56 +01:00
Martin Šach
2175fc3f4d Fix lift before obstacle over multiple instances. 2023-12-06 09:49:56 +01:00
Martin Šach
e8064cdb14 Refactor: SupportSpotsGenerator integrals implementation improvements.
Split Integrals constructor to accept polygon and polygons.
Add operator+(Integrals, Integrals).
Make sure extrusion extraction for integral calculation throws in invalid case.
2023-12-01 09:28:21 +01:00
Martin Šach
782fa47791 Remove usage of polygons_covered_by_width.
In SupportSpotsGenerator there is a need to compute integral over
extrusions.
The mentioned function is slow for this use case. As it solves a harder
problem.
It is better to iterate the extrusion lines directly.
2023-12-01 09:28:21 +01:00
Martin Šach
384d245be7 Add basic implementation of an obstacle finding algorithm during travels.
A line distancer over previous layer is constructed. It is then queried
during travel planing. If an obstacle is found in the travel path,
the travel algorithm ensures minimal elevation before the obstacle.
2023-11-10 12:19:39 +01:00
Martin Šach
a4a7ac4a4e Add helical layer change.
Previously the layer change was straight up which caused stringing.
To solve this, a helical travel is implemented when changing layers.
2023-11-10 12:19:39 +01:00
Martin Šach
49455cf427 Replace GCode.cpp travel_to with more general z-hop strategy.
The new travel has an initial flat part, sloped part and
once the travel height reaches maxima a flat part again.
Also, the notion of extruder lift is removed. It is used no more.
Consequently the retract_lift parameter lost its original meaning.
2023-11-10 12:19:39 +01:00
Filip Sykala - NTB T15p
894e88a503 Set svg file data as optional in emboss shape (text do not contain it) 2023-11-01 18:23:28 +01:00
Lukáš Hejl
6df4891e6c SPE-1837: Fixed issue when perimeters weren't generated with Arachne. 2023-10-31 10:03:17 +01:00