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

Feature Request: Overhang cooling #414

Open
SnowDrifterr opened this issue Aug 18, 2020 · 22 comments
Open

Feature Request: Overhang cooling #414

SnowDrifterr opened this issue Aug 18, 2020 · 22 comments

Comments

@SnowDrifterr
Copy link

I think it would be useful to have variable cooling based on overhang angles. Some materials (PC, ABS, for example) suffer greatly in strength with even a slight bit of cooling. However, overhangs also have a tendency to curl (whereas straight walls do not). I'd like to see a feature that allows for cooling depending on overhang angle to allow for fanless printing through areas that don't need it.

@supermerill
Copy link
Owner

you mean that youwant to remove the fan over bridges (because it's strait) and keep on overhangs (unless it's strait)?

I'm not sure that the cooling will reduce curling. Have you done a test with manually modified gcode?

@SnowDrifterr
Copy link
Author

Not necessarily touch bridges, but be able to set some sort of fan speed to overhang angle for cooling.

Have tested it and found that overhang cooling helps with curling. I'm getting around it right now with external perimeter fan speed but it's far from a perfect solution since PC in particular loses layer adhesion with any fan speed. Only cool where needed for tricky spots.

Noted the same behavior with petg abs as well. Pla to some extent but it doesn't suffer adhesion nearly as bad with reduced cooling

@nyxaria
Copy link

nyxaria commented Aug 19, 2020

This is implemented in Cura. What happens is that the fan is off all print, and only gets turned on when it is doing a bridge.

@supermerill
Copy link
Owner

@nyxaria you can also do that here by using "bridges fan speed".

I think @SnowDrifterr want an other setting to work on overhangs only. And also, i don't know if the bridge fan trigger on overhangs.

@SnowDrifterr
Copy link
Author

Can confirm that bridge fan does not trigger on overhangs

@Pavulon87
Copy link

It is possible to use "As bridge" overhangs, but sometimes even if set to 1% it is still normal perimeter.
Zrzut ekranu 2020-08-20 14 50 31
It would be great if it worked like this:
Zrzut ekranu 2020-08-20 14 50 51
Here is calicat rotated 2 degrees. 45 degrees is not considered an overhang.

@supermerill
Copy link
Owner

@Pavulon87 fixed for next version

supermerill pushed a commit that referenced this issue Aug 21, 2020
forgot to remove half of the external perimeter width
@Pavulon87
Copy link

Now it works great

@Stephan3
Copy link

Stephan3 commented Sep 10, 2020

As bridge make other things happen, too. such as bridge_flow_ratio and bridge_overlap. A setting in Filament for cooling would still be usefull. on some parts i see artifacts using the as bridge function. it looks overextruded and i have to reduce the bridge_flow. By doins so you affect the real bridges :)
Or just give it a extrusion role or something to make it happen on custom Gcode

supermerill pushed a commit that referenced this issue Nov 5, 2020
And separate speed for "inner bridge" (the ones over sparse infill)
@supermerill
Copy link
Owner

supermerill commented Nov 12, 2020

Or just give it a extrusion role or something to make it happen on custom Gcode

It has it's own role

what is really the problem with the filament: the bridge flow threshold? the fan speed?
I can also create a smooth transition from normal flow to bridge flow around the threshold....

@Stephan3
Copy link

@supermerill I checked today the role by inserting a:
; [extrusion_role]

The nightly build produces:

; custom gcode: feature_gcode
; ExternalPerimeter									<<-- extrusion role
SET_VELOCITY_LIMIT ACCEL=2000 ACCEL_TO_DECEL=2000 SQUARE_CORNER_VELOCITY=5
; custom gcode end: feature_gcode

;TYPE:External perimeter
G1 F213
M106 S51
G1 X165.980 Y167.307 E0.42863
M106 S201.45
G1 X169.277 Y167.308 E0.10862
M106 S51
M106 S201.45
G1 X169.528 Y167.340 E0.00834
M106 S201.45
; custom gcode: feature_gcode
; OverhangPerimeter								<<-- extrusion role
SET_VELOCITY_LIMIT ACCEL=2000  ACCEL_TO_DECEL=2000 SQUARE_CORNER_VELOCITY=5
; custom gcode end: feature_gcode

;TYPE:Overhang perimeter 							<<-- NOT triggering extrusion_role change??
G1 F2400.000
G1 X169.750 Y167.383 E0.00744
G1 X169.896 Y167.474 E0.00569
G1 X169.763 Y167.592 E0.00587
G1 X169.515 Y167.761 E0.00987
G1 X169.233 Y167.905 E0.01043
G1 X168.948 Y168.006 E0.00996
G1 X168.788 Y168.040 E0.00541
G1 X168.374 Y168.085 E0.01374
G1 X153.008 Y168.085 E0.50624
G1 X152.711 Y167.563 E0.01979
; custom gcode: feature_gcode
; ExternalPerimeter								<<-- extrusion role
SET_VELOCITY_LIMIT ACCEL=2000 ACCEL_TO_DECEL=2000 SQUARE_CORNER_VELOCITY=5
; custom gcode end: feature_gcode

;TYPE:External perimeter
G1 F213
G1 X152.928 Y167.347 E0.01009
SET_VELOCITY_LIMIT ACCEL=6000 ACCEL_TO_DECEL=6000 SQUARE_CORNER_VELOCITY=5		<<-- set by pp script to Travelacc
G1 X153.253 Y167.587 F30000.000
G1 X153.003 Y167.691
; custom gcode: feature_gcode
; GapFill										<<-- extrusion role
SET_VELOCITY_LIMIT ACCEL=2000  ACCEL_TO_DECEL=2000 SQUARE_CORNER_VELOCITY=5
; custom gcode end: feature_gcode

Its the github checkout of today. No idea if i did something wrong. Thats the output it produces.

@supermerill
Copy link
Owner

supermerill commented Nov 18, 2020

; custom gcode: feature_gcode
; OverhangPerimeter								<<-- extrusion role
SET_VELOCITY_LIMIT ACCEL=2000  ACCEL_TO_DECEL=2000 SQUARE_CORNER_VELOCITY=5
; custom gcode end: feature_gcode

;TYPE:Overhang perimeter 							<<-- NOT triggering extrusion_role change??

I don't understand, the extrusion_role change isn't just a line above?

@Stephan3
Copy link

; custom gcode: feature_gcode
; OverhangPerimeter								<<-- extrusion role
SET_VELOCITY_LIMIT ACCEL=2000  ACCEL_TO_DECEL=2000 SQUARE_CORNER_VELOCITY=5
; custom gcode end: feature_gcode

;TYPE:Overhang perimeter 							<<-- NOT triggering extrusion_role change??

I don't understand, the extrusion_role change isn't just a line above?

You were right, i just missed it. Sorry.

@halfshavedyaks
Copy link

I don't often have problems with curlup, but I would still like to have some settings specially for overhangs - treated separately from normal perimeters and from bridges.

To get a strong part with good layer adhesion I leave the fan off most of the time. For bridges I want a faster print speed , a lower extrusion rate, and 100% fan.

In contrast, for overhangs I want a fan that depends on the angle of the overhang (or at least a defined angle that starts the fan at a defined speed), a slower print speed and a normal extrusion rate/line width.

This helps with printing tidy overhangs without drooping, while still allowing maximum layer adhesion for the rest of the print.

The only slicer I know of that currently has this feature is the smartavionics fork of cura. However I'm not a fan of curs interface or clunky performance so I'm supporting this feature to devs of other slicers wherever I come across the topic.

Most slicers on github have a thread on this topic, but only smartavionics cura (afaik) has actually implemented a solution so far.

@supermerill
Copy link
Owner

supermerill commented Sep 27, 2021

@halfshavedyaks

a slower print speed

you can set overhang speed now

a normal extrusion rate/line width.

set 0 in overhang bridge flow

For the fan speed, it's a bit complicated what you ask. Fans aren't responsive enough anyway.

@zenturacp
Copy link

@halfshavedyaks

a slower print speed

you can set overhang speed now

a normal extrusion rate/line width.

set 0 in overhang bridge flow

For the fan speed, it's a bit complicated what you ask. Fans aren't responsive enough anyway.

Why not have a warmup value? So how many ms the fan is to "warmup" and add that in advance so the fan is up to speed before it reaches the overhang?

If possible.. It would definitely make overhangs way better on fanless filaments like ABS..

@supermerill
Copy link
Owner

Why not have a warmup value? So how many ms the fan is to "warmup" and add that in advance so the fan is up to speed before it reaches the overhang?

It's already done, it's in the printer setting (but it was buggy prior to 2.3.57.3)
But this only ensures that the fan is up to the highest speed needed for the features in the period from speedup to slowdown, and a fan takes seconds to speedup and slowdown, so you can't have a precise fan speed unless you print extremely slowly.

@levleon13
Copy link

It is possible to use "As bridge" overhangs, but sometimes even if set to 1% it is still normal perimeter. Zrzut ekranu 2020-08-20 14 50 31 It would be great if it worked like this: Zrzut ekranu 2020-08-20 14 50 51 Here is calicat rotated 2 degrees. 45 degrees is not considered an overhang.

god i've been through ALL SLICERS POSSIBLE to realize there's no way of configuring overhang angle detection.
Is this something that might be added to super anytime soon? this will literally make my petg prints perfect.

@supermerill
Copy link
Owner

overhang angle detection.

search for overhangs_width_speed. It's not directly the angle, but the overhang width. To get the angle, you have to arctan(overhangs_width_speed, layer_height)

@Garryb123
Copy link
Sponsor

"Why not have a warmup value? So how many ms the fan is to "warmup" and add that in advance so the fan is up to speed before it reaches the overhang?"

"Is this something that might be added to super anytime soon? this will literally make my petg prints perfect."

I too want overhang detection for the same reason as the OP. It will be perfect. If the software could look ahead and detect the OH and then ramp up the fan before the overhang I think overhangs with PET-G or ABS will be awesome.

@levleon13
Copy link

"Why not have a warmup value? So how many ms the fan is to "warmup" and add that in advance so the fan is up to speed before it reaches the overhang?"

"Is this something that might be added to super anytime soon? this will literally make my petg prints perfect."

I too want overhang detection for the same reason as the OP. It will be perfect. If the software could look ahead and detect the OH and then ramp up the fan before the overhang I think overhangs with PET-G or ABS will be awesome.

This is already possible :)

  1. overhangs_width_speed - change % to the desired detection.
  2. Bridge fan speed - select desired fan on overhangs.
    DONE.

@Garryb123
Copy link
Sponsor

This is already possible :)

  1. overhangs_width_speed - change % to the desired detection.
  2. Bridge fan speed - select desired fan on overhangs.
    DONE.

I'll try; thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants