Improve thick bridges spacing for better control of bridge geometry. #600

Open
opened 2026-04-05 16:23:39 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @dbaarda on 2/25/2026

Description

Closes the following when using thick bridges;

  • #11209 - by making it easier to directly set the bridge geometry using thick-bridges.
  • #11412 - by making the bridge_density limit of 120% give you a generous 20% overlap for any bridge diameter, removing the need for a higher limit.
  • #11954 - by increasing the internal bridge_density limit to 120% to give you the same 20% overlap limit as for external bridges.

Change Details

The important part of this is the one-line change to the definition of BRIDGE_EXTRA_SPACING, changing it from 0.05 to 0.0. This only changes how bridge_spacing is calculated when using thick bridges. Everything else is just changes to settings tooltips to reflect the implications of this change, with the tiny exception of it also increasese the "Internal bridge density" setting limit from 100% to 120%, matching the limit for external bridges, so that it's possible to set overlap for internal bridges too.

This is the first and simplest change proposed in my analysis of bridges here.

Problem Addressed

This change is tiny but it has a huge impact on how bridge settings for thick bridges affect the resulting geometry of the bridge lines, making it much easier to get the desired result, and makes available a range of thin and dense bridges that are not currently possible with thick briges.

When thick bridges are selected, the base spacing for bridges before it is adjusted with the bridge_density setting is calculated as bridge_spacing = bridge_diameter + BRIDGE_EXTRA_SPACING here. So for the base spacing, BRIDGE_EXTRA_SPACING is a small space between the bridge lines that is fixed regardless of the bridge_diameter. The bridge_density setting then adjusts this base spacing to bridge_spacing = bridge_spacing / bridge_density.

Currently the small extra space means that bridge_spacing doesn't change proportional to bridge_diameter when the bridge_flow setting is changed. This means that the bridge density, or percentage of surface coverage calculated as bridge_diameter/bridge_spacing, also changes when bridge_flow is changed. As bridge_diameter gets smaller, the density drops, requiring the bridge_density setting to be increased to achieve the same density. When bridge_diameter drops below 0.25mm, the bridge_density setting required for a density of 100%, where adjacent lines just touch, starts to exceed the setting limit of 120%. So it is not possible to get densities with decent contact or overlap for small diameters.

Removing the fixed extra spacing makes bridge spacing scale proportional to bridge diameter for bridge_flow setting changes, which means the bridge density doesn't change. It also means the bridge_density setting is the bridge density, and directly sets the percentage of surface-cover for any bridge_diameter. This means the bridge_density setting's 120% limit enables up to 20% overlap for any bridge_diameter, right down the the smallest diameter possible with the bridge_flow setting.

Change Consequences

This does mean that by default thick bridges nolonger have a small gap, and instead are just touching. However, testing has shown that contact and even a bit of overlap can significantly improve bridge quality, so this should be an improvement.

Existing configs using thick bridges will result in slightly smaller bridge_spacing for the same bridge_density setting values. If combined with small bridge_flow setting values this could result in a significant increase to the bridge density to the point of overlap when previously there would have been gaps.

Screenshots/Recordings/Graphs

Tests

*Originally created by @dbaarda on 2/25/2026* # Description Closes the following when using thick bridges; * #11209 - by making it easier to directly set the bridge geometry using thick-bridges. * #11412 - by making the `bridge_density` limit of 120% give you a generous 20% overlap for any bridge diameter, removing the need for a higher limit. * #11954 - by increasing the internal `bridge_density` limit to 120% to give you the same 20% overlap limit as for external bridges. ## Change Details The important part of this is the one-line change to the definition of `BRIDGE_EXTRA_SPACING`, changing it from `0.05` to `0.0`. This only changes how `bridge_spacing` is calculated when using thick bridges. Everything else is just changes to settings tooltips to reflect the implications of this change, with the tiny exception of it also increasese the "Internal bridge density" setting limit from 100% to 120%, matching the limit for external bridges, so that it's possible to set overlap for internal bridges too. This is the first and simplest change proposed in my analysis of bridges [here](https://github.com/dbaarda/workspace-tools/blob/main/3DPrinting/BridgeExtrusion.md). ## Problem Addressed This change is tiny but it has a huge impact on how bridge settings for thick bridges affect the resulting geometry of the bridge lines, making it much easier to get the desired result, and makes available a range of thin and dense bridges that are not currently possible with thick briges. When thick bridges are selected, the base spacing for bridges before it is adjusted with the `bridge_density` setting is calculated as `bridge_spacing = bridge_diameter + BRIDGE_EXTRA_SPACING` [here](https://github.com/OrcaSlicer/OrcaSlicer/blob/db1fe73e85d78648db1510196a93210c66ad5aa2/src/libslic3r/Flow.cpp#L197). So for the base spacing, `BRIDGE_EXTRA_SPACING` is a small space between the bridge lines that is fixed regardless of the `bridge_diameter`. The `bridge_density` setting then adjusts this base spacing to `bridge_spacing = bridge_spacing / bridge_density`. Currently the small extra space means that `bridge_spacing` doesn't change proportional to `bridge_diameter` when the `bridge_flow` setting is changed. This means that the bridge density, or percentage of surface coverage calculated as `bridge_diameter/bridge_spacing`, also changes when `bridge_flow` is changed. As `bridge_diameter` gets smaller, the density drops, requiring the `bridge_density` setting to be increased to achieve the same density. When `bridge_diameter` drops below 0.25mm, the `bridge_density` setting required for a density of 100%, where adjacent lines just touch, starts to exceed the setting limit of 120%. So it is not possible to get densities with decent contact or overlap for small diameters. Removing the fixed extra spacing makes bridge spacing scale proportional to bridge diameter for `bridge_flow` setting changes, which means the bridge density doesn't change. It also means the `bridge_density` setting **is** the bridge density, and directly sets the percentage of surface-cover for any `bridge_diameter`. This means the `bridge_density` setting's 120% limit enables up to 20% overlap for any `bridge_diameter`, right down the the smallest diameter possible with the `bridge_flow` setting. ## Change Consequences This does mean that by default thick bridges nolonger have a small gap, and instead are just touching. However, testing has shown that contact and even a bit of overlap can significantly improve bridge quality, so this should be an improvement. Existing configs using thick bridges will result in slightly smaller `bridge_spacing` for the same `bridge_density` setting values. If combined with small `bridge_flow` setting values this could result in a significant increase to the bridge density to the point of overlap when previously there would have been gaps. # Screenshots/Recordings/Graphs <!-- > Please attach relevant screenshots to showcase the UI changes. > Please attach images that can help explain the changes. --> ## Tests <!-- > Please describe the tests that you have conducted to verify the changes made in this PR. -->
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#600