Skip to content
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

Layer area based fan % parts cooling #10840

Closed
codecranker opened this issue Nov 16, 2021 · 3 comments
Closed

Layer area based fan % parts cooling #10840

codecranker opened this issue Nov 16, 2021 · 3 comments
Labels
Status: Needs Info Needs more information before action can be taken. Type: Discussion Open-ended discussion (compared to specific question).

Comments

@codecranker
Copy link

codecranker commented Nov 16, 2021

Is your feature request related to a problem?

When my printer is working on parts with vertical delineations of small complex sections and large simple ones, it melts the small complex sections or severely over-cools the large simple ones. Min layer time is useless for controlling fan speed because the large simple sections print at much faster travel speed. For these large sections the layer time is the same even though they need like 10X less cooling because printed area is much larger.

This frequently happens printing electronics cases doing risers for PCB mounts. I either over-cool the flat base of the risers making PETG brittle and weak, or melt the pegs. I can't find a min layer time setting that works for both because printer travels so much faster when doing the flat base.

The only solution I have found is slow down travel speed 3-4X which evens out cooling requirements between layers, but more than doubles print time :(

Describe the solution you'd like

I think there should be an option to base fan cooling % on layer cross section instead of layer times. And I think this will work so much better that it will become the default. The cooling needed for a layer depends on area of filament laid down more than anything else. And doing it this way would avoid problems I ran into with simple vs complex sections taking vastly different layer times for the same amount of filament printed.

The current solution falls over when you have parts with a mix of large and small sections that differ greatly in average travel speed. Min layer time is a bad proxy for amount of cooling needed IMO. I think printed layer area will work much better for most cases.

Describe alternatives you've considered

Cura could analyze the size of connected meshes by layer and increase cooling for areas of layer with thin cross section. This sounds way more complicated and I'm not convinced it would work better than simply basing layer cooling % on cross sectional area of the current layer

Affected users and/or printers

This could make parts cooling config simpler and less finicky for everyone.

I tried manually inserting G-code for a few prints to roughly follow layer area for cooling, % and I was able to print the troublesome part at more than double the speed without melting or over-cooling.

Additional information & file uploads

Example config:
enable layer area based fan: bool
layer area/time - min fan : float # layer area (mm^2) / time (sec) to start turning on fan
layer area/time - max fan: float # layer area (mm^2) / time (sec) for fan to reach max speed

so say you want fan on at 10mm^2/sec layer area and max fan at 100mm^2/sec. You turn option on and set those two values and it does the thing
No response

@codecranker codecranker added the Type: New Feature Adding some entirely new functionality. label Nov 16, 2021
@fvrmr
Copy link
Contributor

fvrmr commented Nov 19, 2021

Hi @codecranker thank you for your feature request.
We have an open feature request for fan speed for overhang. See #5140
I think this is related to each other. Let me know what you think!

@fvrmr fvrmr added the Status: Needs Info Needs more information before action can be taken. label Nov 19, 2021
@Ghostkeeper
Copy link
Collaborator

The feature request here has nothing to do with overhang. There probably are no overhangs in the PCB mounts being printed there.

I think Cura offers a lot of control over the fan speed already. There's a diagram about it in the Settings Guide:
Diagram about fan speeds

By your story, it sounds like you need the Regular Fan Speed to be really low and the Maximum Fan Speed higher.

However the key of the feature request here is that the cooling is not just based on time but also on the area of the cooling surface. This is sort of true, but I believe that time is still by far the most important factor in how much a surface cools naturally. Thermodynamically, there are 3 important factors that determine the temperature of a printed object after printing:

  • The difference in temperature between the printed plastic and the environment. The hotter the plastic or the cooler the environment, the faster it will cool down. Fans serve to make the environment cooler by replacing the air that absorbed heat from the plastic with new, room temperature air. Cura doesn't adjust its cooling based on temperatures; the profiles are supposed to factor that into its fan speed settings.
  • The amount of time since printing. Heat loss is a gradual process which takes time, so the more time has passed, the cooler the plastic will become. Cura currently adjusts the fan speed based on the time. So that means that if you have something that prints very slowly (e.g. due to accelerations in skin) there is more time for the layer to cool and it won't need to turn up the fan as much.
  • The contact area between the plastic and the environment. The greater the contact area, the more heat exchange can happen. This is what I think you mean to use as an argument as to why the printed area is a better metric to use.

However with the contact area metric, there is a problem. If you print faster, not only is there more surface area, but also more volume to cool down, and that takes longer. The surface area vs. volume is not linear so you could still argue that the surface area has an effect on cooling (if the sides of the lines are taken into account). But arguably, time is a much more important factor than surface area.

It could also be made to depend on both, but I think the formula would become too complex to understand for a user then. It's useful to be able to somewhat predict what a printer is going to do if you change a setting.

@Ghostkeeper Ghostkeeper added Type: Discussion Open-ended discussion (compared to specific question). and removed Type: New Feature Adding some entirely new functionality. labels Nov 24, 2021
@no-response
Copy link

no-response bot commented Dec 3, 2021

This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.

@no-response no-response bot closed this as completed Dec 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Needs Info Needs more information before action can be taken. Type: Discussion Open-ended discussion (compared to specific question).
Projects
None yet
Development

No branches or pull requests

3 participants