algorithmic modeling for Rhino
I have a 3D printer that builds layer-by-layer. If a model has overhangs, the printer builds a support structure below to hold it up. I want to find the orientation that minimizes the amount of support material required.
I've used Grasshopper to find the projection of the mesh onto the floor plane, and used Galapagos to minimize the area of this shadow. It's my first time using Galapagos, and I'm amazed at its power.
But I don't want to minimize the shadow of the mesh, I want to minimize the volume contained between the shadow and the lower surface of the mesh.
Any elegant ways to do this?
Tags:
Interesting problem. I can't think of a good solution to this using Solid Booleans. However the following may work as an approximation:
A is the point in the grid, guaranteed to be above the shape.
B is the point directly underneath A on the ground plane.
X0..X1..Xn are the intersection points. You're looking to add together the lengths of segments X1-X2, X3-X4, X5-X6, ...., Xn-B
--
David Rutten
david@mcneel.com
Tirol, Austria
Incidentally, the more rays you shoot the more accurate the approximation. You should keep the points the same between Galapagos iterations so make sure your points are high enough and spread wide enough to encompass all possible shape rotations.
--
David Rutten
david@mcneel.com
Tirol, Austria
Very nice! I got about halfway there last night, but hit a wall when I realized I would finally need to learn how to work with trees...
I'll be careful to normalize the results by the number of rays cast and the area of the floor plane. Choosing the right number of rays will take some finesse. Too much noise will make optimization tricky.
I thought of populating my rays from the shadow of the object, rather than a rectangle. This would ensure that there are no "wasted" rays that don't intersect the object. Unfortunately, "populate geometry" doesn't do so uniformly, and some parts of the shadow get far more points than others.
It works!
I was able to successfully generate uniformly distributed points in the shadow only (the trick was to use outline, not project).
Most of the second half was copied from David's code - I need to study it carefully to understand grafting, simplifying, etc. Any recommended data structure/tree tutorials?
Optimization works very well, even with as few as 200 sample points. This is the result of about 5 minutes of evolution.
Are you trying to work this out because support material on reprap style 3d printers is usually not great and you want to minimise how much of the model ends up with the rough and/or distortion effects from the support?
Grasshopper might actually be a good tool for generating support structures but I don't know how this could be then included in the slicing software that creates the g-code for the printer.
I experimented a bit with the hexagonal support vs the square grid support and got mixed results... I found best results with the hexagonal support but sometimes it looked like it would work better if I could dynamically change the size, orientation and position of the hexagons to get the best support but minimum effect on the surfaces.
One day, maybe, there will be a grasshopper 3d printer slicer!
Hi All,
I started to work on a similar task a while back, and was tackling the problem in a similar manner. I started by finding the bounding box of the geometry which would give me a domain to lay my point grid and would also give me a maximum height to check against for my vertical rays. I then generated mesh supports with sliders to adjust for thickness. I ran with the idea of the support material on the Form1 printer, and added a few tweaks to it. The one issues I ran into was the slicing software. Once I imported my model with the support structure into the slicing software, it took forever to slice. Then I started to think about developing a slicing algorithm.
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by