Grasshopper

algorithmic modeling for Rhino

I made a simple oval platter for 3D printing with the attached layout. I want to add a rounded lip to the top flat surface, but nothing I've tried works. The problem, I think, is the result of the inside surface being created from a Boolean subtraction of a scaled-down version of the outside surface, and this results in non-equidistant inside and outside edges. 

As a result a Sweep2 operation with a semicircular arc fails, and a Sweep1 operation results in an un-fixable (by me anyway) naked edge that causes the final STL export to have a flat surface at the level of the naked edge.  I also tried lofting with a 3rd edge between and above the 2 level edges, but this did not work either.

What seems to be needed is a Sweep2 function that allows the sweeping curve to adjust itself so it stays connected to the 2 rail curves. But I don't think anything like this exists, and would probably be difficult to develop. Is there another solution I just haven't figured out yet?  

Views: 672

Attachments:

Replies to This Discussion

Hi Birk,

I also had trouble trying to join your Sdiff platter with a closed brep lip, for some reason, so I removed the top face of the Sdiff platter and joined it to an open surface swept lip. I've noticed that with Sweep2, you have to play around with curve direction. It always seems to work better in Rhino.

Attachments:

Thanks Ethan - that's a fascinating solution.  TBH I don't understand exactly why it works - there are some components in your layout I have not used before - like the ScaleNU or Flip components. And changing the CurvePoint components sure does create some weird geometry.

I do like how your solution produces no naked edges - that's a major benefit for sure.  Thanks again - I'll be able to use what you did for some other models I have made.

Birk, just to clarify what I did: I took your closed brep and exploded it into 6 surfaces. I culled the top rim surface, leaving a kind of shell, which you can see more clearly if you bake the contents of the Cull component.

In order to create the arc for the lip sweep I needed to find the start points for the two sweep curves. That is what the Curve Point component does (at t=0). Fortunately, since you created them from the same initial ellipse, they are nicely aligned. They provide the start and end points for the arc. I thought you might want to vary the profile of the lip from a pure circular arc, so that's where the ScaleNU comes in. You have to give it a point towards which to shrink - in this case, the z direction, to the midpoint of the arc ends. The Avg component works on numbers AND points so it defines the plane for ScaleNU. The surface created by Sweep2 was then joined to the 5 shell surfaces above.

As I mentioned, you sometimes have to play around with Sweep2 in GH since it's sensitive to curve direction. That's why I ended up using Flip Curve. GH's version of Sweep2 is very temperamental compared to Rhino, which seems to "know" what you want, at least that's my experience. Hope this helped a little.

Thanks for your extra explanation Ethan; where I got stuck was with the Flip Component. It would never have occurred to me that curve direction was a factor in determining whether or not a sweep function would work. I don't mean to beat a dead horse, but in my model isn't an ellipse just an ellipse?

Obviously there is more going on than just calculating intersection points between 2 plane curves, but it is rather mysterious. I guess from now on, when I encounter strange behavior in Grasshopper, I will have to think farther outside the box.

Birk,

When you are lofting closed curves in Rhino, you are shown the seam alignment, which is often not what you expected. My advice in GH when you are having trouble involving closed curves, is to hook up the Curve Start/End or Point on Curve components to see where the seam really is. The Point on Curve will also show you the direction, if you slide it, and the results might surprise you. I'm sure someone on this forum has a sure-fire preventative for these situations, but not me!

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service