robotsinthesun / monkeyprint

A simple tool for pre-processing 3d models and controlling 3d DLP printers
GNU General Public License v2.0
60 stars 35 forks source link

Review support algorithm #10

Open kakaroto opened 7 years ago

kakaroto commented 7 years ago

The support algorithm is somehow wrong, I don't know yet what's causing this, nor do I know if it's only a display bug or a print bug as well (I will confirm after printing the model, although I expect the print to have the same issue since the slicing is done on the same vtk pipeline), but I can clearly see an issue in how the support material gets inserted for the eiffel tower model. If we look at this screenshot of the eiffel tower : eiffel-support We can see that the support is going right through the model, which would make it impossible to remove. There is an issue with almost all of the support pillars, the most obvious one is the one in the middle of the screenshot, going right through the leg of the eiffel tower, but we can also see in the bottom right corner that the support going through the base of the leg is also poking through it. And in the top-center of the screenshot, we can also see the tip of the support cone traversing the first 'floor' of the eiffel tower. I have checked that the behavior happens on both VTK5 and VTK6. The support algorithm must have a bug somewhere, causing this.

robotsinthesun commented 7 years ago

That's not an actual bug, it's just how the support generation is implemented.

It creates a point pattern and shoots vertical lines through the model starting from that pattern. If a line intersects an overhang region of the model, a support is created at this position.

That's why you see supports going through the trusses of the tower, eventually hitting an overhang region somewhere above -- which will create a support that goes through the truss below. For this case, there's the support height option. With this, you can limit the maximum height of the supports so these things won't happen.

However, the main issue is, that an object like that Eiffel tower is extremely hard to support, given all the small trusses. At least the pattern support that's currently implemented cannot properly handle this. A better algorithm would probably start at the overhang regions and walk downwards from there. Do you know how Creation Workshop for example handles this? They have the ability to manually set supports I guess.

Additionally, I don't think you need supports for this model. I had an option to disable supports in an older version and could reimplement that. For now, you could try setting the model Z position to 0 and simply setting the maximum support height to something small so no supports are created.

On 26.10.2016 16:47, Youness Alaoui wrote:

The support algorithm is somehow wrong, I don't know yet what's causing this, nor do I know if it's only a display bug or a print bug as well (I will confirm after printing the model, although I expect the print to have the same issue since the slicing is done on the same vtk pipeline), but I can clearly see an issue in how the support material gets inserted for the eiffel tower model. If we look at this screenshot of the eiffel tower : eiffel-support https://cloud.githubusercontent.com/assets/27990/19730536/8110012c-9b68-11e6-8f0c-15fda156f890.png We can see that the support is going right through the model, which would make it impossible to remove. There is an issue with almost all of the support pillars, the most obvious one is the one in the middle of the screenshot, going right through the leg of the eiffel tower, but we can also see in the bottom right corner that the support going through the base of the leg is also poking through it. And in the top-center of the screenshot, we can also see the tip of the support cone traversing the first 'floor' of the eiffel tower. I have checked that the behavior happens on both VTK5 and VTK6. The support algorithm must have a bug somewhere, causing this.

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