-
-
Notifications
You must be signed in to change notification settings - Fork 527
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linear advance support - modify value for infill #108
Comments
On Mon, Oct 21 2019, albert2004 wrote:
For example, fine tuned value for linear advance makes "perfect" edges
of print, but this could be not important for infill. Especially for
infill where a lot of movement changes are performed (honeycomb,
gyroid).
I think it's a nice idea, esp. for grid infill.
Note that infill quality can be important though. Setting K=0 in grid
infill generally tends to produce gaps at crossings nearby walls in
large objects (this is due to the faster print speeds that can be
achieved on long lines, causing a pressure drop in the nozzle).
Increasing extruder jerk to recover speed, if possible, is a better
option. Reducing infill speed can be faster too for high K factors.
Gyroid actually performs very well with LA: it's effectively as fast as
rectilinear and/or grid, since LA kicks in only at perimeters.
Honeycomb is a different story :(
|
It was quick to do and useful, so I added an other conditional gcode window "Between extrusion role change G-code". and you have access to layer_id and extrusion_role ({Perimeter, ExternalPerimeter, OverhangPerimeter, InternalInfill, SolidInfill, TopSolidInfill, BridgeInfill, GapFill, Skirt, SupportMaterial, SupportMaterialInterface, WipeTower, Mixed) I think it's versatile enough to let you do what you want. |
…e inside a layer and not only at the begin and the end. #108
it's ok for you? |
I was able just to quickly check with your provided example but it was not working for me (always else branch was executed). |
OK, Post edited - it looks like asterix are cut down in form as they should be, added special character to keep them visible. |
I will maybe change the gcode generation to allow user to set the gcodes. May use a more powerful langage like lua. So you will may be able to define vars in the filament section and then use them into the gcode generation. see https://github.com/supermerill/Slic3r/projects/3 |
An additional note: at least in marlin 1.1, M900 changes the global state for the planner, which means that it will change the value of the moves planned ahead of time. A change in K factor will be effective in 16/32 moves from the current one, unless M400 is issued just after M900. M400 will also bring the printer to a halt, so there's a huge trade-off to make currently... On a small object, changing K factor for infill might actually decrease the print quality too much. Adding M400 at every change in role will probably slow down the print speed way more than the gain resulting by disabling LA for infill. |
I'm using Marlin 2.x and I do not see (and hear) any delay with M900 setting. It looks like handling was improved in newer versions. |
On Sun, Dec 29 2019, albert2004 wrote:
I'm using Marlin 2.x and I do not see (and hear) any delay with M900
setting. It looks like handling was improved in newer versions.
In marlin 1.1 M900 by itself will not introduce any printing delay.
What I'm referring to is the fact that the new updated K factor will
only be effective in 16+ segments from the moment you set it.
If you want to verify, use K0 for perimeters and a huge value like K5
for infill in a simple cube. Perimeters should be fast, but you should
notice very slow acceleration during infill. If the slowdown is present
also for perimeters, then you're experiencing this delay.
|
I was referring to this behavior. In Marlin 2.x setting is applied immediately, not after 16+ movements. |
Since the advance factor is computed per-segment in LA15, there's no need to stop the planner. Allow changing K freely at each segment. This allows varying quality factors for different filling roles, see: supermerill/SuperSlicer#108 During pause/resume/crashdetect or powerpanic K might temporarily be out of sync when used this way. If this becomes an issue, we might need to store K for each block, as done for the feedrate.
Since the advance factor is computed per-segment in LA15, there's no need to stop the planner. Allow changing K freely at each segment. This allows varying quality factors for different filling roles, see: supermerill/SuperSlicer#108 During pause/resume/crashdetect or powerpanic K might temporarily be out of sync when used this way. If this becomes an issue, we might need to store K for each block, as done for the feedrate.
Since the advance factor is computed per-segment in LA15, there's no need to stop the planner. Allow changing K freely at each segment. This allows varying quality factors for different filling roles, see: supermerill/SuperSlicer#108 During pause/resume/crashdetect or powerpanic K might temporarily be out of sync when used this way. If this becomes an issue, we might need to store K for each block, as done for the feedrate.
Since the advance factor is computed per-segment in LA15, there's no need to stop the planner. Allow changing K freely at each segment. This allows varying quality factors for different filling roles, see: supermerill/SuperSlicer#108 During pause/resume/crashdetect or powerpanic K might temporarily be out of sync when used this way. If this becomes an issue, we might need to store K for each block, as done for the feedrate.
Is the extrusion role "perimeter" inclusive of all perimeter types? |
here are the roles, they are exclusive, so ExternalPerimeter aren't Perimeter
|
Version
Any
Operating system type + version
Any
3D printer brand / version + firmware version (if known)
Any with Marlin FW
Behavior
Currently, it is possible to set linear advance feature value in slicer in a custom G-Code section.
This is usefull function but I think it could be tuned to make it variable.
For example, fine tuned value for linear advance makes "perfect" edges of print, but this could be not important for infill. Especially for infill where a lot of movement changes are performed (honeycomb, gyroid).
I would like to have a possibility to:
Is this a new feature request?
Yes
The text was updated successfully, but these errors were encountered: