Martin Šach
aa6132ebb6
Scarf seam implementation.
2024-09-26 14:43:09 +02:00
Martin Šach
6cfad69a5a
Fix first travel to wipe tower after layer change
2024-08-12 15:50:01 +02:00
Lukáš Hejl
7f666265e1
SPE-2368: Reduce the number of emitted M106 when dynamic fan speed on overhangs is enabled.
...
This fixed duplicity M106, which doesn't have any effect.
Also, it was implemented hysteresis that filters out small back-and-forth changes in fan speeds.
2024-08-09 09:56:42 +02:00
Martin Šach
af4a1d67a9
Fix cancel object annotation
2024-07-10 15:18:52 +02:00
Martin Šach
61e015fc38
Fix layer change handling
2024-07-10 15:18:52 +02:00
Martin Šach
131f05c3c4
Add offset to extrusions an make sure to reset origin
2024-07-10 15:18:52 +02:00
Martin Šach
dca7318896
Refactor process layer single object
2024-07-10 15:18:52 +02:00
Martin Šach
a321a97f36
Use smooth path to extrude brim
2024-07-10 15:18:52 +02:00
Martin Šach
d2d9762322
Smooth path for infills
2024-07-10 15:18:52 +02:00
Martin Šach
d54f20a12c
failed arc welder in path ordering
2024-07-10 15:18:52 +02:00
Martin Šach
773c34f906
Move skirt smooth path generation to extrusion order
2024-07-10 15:18:52 +02:00
Martin Šach
a5f6da6bd5
Move get_sorted_extrusions to a gcode generator method
2024-07-10 15:18:52 +02:00
Martin Šach
02c615999b
Separate extrusion order utilities to a file.
2024-07-10 15:18:50 +02:00
Martin Šach
bee25a4652
Precalculate noraml and overriden extrusions, before exporting
2024-07-10 15:17:43 +02:00
Martin Šach
e922a8f84f
Move slice_extrusions and support extrusions one layer up
2024-07-10 15:17:43 +02:00
Martin Šach
d41304a42a
First extract extrusions than generate gcode
2024-07-10 15:17:43 +02:00
Martin Šach
257888513d
Separate extrusion extraction from extrusion gcode generation
2024-07-10 15:17:43 +02:00
Martin Šach
e1275f7307
Do not use GCodeGenerator::last_position during extrusion extraction and sorting.
2024-07-10 15:17:43 +02:00
Martin Šach
31eab3eb36
Separate 'extrude_infill_ranges' and use 'extract_infill_ranges'
2024-07-10 15:17:43 +02:00
Martin Šach
5a9f9946ba
Separate 'extrude_infill_range'.
2024-07-10 15:17:43 +02:00
Martin Šach
4e7d5453f6
Separate 'extrude_perimeters.'
2024-07-10 15:17:43 +02:00
Martin Šach
96e3e77fef
Prepare fe for include optimization.
...
- Add pragmas to keep necessary headers with symbols not explicitly
stated in the file.
- Use include paths that IWYU understands.
2024-07-08 15:37:02 +02:00
Lukas Matena
d8bf4fed18
Merge branch 'lh_ms_seam_improvements'
2024-05-14 07:33:26 +02:00
Lukas Matena
8d26de63f3
The new chamber_minimal_temperature parameter is taken into account
2024-05-14 07:14:18 +02:00
Lukas Matena
126de4d648
Chamber temperature G-code emission
2024-05-14 07:14:18 +02:00
Martin Šach
e60b8b1193
Seam placement improvements.
...
Previously there was an algirithm that was fitting a curve through
the resulting seam points. This worked for smooth models, but was
failing for some very basic cases (such as a cylinder).
The new algorithm builds on the previously implemented visibility
algirithm but does not do the curve fitting anymore.
Now the code is more separated for the four seam placement
options (rear, random, aligned, nearest).
Nearest and random are handled as one would expect.
Aligned is handled in a more "brute force" manner
(trying multiple seams and picking the best one)
and rear smartly switches between two modes
(center straight line projection and max y).
2024-05-06 10:11:32 +02:00
Lukas Matena
9dc7b70084
Merge branch 'master_27x'
2024-03-27 16:37:47 +01:00
enricoturri1966
858e431f97
Removed obsolete tech ENABLE_GCODE_VIEWER_DATA_CHECKING
2024-03-26 14:41:55 +01:00
Martin Šach
ea9dfa9a8d
Use path generation even on layer change
2024-03-20 14:42:27 +01:00
Martin Šach
1c2e3aed74
Fix reset on layer change by keeping it all the time
2024-03-14 15:42:52 +01:00
Martin Šach
0894ac6d72
Evaluate maybe change instance lazily
2024-03-14 15:42:52 +01:00
Martin Šach
fdbe119658
Make LabelObjects hold state.
...
* This enables setting the object flags anywhere in gcode.
* The flags are then set in such a way that cancel object behaves as expected.
2024-03-14 15:42:52 +01:00
Martin Šach
3fdd02fff5
Use proper z for no sparse layers travel start - this z is used to calculate lift of the travel ( #12330 , SPE-2176)
2024-02-26 16:12:40 +01:00
Martin Šach
8a2db4cf11
Disable retraction replacing in vase mode with ramping enabled.
...
Fixes : #12305
2024-02-22 10:21:07 +01:00
Martin Šach
bc0fc8a789
Fix missing deretraction coused by caching gcode writer. Use find and replace to remove the retraction if not required
2024-02-19 15:27:38 +01:00
Martin Šach
e5656a80c2
Fix wipe before ramping travel
2024-02-19 15:24:48 +01:00
Lukas Matena
601d61ca86
Fixed placeholders extruded_volume and similar: wipe tower was not included
2024-02-07 09:55:37 +01:00
Lukas Matena
642535eecb
Added const Print backpointer into GCodeGenerator
2024-02-07 09:55:37 +01:00
Nohus
540b800a5c
SPE-1922: Place M600 after unretract to prevent printer returns at the position that was already printed with the previous color.
...
This fixes #2672 caused by the default implementation of M600 that returns back to XY position before M600.
2024-02-01 09:34:01 +01:00
Martin Šach
812c40e887
Unify GCodeGenerator travel to first layer position.
...
* Fixes SPE-2116. The reason for this bug was forgotten change in
WipeTowerIntegration after change in gcode.cpp.
* Prevents future similar bugs by unifing the functionality to a method.
2024-01-23 09:00:58 +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
1b0ba60280
Rename m_last_obj_copy to m_current_instance and use struct instead of std::pair.
...
Also, instead of storing the shift of the instance, store the instance index.
2024-01-17 12:22:22 +01:00
Lukáš Hejl
317db5fab4
Move ObjectLayerToPrint from GCodeGenerator to outside to allow using forward declaration.
2024-01-17 12:22:22 +01:00
SachCZ
ff30d7aad3
Replace last_pos and helpers with optional in GCode.cpp
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
Martin Šach
0b3974954d
Remove layer count in GCode.hpp
2024-01-08 10:27:38 +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
f6efd3a501
Fix: Spiral vase missing perimeter
2023-12-04 10:03:34 +01:00