Ultimaker / CuraEngine

Powerful, fast and robust engine for converting 3D models into g-code instructions for 3D printers. It is part of the larger open source project Cura.
https://ultimaker.com/en/products/cura-software
GNU Affero General Public License v3.0
1.69k stars 886 forks source link

Feature request - dynamic brim_line_count when model is 'top heavy' #434

Open Thunderscreech opened 7 years ago

Thunderscreech commented 7 years ago

Brims are used to bolster bed adhesion but a model with a skinny base that's tall can quickly end up exceeding the brim's support.

I propose treating brim_line_count as a minimum and increasing the number of certain conditions are met during analysis such as:

Treating is as a minimum would maintain backwards compatibility and dynamically increasing it could reduce the number of failed prints, especially by novice users and modelers.

BagelOrb commented 7 years ago

We can't treat the brim line count as a minimum, because the placenta of the object might depend on it. The build volume is limited such that all brim lines are guaranteed to fall within the build plate area. I the geometry of your print along with some setting then suddenly require extra brim lines then those might fall outside the printable area.

Perhaps we should flip the idea around and decrease the number of brim lines if the opposite of the conditions is met.

I don't really understand why the criteria you mention influence adhesion requirements. Why would a higher object need a better bed adhesion? Why would a small layer followed by a relatively large layer require more bed adhesion?

Op 8 jan. 2017 17:40 schreef "Thunderscreech" notifications@github.com:

Brims are used to bolster bed adhesion but a model with a skinny base that's tall can quickly end up exceeding the brim's support.

I propose treating brimlines as a minimum and increasing the number of certain conditions are met during analysis such as:

Treating is as a minimum would maintain backwards compatibility and dynamically increasing it could reduce the number of failed prints, especially by novice users and modelers.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Ultimaker/CuraEngine/issues/434, or mute the thread https://github.com/notifications/unsubscribe-auth/AIe9EQdsOo9NsMG27UmIggbObAYHfe5Sks5rQRGZgaJpZM4Ldu3l .

Thunderscreech commented 7 years ago

*Why would a higher object need a better bed adhesion?

As the object gets taller, the amount of torque needed to tip it/break it free of the adhesion surface goes down because of mechanical advantage. Improved bed adhesion could lower the risk of a failed print caused by a tall, skinny object being 'wiggled' free of the bed.

*Why would a small layer followed by a relatively large layer require more bed adhesion?

It might not, I'm less confident that a wider brim would help something that has a 'skinny neck' partway up than I was a couple days ago. I still think there's merit to considering a automatically wider-brim when an object is tall (especially if it's tall and skinny) but I can't support the other part of my suggestion re: the neck with data.

BagelOrb commented 7 years ago

Ok, it seems like a good idea.

However, I think we currently don't have the time to fully test such a feature, given all the other stuff we are testing. I think we should do with one brim size which should work for all objects, for the moment.

I think the area of the bottom layer is much more important than the height, but composing a formula over area and height is going to be quite difficult.

Ghostkeeper commented 7 years ago

An object that is wide and tall (e.g. a pyramid) would require fewer brim lines than an object that is slim and tall (e.g. a column).