slic3r / Slic3r

Open Source toolpath generator for 3D printers
https://slic3r.org/
GNU Affero General Public License v3.0
3.33k stars 1.29k forks source link

Feature request: adjustable height brim #641

Open ellenhp opened 12 years ago

ellenhp commented 12 years ago

For those of us who print with small layer heights, one layer of brim often isn't enough to hold tall, top-heavy pieces to the bed. Adjusting the first layer height would also adjust brim height, I suspect, but it would be easier to get a nice thick brim on prints if we could tell Slic3r to make the brim multiple layers tall.

alranel commented 12 years ago

I do print with small layer heights, but I always use a fat first layer (usually equal to my nozzle diameter). This makes single-layer brims just perfect.

I'm not really convinced multilayer brims are good to have...

ellenhp commented 12 years ago

There are some custom parts I've needed to print that need multi-layer brims even if you make all the layers as thick as the nozzle diameter. Right now I have to design them into the model, which is annoying.

To be clear, I'm brim for support more than adhesion, because support doesn't work for this since the overhang angle is really quite reasonable, so I have to set the object to full support to get any support generated at all, which ruins the detail elsewhere on the object. The support is needed when a 50mm tall plastic object is balancing on a single point.

I was thinking... Is it possible to use the skirt hack to do this? I know the skirt already has height functionality...

On Mon, Aug 27, 2012 at 4:48 AM, Alessandro Ranellucci < notifications@github.com> wrote:

I do print with small layer heights, but I always use a fat first layer (usually equal to my nozzle diameter). This makes single-layer brims just perfect.

I'm not really convinced multilayer brims are good to have...

— Reply to this email directly or view it on GitHubhttps://github.com/alexrj/Slic3r/issues/641#issuecomment-8053454.

alranel commented 12 years ago

Uhm, so you need fat brim for support rather than adhesion? Could post a picture and explain the situation? Perhaps we can work on improving support material for that case?

By the way yes, skirt height is customizable.

ellenhp commented 12 years ago

Yeah, sorry if I was being a little vague.

I can't find a way to attach an image to the comment, so it's on imgur: http://imgur.com/POBxz

Obviously this is a very contrived example, but it illustrates what I'm getting at without taking too long to do in CAD. Basically if you try to print this as is, it's going to fall over. The obvious solution to that is to add either brim or support. Knowing that brim was only one layer, I opted for support at first. But since the overhang angle is not that extreme, you have to put the slic3r setting really high. This means that the detail in the middle of the print will have support that is nearly impossible to remove since it is so short.

The easiest solution in my mind is to make a big old block of plastic at the bottom so it doesn't fall over, but you might think of a more elegant way to solve it. Maybe only adding support between bed and overhang as opposed to part and overhang? That would help immensely, and it would probably be useful outside of my contrived examples, but could prove to be more difficult.

Thanks.

ambrop72 commented 11 years ago

I'd appreciate this feature too. A multi-layer brim would improve adhesion significantly and fix the corner-lifting in many of my prints. I noticed how when the corners lifted in my prints, the brim around was still attached, so with better force distribution it would be fixed.

I think a multi-layer brim with vertically decreasing width would be best.

foulowl commented 9 years ago

I would absolutely love to be able to do multi-layer brims as well, for adhesion. I get curling of corners when I use a single layer brim but less than with no brim. If I design the part with multi-layer "mouse ears" then things print much better, with less curling. Having the ability to print with a multi-layer brim would save me the trouble of having to add these mouse ears manually. Thank you!!

mswillia commented 9 years ago

I was just looking for this feature as well. As mentioned before skirt height is adjustable. You can set your skirt distance to 0, increase the loops, and set the height. The function would be the same as a multilayered brim.

lordofhyphens commented 9 years ago

What is the point of a multilayer brim? Mostly curious, cleaning up 1 layer brims is bad enough for me. On Feb 10, 2015 8:46 AM, "Michael Williams" notifications@github.com wrote:

I was just looking for this feature as well. As mentioned before skirt height is adjustable. You can set your skirt distance to 0, increase the loops, and set the height. The function would be the same as a multilayered brim.

— Reply to this email directly or view it on GitHub https://github.com/alexrj/Slic3r/issues/641#issuecomment-73710319.

ellenhp commented 9 years ago

As of 2013 when I last used Slic3r, the brim is always one layer, regardless of layer height. Considering how wildly different layer height can be for different prints, I thought it might be worth having a multi-layer brim. This would possibly allow prints with small layer heights to have a brim that is just as strong as brims on prints with large layer heights. After some reflection during the time I owned my printer, I ultimately decided that it wouldn't matter for me, because I hit the layer height limits of my printer before I hit the limits of a single-layer brim. Perhaps it could help those with better printers.

foulowl commented 9 years ago

I would use a multilayer brim for adhesion. Right now I add in a multilayer "brim" manually on my models, as a single layer brim isn't enough to prevent ABS parts from curling off the plate.

However, adding "mouse ears" manually definitely works.

gege2b commented 9 years ago

Correct me if I'm wrong, but I don't think a multilayer brim would really help to get a better adhesion

More layers means more curling force from the ABS, it's a known effect

If an object begin to curl, then why a multilayer brim (witch is finally the same thing) wouldn't curl at all ?

Maybe a larger brim would help, but I didn't think a multilayer brim would.

ambrop72 commented 9 years ago

A larger brim certainly helps, but as some point the object may lift off the bed at a corner with the outside brim edge still attached (producing a bubble of some sort). A multilayer brim which is progressively higher at the base would spread the lifting force over a wider area of the platform, and hence a stronger warping force would be tolerated.

foulowl commented 9 years ago

I would still like to request the ability to use a multilayer brim.

A larger brim is limited by the size of the print bed.

Please note that I am currently manually adding multilayer "brims", so I do know they work well, but are time consuming to add to each part.

Thank you.

hyperair commented 9 years ago

Here's a customizable brim-maker done in OpenSCAD. It'll work as long as your STL is oriented properly and placed at Z=0.

filename = "20mm_Calibration_Box.stl";
layer_thickness = 0.2;
brim_initial_width = 5;

brim_layers = 5;
brim_step_width = 1;
brim_offsets = [
    for (l = [0:brim_layers])
    [l, max (0, brim_initial_width - brim_step_width * l)]
];

union () {
    for (x = brim_offsets) {
        l = x[0];
        off = x[1];

        translate ([0, 0, l * layer_thickness])
        linear_extrude (height = layer_thickness)
        offset (delta = off, chamfer = true)
        projection (cut = true)
        obj ();
    }

    obj ();
}

module obj ()
{
    import (filename);
}
foulowl commented 9 years ago

@hyperair I'm getting a syntax error on line 9.

hyperair commented 9 years ago

@foulowl You need a newer version of OpenSCAD. Line 9 uses list comprehensions which is only in 2015.03 and newer.

andbad commented 8 years ago

I think it can be helpful against warping. I hope that Alex insert this option in future.

By(t)e

lordofhyphens commented 8 years ago

How can it help against warping? Really? Adding an extra layer just puts the same forces on your brim that are on the print and increases the frustration of removing it. Printing the brim thicker in Z than the print first layer runs into the problem that you basically would have to print the part first (in order to not drag on the brim when printing the part).

Maybe XY thickness increase, but the first layer tends to be a case where you can increase the XY line thickness everywhere.

Just not Z. You'd have to come up with concrete reasons why you think it would work (or implement it yourself and prove it experimentally).

The reason skirts can be multilayer is because the original purpose of the skirt was to provide draft resistance and hold heat close to the print.

"Nothing unreal exists." - Kiri-kin-tha's First Law of Metaphysics.

On Wed, Mar 2, 2016 at 11:25 AM, andbad notifications@github.com wrote:

I think it can be helpful against warping. I hope that Alex insert this option in future.

By(t)e

— Reply to this email directly or view it on GitHub https://github.com/alexrj/Slic3r/issues/641#issuecomment-191336652.

hyperair commented 8 years ago

On Wed, Mar 02, 2016 at 09:49:42AM -0800, Joseph Lenox wrote:

How can it help against warping? Really? Adding an extra layer just puts the same forces on your brim that are on the print and increases the frustration of removing it.

If you've ever printed Nylon, you'd notice that the warpage forces are so strong that it peels the brim up from the plate from inside out, forming a bubble around the print where it joins with the brim. Neither ABS nor PLA do this because an 0.2mm brim is sufficiently rigid to hold things in place, but Nylon's brims are just soft, like cloth. A thicker brim would make it exponentially more rigid (a 2-layer brim would make it 8 times more rigid, and so on) and less cloth-like.

The frustration of removing it would just need to be balanced against the frustration of not having it print unwarped in the first place. I suspect that for softer materials, it would actually turn out fine -- Nylon is really easy to cut.

Printing the brim thicker in Z than the print first layer runs into the problem that you basically would have to print the part first (in order to not drag on the brim when printing the part).

I believe the issue calls for a multilayer brim, not a single-layer brim that is thicker than the first layer height.

Maybe XY thickness increase, but the first layer tends to be a case where you can increase the XY line thickness everywhere.

It's called extrusion width.

Just not Z. You'd have to come up with concrete reasons why you think it would work (or implement it yourself and prove it experimentally).

The reason skirts can be multilayer is because the original purpose of the skirt was to provide draft resistance and hold heat close to the print.

Kind regards, Loong Jin

lordofhyphens commented 8 years ago

I do print nylon and I don't have warp issues on my build surface, so I frankly can't say anything about that.

hyperair commented 8 years ago

On Sun, Mar 13, 2016 at 06:43:19PM -0700, Joseph Lenox wrote:

I do print nylon and I don't have warp issues on my build surface, so I frankly can't say anything about that.

I want to know what magical build surface that is.

Kind regards, Loong Jin

lordofhyphens commented 8 years ago

Printbite from mutley3d.com Works very well when heated.

"Nothing unreal exists." - Kiri-kin-tha's First Law of Metaphysics.

On Mon, Mar 14, 2016 at 5:36 AM, Chow Loong Jin notifications@github.com wrote:

On Sun, Mar 13, 2016 at 06:43:19PM -0700, Joseph Lenox wrote:

I do print nylon and I don't have warp issues on my build surface, so I frankly can't say anything about that.

I want to know what magical build surface that is.

Kind regards, Loong Jin

— Reply to this email directly or view it on GitHub https://github.com/alexrj/Slic3r/issues/641#issuecomment-196248042.

jreinam commented 8 years ago

+1 when printing abs without hotbed to reduce warping

lordofhyphens commented 8 years ago

@jreinam If you're talking about a multilayer brim, it's pretty easy to fake one up with some gcode splicing. Turn on verbose gcode, then take the lines marked "brim" and make a copy of them until after the move to the second layer. You can see if it works for you (I suspect it actually doesn't, especially without a heatbed and ABS.).

jreinam commented 8 years ago

I use a workaround with openscad/load part/load modifier+perimeters

Yes prints. But needs to tune some things before as temperatures, bed material, width, infill... Example has a <1mm warping. The example part infilled 100%. Think that warping increased little with time, maybe because too much infill, but makes printable. Not easy to print ABS cold. test

Pun-e commented 5 years ago

Printing in PC, brim sticks perfectly but the part peels from the brim. Really stings to be scraping off a perfect brim after the print has already failed. Would say that probably half of my PC failures wouldn't have if I could just use a multi-layer brim.

lordofhyphens commented 5 years ago

@Pun-e I can't see how another few layers of material would have stopped the part from coming up. What it sounds like to me is that you would really like to push the brim closer to the print (make it harder to detach).

VanessaE commented 5 years ago

A thicker brim would be stiffer, more resistant to the bending, peeling-off force that comes with a part trying to lift. Compare peeling tape off a surface, versus say, removing an old stuck-on sheet of plastic.

lordofhyphens commented 5 years ago

I've hacked it into the branch https://github.com/slic3r/Slic3r/tree/feature-641. It currently only works when using the C++ CLI (the GUI will fail to start).

I still think it's a waste of time, but whatever.

Height is in layers, not in mm. I have zero interest in changing the units to mm, as it complicates the code a lot (someone else can do that).

zapta commented 5 years ago

I am trying to switch from simplify 3D to slic3r. I like Slic3r very much but the only show stopper I encountered lead me to this issue.

Please allow to specify the number of brim layers, similar to the existing Skirt Height in slic3r. This is for both normal brim and material support brim. Without it, I have to struggle scraping a single layer brim of my bed due to the good adhesion. With simplify 3D and with slic3r's skirts on the other hand, I just specify height of 3 layers which makes the removal much easier and doesn't not damages the bed with scraping.

@lordofhyphens, you mentioned that you implemented it for the CLI, does this apply also to the support brim? Are you going to merge this feature into main codeline?

lordofhyphens commented 5 years ago

@zapta No, I do not have any intention at this time to merge it into the master branch; I want someone else to ensure that it actually works for them (does what they want), because I have zero use for this feature and still believe it is a waste of time.

If someone really wants it they can polish up that branch and make a proper PR for it.

Pun-e commented 5 years ago

@lordofhyphens I find your tone and attitude profoundly disappointing. There are thirteen infill patterns that have made it, yet a feature with genuine real-world applications (Need larger brim but print occupies entire bed, or inter-extrusion adhesion is lower than warping forces) is in your words "a waste of time" If I could "polish it up" I would. Anybody on this thread would if they could, but they can't. Which is why we're here. If there's some technical reason why it's difficult, just say so and we'll all understand, but stating that you don't need it therefore the opinions of 10 unique people over seven years is invalid is as I said earlier, profoundly disappointing conduct and is a stance to be re-evaluated. To other people with this issue I've given up on the "main" slic3r and I cannot recommend Slic3r-PE (Prusa Edition) enough. The amount of work they've done for us, the "average" user is phenomenal, and when you have an issue they don't denigrate you for not being a programmer. Just because I can't code well enough to contribute to the codebase does not mean my opinion is invalid. ¯\_(ツ)_/¯

supermerill commented 5 years ago

I find your tone and attitude profoundly disappointing

He's gifting time to improve slic3r. He say he will never use this feature. So the time he spent on it is obviously wasted for him. He even gracefully spend some time on this feature and he say that he will spend even more time helping if someone will create a pull request. You can be disappointed because nobody modify the gui for this feature yet, but lordofhyphens attitude is totally logical, and very benevolent.

Also, there are almost no "tone" with writing exchange, it's extremely difficult to judge, and can lead to https://en.wikipedia.org/wiki/Godwin%27s_law. Imo, it's better to ignore any 'tone' and consider every message as being written by a robot (completely neutral, factual and emotion-less).

lordofhyphens commented 5 years ago

Pretty much what @supermerill wrote. I don't even believe it is a feature that will solve the problem at hand, which puts it even lower on the list of things to do. Thus, I want someone who actually has the underlying problem and can test the fitness of the feature to get involved.

Prusa3d's devs have a full time job to code for their fork. This is a hobby for me, which changes the incentives greatly. I also have no intention of making Slic3r my full time job either.

Therefore, this feature is only useful for me in so far as it gets someone else experience in the codebase and contributing. I am quite happy to volunteer my time helping someone else get this implemented.

If you have no aptitude and really really want this feature, I would advise you to hire someone else and put them in contact with me. They get paid, I get someone else who can work in Slic3r and produce quality code, you get your feature.

lordofhyphens commented 5 years ago

@Pun-e The option name is --brim-layers. It's been hacked in as a GUI option as well. It looks like it functions to my light testing. I will not work more on it w/o being convinced it's worth spending time on and actually solves the issues people are saying it does.

Convince me that it is an essential feature (I note that @alranel was not convinced either) and I will spend more time on it. Or find someone else who wants to work off of my branch and bring it to a PR.

There should be builds coming out for people to play with (see the PR and build servers).

lordofhyphens commented 5 years ago

https://ci.appveyor.com/api/buildjobs/f55y9i7574adq9bt/artifacts/Slic3r-master.2019.07.07.2347.fc28ba8f.64bit-PR.zip

hlalibe commented 5 years ago

Printing this part today: https://drive.google.com/open?id=1TYqUpltj6K_4VfwvMCAhG2ujn1byZhYO

I was trying to set-up a thicker brim so the part does not fall off when in the last layers. The part is 230mm tall and quite thin at the interface with the printing bed. So this feature would come handy.

martinberlin commented 4 years ago

I had good results with ABS, without an enclosed printer, just doing a skirt that is 0.5 mm separated from the 3D model. That way with the bed at 110 °C there is a constant flow of warm air and so far has worked well. However, it would be nice to able to regulate Brim layers in expert mode.

Screenshot from 2020-05-15 12-30-10