-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Bridging Philosophies #1090
Comments
I have not tried Skeinforge recently and have never tried KISSlicer, but I have the exact same issue as you describe. Lots of bridges really close together, and eventually they curl up and brush against the print head. |
I am also having these issues ... I can make it do ok in most instances by tweaking bridging speed and extrusion ratio. But often a good speed/extrusion combination results in poor bridge anchors because not enough material is extruded at the anchor points. |
I'm having the same issues and you described it very good. I would like to add a fourth issue I detected.
|
I must agree too. Bridges are too thin. They fail really often. After bad bridge layer follows common layer and it works much better. |
I was hoping that the extrusion width settings on the Advanced page of the Print Settings tab would let us do just that: set width separately from speed. Unfortunately it ties path planning in an sets the distance between path accordingly. -CH Sent from my TRS-80. On Apr 8, 2013, at 9:06 AM, Patrik Bachan notifications@github.com wrote:
|
I've been trying to get a good print of the Reprap bridging calibration test http://reprap.org/wiki/Calibration#Bridging for days... I've slow down bridge_speed, increased bridge_flow_ratio, increased nozzle size a bit to get an overlap, increased head temp for ABS, all to no avail... Cura does a perfect bridge, but the corners of the cube are just very bad, where Slic3r make absolutly perfect: Bridge anchor is the biggest problem to me. The bridge always starts a little bit off the perimeter which makes it drop . |
I have also noticed like the picture with all the white cubes that there doesn't seem to be enough overlap between the starting points of the bridge and the inside perimeter and doesn't grab enough to the inside perimeter to hold. Maybe a perimeter overlap ratio for bridge layer? |
I definitely agree that the bridging in Slic3r is very challenging. I would suggest the "Perimeter overlap Ratio for bridge-layer"-Parameter as the bridging simply start way too far on the inside of the object so the Bridge can't connect to the part itself. This should be quite easy to implement but help in quite all cases. |
Skeinforge would force the number of perimeters to one to give the bridge On 14 April 2013 11:37, TopperDEL notifications@github.com wrote:
|
Very good description of what I'm seeing. |
Is there any way to get a quick hack or point me in the direction (this slic3r code is greek to me) to temporarily adjust the perimeter overlap used on bridging? Bowden /Rostock bridging is almost useless they way it is currently printing. Doesn't usually overlap enough on the endpoint when it turns around. |
Here's another example of a typical situation in my daily workflow. I have a small object that for multiple reasons is best printed in an orientation that requires bridging, so I have to choose whether or not to compromise other issues to eliminate the bridge. If the bridge executes well then I end up with a great part with no compromise, so I compare the bridge results from multiple slicing apps to see which does it best and choose one. In this case it's Cura that does the best bridge but slic3r does the best perimeters and fill for the requirements I have, so I decide to replace the bridge layer in the slic3r gcode with the layer generated by Cura. It's worth the extra effort in this specific case because the part will be mass produced, but it's another example of how I find myself working around the bridging issues in Slic3r. Here is the layer under the bridge, I will be comparing how Slic3r, KISSlicer, and Cura bridge this gap. Here's how Slic3r bridges this layer, closely spaced lines anchored to bridged perimeters, the anchors often don't stick well and when they do they pull the perimeter in and droop, and even if this doesn't go badly the nozzle drags adjacent lines and rips up into a mess. Here's how KISSlicer bridges this layer, diagonal lines to the bridged perimeter that anchor poorly and the lines that do anchor to the bridged perimeter tend to pull it inward and droop. Here's how Cura bridges this layer, parallel lines to the bridge fully anchored, no anchoring to bridged perimeters, good line spacing so the nozzle doesn't drag adjacent lines. These examples highlight 2 of the primary issues that result in poor bridges for me:
Files: |
As a matter of interest, when you say "slic3r does the best perimeters", in On 28 April 2013 20:57, OhmEye notifications@github.com wrote:
|
@nophead In this specific case I wanted more than one perimeter loop and was looking at a particular acute angle where slic3r does a better job of the inner perimeters matching the angle and not leaving a gap between the outer and inner perimeter at the corner. I didn't use Cura's output for the whole file because the infill pattern was horribly broken, and I didn't use KISSlicer's output as the base file because Slic3r's infill and perimeters were superior. Here's an example of KISSlicer's perimeters, notice how the inner perimeter does not closely follow the exterior perimeter and leaves a slight gap and some corners have unecessary additional segments. The arc segments are also not very smooth. Here is Slic3r's output for the same layer, the inner perimeters match the exterior path nicely and are very clean: None of this is related to bridging, but do serve as more examples of differences between slicing apps. |
Okay, let's go through this. @OhmEye, you should really follow the usual method for discussing problems: STL file and config.ini, along with description of the actual problem encountered during that single print. This is the only way to allow me or other people to try printing the object and check your report. I understand your effort in generalizing your diagnosis, but we should really work on single, clear, reproducible test cases. This applies to all of your points: extrudate overlap, poor anchors, bad direction. @diggit, you can't set extrusion width for bridges. When you extrude filament in free air, there's no way you can influence the width of filament, other than changing your nozzle. You might still want to use the existing Bridge flow ratio option to influence the amount of extrusion. @nodje, as @nophead explained Skeinforge removes all perimeters except for the external one so that the internal ones act as anchors. Slic3r never reduces the configured number of perimeters, and I really think it never will. This is why you get different results. (I have been playing with something similar in the @jamesarm97, @TopperDEL: no extrusions should actually overlap (except for a small amount needed to fill the side gaps). Bridges are sustained by anchors, not by overlap. |
@jamesarm97, @TopperDEL: no extrusions should actually overlap (except for a small amount needed to fill the side gaps). Bridges are sustained by anchors, not by overlap.
Well what ever it is called overlap vs anchor, it doesn't work well, at least with the Bowden/Rostock type printer as more than I have pointed out. As far as I can tell, the far side anchor (opposite starting point) doesn't quite grab hold and anchor onto the perimeter and therefore gets dropped down into the model or gets pulled off by the hotend nozzle the next pass.
|
@alexrj Point taken. I had the files in the same directory as the pictures but forgot to link them, posts are updated to include the file links. I'm not sure of the semantics of anchor vs. overlap. There has to be some overlap for bridge lines to anchor at the ends, whether that is called "anchoring" or "overlapping" is unclear to me. Without any overlap, the end of the bridge doesn't contact anything to anchor to. Whatever the terminology, I see two different properties in play here:
Anchoring to bridged perimeters is an example of # 1 where there is no contact with a previous layer at or beyond the end of the bridge line. There still needs to be some overlap of the endpoint and the perimeter, else there is no contact and the endpoint fails to anchor and just falls into air. Anchoring to a non-bridged perimeter that has more perimeters and/or infill beyond it in the layer below is an opportunity to extend the bridge points past the anchor points. This gives the bridge a good "running start" over a layer to adhere to, and a longer run at the other end before it reverses for the next bridge line. This is what Cura and Skeinforge do and it's very successful with minimal challenge. |
Yeah, I know about flow ratio settings for bridges, but extruder paths are too close to each other when bridging. Is it was described above in 1st post "The bridge lines are very close together and result in my most common bridge failure mode: The nozzle dragging adjacent lines into a mess..." |
With skeinforge the bridge spacing is the same as any other solid layer. On 28 April 2013 22:25, Patrik Bachan notifications@github.com wrote:
|
BTW, the width is defined by the flow rate / freed rate ratio, not the On 28 April 2013 22:33, nop head nop.head@gmail.com wrote:
|
@nophead I would think it depends on the line widths and size of the nozzle flat, but regardless in actual practice I have significant problems with slic3r's close spacing resulting in the nozzle dragging adjacent layers and essentially no such problem at all with the bridging as done by KISSlicer or Cura. The main problem I have with KISSlicer is when it bridges on an angle to a bridged perimeter, the line spacing itself works very well and only unsuccessful anchoring to a slightly drooped bridged perimeter. @nophead As I understand it, the nozzle size in slic3r is used for line width and spacing for bridging. Also, I'm no longer used to thinking of line width in terms of ratio, since configuration starts with the width setting and the flow rate / feed rate is calculated from the width, not the other way around. |
I suppose the difference is the bridge filaments are discrete and don't On 28 April 2013 22:45, OhmEye notifications@github.com wrote:
|
In fact the plastic is being stretched as it is pulled across the bridge On 28 April 2013 22:58, nop head nop.head@gmail.com wrote:
|
Here's an example of Slic3r placing bridge anchors in midair. Instead of simply bridging across the gap, it chooses patterns that I don't understand that result in poor bridge paths that cause extrusion to fall into the empty gap. Here is the layer before the bridge: Just for reference, the bridge layer that Cura produces is clean and prints easily and nicely: The STL and Config used with recent git master: |
After looking at current results in a viewer for my test files, I'm not sure what I should be looking for, the bridge layers appear the same. What does BRIDGE_OVERLAP_FACTOR affect? Is it related to bridge line spacing, anchor endpoints, or something else? |
I didn't really see a difference when I sliced by just looking at the preview. I do have some feedback on a file I just sliced and looked at. Why wouldn't you do a perimeter around the area being bridged to give it something to grab onto (at least in this example). You can see in Bridge1 that it has an internal hex pattern then in Bridge2 as it puts down the first bridge layer that there are lots of areas where the lines end and are over "air". If there was a perimeter put down first at least there is a better chance that there will be something to grab ahold of on the ends. The other slicer always bridges at a 90 degree so it will usually anchor to the outside perimeter: |
The bridge spacing is good for some materials. With nylon, it allows me to print bridges that are perfectly flat and water-tight in one layer, though it does cause some problems with PLA due to the heat staying in the area of the just-printed plastic and the plastic's tendency to stick to the nozzle (different nozzle geometry/material choices make a big difference here), so maybe there should be a configuration option? Like others, I am frequently annoyed by Slic3r's choice of direction and amount of anchoring for bridges. At a minimum, the bridge should overshoot the edge by the spacing of the infill pattern (assuming it doesn't encounter another perimeter first). This also goes for internal bridges (first solid layer after infill), as these are frequently insufficiently anchored. Of course, when printing with zero infill, internal bridges MUST extent all the way until they encounter a perimeter (skeinforge does them this way regardless of infill density) to be anchored at all. For bridge direction, it seems the best way to choose the direction is to average the angles of the perimeter segments (weighted by length) of the bridged area. This should ensure that as many of the threads crossing the bridge are anchored on both sides (rather than starting/changing direction in mid-air) as possible. |
Perfect explanation from everything I have seen using both skeinforge on my makerbot and slic3r on the Rostock. James Armstrong On May 31, 2013, at 7:34 PM, whosawhatsis notifications@github.com wrote:
|
@OhmEye, I reduced overlap further since I last wrote a message here. I actually removed any overlap and added a 0.05mm empty gap between bridge threads. I got positive feedback about this. Can you check how this works on your side? |
I have been using it and find the spacing is very much improved. The angle is often improved as well, bridging perpendicular and in an optimal direction. I still am having a high rate of bridge failures due to some anchors not sticking in cases where it would succeed if it used longer anchors instead of barely overlapping the perimeter of the layer below before reversing direction. When I do a plate of 30 copies of an object with a bridge, often all the copies have identical bridge failures. I can look down the rows of completed prints and see the same dragged loops due to failed anchors. This seems so consistent to me that I don't believe it's entirely printer tuning or random poor luck when an anchor fails to stick. |
@OhmEye, let's stick to test cases. Do you have a reproducible test case that shows one problem so that we can work on that one? How should we consider the status of this issue? Fixed? |
I will work on providing reproducible test cases. I'm not using current HEAD now due to other issues and will make this a priority when I have some printer time available to specifically print bridge tests. |
Current stable branch does nice bridging, but master branch has reverted to some of the old bad bridging, specifically it again is bridging at an angle and anchoring to bridged perimeters. I hope this is a reversion and not intentional. Here are examples: Bridge layer 1, perpendicular to bridge, no anchor to bridged perimeter with stable branch: Bridge layer 1, angle to bridge, anchors to bridged perimeter with master branch: Bridge layer 2, perpendicular to bridge, no anchor to bridged perimeter with stable branch: Bridge layer 2, angle to bridge, anchors to bridged perimeter with stable branch: The bridge 1 and bridge 2 that master branch does are even at different angles. Is there are reaon that master branch has returned to doing angled bridging, or can it be returned to the much better perpendicular angle that stable branch uses? This is causing master branch to make bridging be unecessarily challenging again in my opinion. Files to reproduce this: |
There are few bugs in bridge code in master. One is clipper related (#1894). Then there are few problems with code (wrong incremental rotation, cliped lines end on anchor edge and are not recognized as valid, valid bridge test is inverted. I have a crude fix, I'll try to post it. |
Here is pull request with temporary fix: #1917 |
Current master should work as long as perimeter width is larger than infill width. |
Current master was fixed. @OhmEye, when you have some time could you test it and tell me whether we can close this issue? Thank you! |
As of current master, all bridges in @OhmEye's test object are orientated correctly. A little test suite is also attached to the bridge detection algorithm, so any regression caused by further development should be prevented. |
I've always found bridging with Slic3r to be more challenging than with Skeinforge-based slicers, and now I as I compar to KISSlicer I am curious why this is. I have three different issues with the way Slic3r does bridges.
Issue 1 is by far the largest source of my bridge failures. Here are examples of the same bridge layer sliced by Slic3r and KISSlicer:
The Slic3r bridge lines are so close together they appear in gcodeview as a solid area, and the nozzle often drags adjacent lines and creates a mess.
The KISSlicer bridge lines are the same distance apart as solid fill and print very easily.
Why does Slic3r bridge this way, and are any of these 3 issues considered problems by anybody else?
Files:
http://ohmeye.com/download/debug/debug_bridging/config.ini
http://ohmeye.com/download/debug/debug_bridging/bar_support_8mm_clip_fab.stl
The text was updated successfully, but these errors were encountered: