OrcaSlicer icon indicating copy to clipboard operation
OrcaSlicer copied to clipboard

Choose bridging bottom layer infill pattern

Open lousassole opened this issue 10 months ago • 20 comments

Is there an existing issue for this feature request?

  • [x] I have searched the existing issues

Is your feature request related to a problem?

During regular slicing, all that can be changed for bridging infill is the angle, which not only gets confusing (is it 90⁰ in relation to the object, or origin point of the bed? If I slightly rotate my print, do I have to change the angle? Etc.)

Which printers will be beneficial to this feature?

All

Describe the solution you'd like

I propose allowing the user to select an infill pattern, compatible with "solid infill".

This would solve issues many users have with bridging, especially if a pattern like "Archimedian chords" were an option. This would also provide a much easier path for the future implementation of a feature like "Arc Overhangs". It could be generated as an infill pattern instead of the weirdness of the original script. Being able to select a pattern, just like bottom and top layers would also allow another degree of freedom to the user.

Describe alternatives you've considered

A post processing script wouldn't really work well, and that's really the only other way to do something like this.

Additional context

Found the area that needs to be changed for the most simple implementation that will rely on the bottom surface pattern to generate the bridge infill.

Orcaslicer/src/libslic3r/Fill/Fill.cpp: line 626, insert else if (surface.is_external() && is_bridge) { params.pattern = region_config.bottom_surface_pattern.value; }

'params.pattern = region_config.bridge_surface_pattern.value' could be used in the future whenever I figure out where the other parts of this feed from. I don't have the knowledge of the codebase to jump right to it, but if someone else can point me in the right direction I'd be more than happy to poke around with it. I've never done UI work though, so I might not be the best one to screw with that.

lousassole avatar Feb 05 '25 02:02 lousassole

can you make a drawing of "bridging with archimedian chords"?

hotellonely avatar Feb 05 '25 02:02 hotellonely

Edits for better readability, updates, and better picture.

I was thinking of something along these lines. We'd still have to print the perimeters, I'd imagine.

Image

Image

Using this image as a reference, we can see that the pattern ~~would~~ should hopefully center on one side of the bridge. It should be able to print equally well from either side, and would benefit from the increased strength of the pattern in either direction. Since the standard pattern is already rectilinear, it should be relatively simple to implement this as an option. ~~unless the current pattern is generated in a way that does not utilize the standard "solid infill" method.~~ Bridging infill is generated the same way.

I will test how it works with my "permanently on" implementation this week on and post an update.

lousassole avatar Feb 05 '25 12:02 lousassole

What would be cool to see is whether this is a rudimentary arc overhang type implementation for bridges 😁 if you do concentric infill pattern for bridges that may be interesting…

igiannakas avatar Feb 06 '25 00:02 igiannakas

That would be awesome! I think it can start with a couple bridging perimeters first and then do its magic.

hotellonely avatar Feb 06 '25 06:02 hotellonely

Bridging is a line drawn in the air. The drawing of a thread from a supported starting point to a supported end point. Explain to me how you imagine drawing a pattern by printing it in the air. Physically impossible.

DVSVIDEO avatar Feb 06 '25 10:02 DVSVIDEO

@lousassole , looks like archimedian chords might work for arc overhang, it is not as simple as assigning pattern to the bridge polygon. Quick hack results:

Image

Image

There are additional work required for the center to be correctly anchored. I'm going to try a few things.

buzzhuzz avatar Feb 06 '25 11:02 buzzhuzz

@lousassole , looks like archimedian chords might work for arc overhang, it is not as simple as assigning pattern to the bridge polygon. Quick hack results:

Image

Image

There are additional work required for the center to be correctly anchored. I'm going to try a few things.

Do not show a render image! In theory it could be anything, but there's that dastardly gravity... Print a bridging pattern in the air!

DVSVIDEO avatar Feb 06 '25 11:02 DVSVIDEO

@lousassole , looks like archimedian chords might work for arc overhang, it is not as simple as assigning pattern to the bridge polygon. There are additional work required for the center to be correctly anchored. I'm going to try a few things.

Do not show a render image! In theory it could be anything, but there's that dastardly gravity... Print a bridging pattern in the air!

It's the same logic as disc overhangs. But with the outer perimeters printed as bridges.

  1. You print the perimeters first as bridge. Just plain straight bridges.
  2. You use disc overhang to print the infill, with the perimeters and previously printed non-overhang part as anchors.

You can search for disc overhang and see why people are excted about it. You won't get a very smooth bottom surface, but it's still better than bridging the entire bottom surface.

The reason that it's never placed in Orca, I guess, is that it requires fundamental change to the entire bridging logic or overhang logic. However the pitching idea of this issue actually hinted a possible solution to additively add most of the benefit from disc overhang without fundamental code change. It only needs to replace the bridge infill logic. Which is not something that is new in orca.

hotellonely avatar Feb 06 '25 12:02 hotellonely

It might still work with the center of the pattern not being anchored to the side. IIRC, the benefit of the arc bridging pattern is that every point has something to attach to. I think the same benefits would apply to a slightly rotated octogram spiral pattern as well. I think concentric would have the same problems as the normal bridging, but I'm no materials engineer. The only problem I foresee for chords centering is the center sagging due to heat.

I'll do more software testing some time this week. I just printed a blob last night that destroyed my hot end (unrelated print, don't worry) so physical printing is off the table for me for the month.

lousassole avatar Feb 06 '25 12:02 lousassole

Do not show a render image! In theory it could be anything, but there's that dastardly gravity... Print a bridging pattern in the air!

Sir, this is a Wendy's. /s

Perimiters would print as normal, giving the 'pattern' something to grab on to. Nothing is printing midair at any point unless your print is badly oriented...

@buzzhuzz Fantastic!

lousassole avatar Feb 06 '25 18:02 lousassole

I did a test.

https://github.com/user-attachments/assets/decc41a0-30d2-418a-8e6b-b9a7b59bfb56

Image

Image

Image

My observations are:

  • bridges need to be perfectly calibrated: My extrusions are separated and because of this geometry can't be maintained on longer overhangs. However, I don't know if it is possible to push extrusion against previous one mid-air.
  • some kind of 'sag compensation' is required. This might be some sort of 'non-planar' slicing adding a few degrees incline along extrusion.

So, I'm not sure if there any real potential here.

buzzhuzz avatar Feb 08 '25 11:02 buzzhuzz

Excellent test here thank you 🙏🏻👍🏻

igiannakas avatar Feb 08 '25 12:02 igiannakas

@Dima Budzyk It appears that there is too much space between the lines of your extrusions, causing the sagging to be exaggerated. Perhaps we need tighter line spacing, or some overlap of line width

On Sat, Feb 8, 2025, 7:34 AM Ioannis Giannakas @.***> wrote:

Excellent test here thank you 🙏🏻👍🏻

— Reply to this email directly, view it on GitHub https://github.com/SoftFever/OrcaSlicer/issues/8319#issuecomment-2645367992, or unsubscribe https://github.com/notifications/unsubscribe-auth/AP6DGDULI333DGYDCHGP5B32OX2W3AVCNFSM6AAAAABWP6UIQ2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNBVGM3DOOJZGI . You are receiving this because you were mentioned.Message ID: @.***>

lousassole avatar Feb 08 '25 14:02 lousassole

One more test. Now I've played with extrusion parameters a little bit and got next result with:

  • line width 0.38: It should be slightly under nozzle diameter to grip previous extrusion since there are no surface to squish filament against.
  • bridge flow ratio 1.2: I have no conclusions about this one, but increasing flow makes results better.
  • speed 3mm/s: this purely depends on your cooling efficiency

Image

Image

Image

buzzhuzz avatar Feb 08 '25 23:02 buzzhuzz

That looks absolutely fantastic!

On Sat, Feb 8, 2025, 6:59 PM Dima Buzdyk @.***> wrote:

One more test. Now I've played with extrusion parameters a little bit and got next result with:

  • line width 0.38: It should be slightly under nozzle diameter to grip previous extrusion since there are no surface to squish filament against.
  • bridge flow ratio 1.2: I have no conclusions about this one, but increasing flow makes results better.
  • speed 3mm/s: this purely depends on your cooling efficiency

PXL_20250208_235148675.jpg (view on web) https://github.com/user-attachments/assets/baa40676-b38f-42c5-91de-69bbc0fed4bd

PXL_20250208_235206287.jpg (view on web) https://github.com/user-attachments/assets/205d21a3-ff7a-4075-a04d-fbd2da096252

PXL_20250208_235216055.jpg (view on web) https://github.com/user-attachments/assets/1ae23791-1b6c-4943-bec5-fdb7503759a8

— Reply to this email directly, view it on GitHub https://github.com/SoftFever/OrcaSlicer/issues/8319#issuecomment-2645988576, or unsubscribe https://github.com/notifications/unsubscribe-auth/AP6DGDQMYBF33BW7IJT3FZD2O2K7VAVCNFSM6AAAAABWP6UIQ2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNBVHE4DQNJXGY . You are receiving this because you were mentioned.Message ID: @.***>

lousassole avatar Feb 09 '25 00:02 lousassole

Oh wow this is good!

igiannakas avatar Feb 09 '25 08:02 igiannakas

One more test. Now I've played with extrusion parameters a little bit and got next result with:

  • line width 0.38: It should be slightly under nozzle diameter to grip previous extrusion since there are no surface to squish filament against.
  • bridge flow ratio 1.2: I have no conclusions about this one, but increasing flow makes results better.
  • speed 3mm/s: this purely depends on your cooling efficiency

Image

Image

Image

Gravity defied, congratulations

hotellonely avatar Feb 10 '25 06:02 hotellonely

@SoftFever I am unfamiliar with the codebase (and honestly C++), is there any chance of this getting implemented? I have no idea how to create or modify UI elements, so this has progressed above my head at this point.

lousassole avatar Feb 12 '25 14:02 lousassole

@buzzhuzz May I ask how you got the pattern to start at the edge? The only way I know how is to add a "Non-printing" object to cause it to shift. @igiannakas Any chance I could convince you to create a UI button with a drop down menu containing "Bridge first layer pattern" options that are "solid infill" compatible?

lousassole avatar Feb 18 '25 14:02 lousassole

@buzzhuzz @igiannakas @SoftFever pinging, just in case you missed the notifications since it has been a couple weeks :) sorry if it's a bother.

lousassole avatar Mar 04 '25 16:03 lousassole