Grasshopper

algorithmic modeling for Rhino

Hi All,

 

I'm a having a bit of an issue understanding the domain of a brep face.  When I get the domain of the face (i.e., u_interval = face.Domain(0) and v_interval = face.Domain(1)), and then call a point at the lower bound of the domain (face.PointAt(u_interval.T0, v_interval.T0)), the point is well off the surface.  If the u,v values are inside the domain, shouldn't the point be on the surface?  What am I missing?

 

Thanks,

 

Jon

Views: 724

Attachments:

Replies to This Discussion

Hi Jon,

 

you're missing that the Face is trimmed. The underlying surface is slightly larger, but that's the geometry that defines the U and V domains.

 

--

David Rutten

david@mcneel.com

Poprad, Slovakia

Hi David,

 

Thanks -- I was just in the middle of posting a follow up.  I did notice that the underlying surface was larger, but I'm still confused as to why.  The brep was generated as a planar surface from a rectangular edge curve.  I appears that whenever this is done, the underlying surface is larger than the rectangle.  Why is this so?  And, in these cases, how is one supposed to evenly divide a surface?  If I use your Divide Surface component, I do not see points outside the face, but it appears you might just be throwing out points that fail an IsPointOnFace test, or something.  If the number of divisions (say, U) gets high enough, for example, the number of points in that direction starts to be less than U - 1.

 

-Jon

"but it appears you might just be throwing out points that fail an IsPointOnFace test, or something."

 

That is correct, I do. It's easy to untrim surfaces prior to division, much harder to remove points outside of the trimmed region, that's why I do the hard work for you.

 

I don't know why PlanarSurface generated a trimmed surface. It didn't need to. I do know the Planar Surface algorithm simply assumes that a trimmed surface will be required, and I also know that it's typically a bad idea to have a freeform trim 'touch' the surface boundary. I think that there is just no special casing build in that tests whether a curve could be converted to a surface without trimming.

 

If you're making these surfaces in Grasshopper, and if you're always dealing with 4-sided polylines as boundaries, you could find the boundary corners and create a 4-point surface. Or explode the boundary and Loft the first and third edges.

 

--

David Rutten

david@mcneel.com

Poprad, Slovakia

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service