Lukáš Hejl
2de1f3aa45
SPE-2256: Fix the issue that we used the old Voronoi graph during the detection of invalid Voronoi diagrams.
...
This happens because we didn't set a modified flag that is required to be set before we use the new Voronoi graph.
Possibly related to #12385
2024-04-30 12:48:46 +02:00
Lukáš Hejl
a3190d94d0
SPE-1804: Single perimeter for top and bottom layers working with both perimeter generators.
...
Co-authored-by: supermerill <merill@free.fr>
Co-authored-by: Morton Jonuschat <mjonuschat@gmail.com>
Co-authored-by: Vovodroid <vovodroid@users.noreply.github.com>
Co-authored-by: qing.zhang <qing.zhang@bambulab.com>
Co-authored-by: lane.wei <lane.wei@bambulab.com>
2024-04-24 10:06:56 +02:00
Lukas Matena
d03ec72d3f
Comment-out a failing test for now
2024-04-16 12:54:25 +02:00
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