Grasshopper

algorithmic modeling for Rhino

i am having a issue with surface directions being different from the surface normals derived from GH.

 

the method i am using to determine surface normals (and ultimately to extrude) in GH is creating plane from each surface and plane offset to determine a point to point vector.

 

could this be a issue or bug with grasshopper or if not what could i do to make the GH surface direction match the Rhino surface direction.

 

attached are images of the GH normals and the Rhino normals.

Views: 3123

Replies to This Discussion

Hi  Tyheem,

 

normal directions for Breps are not stored on the surfaces themselves. Basically, to really flip the normal of a surface you need to do a lot of work, especially if the surface has trims. This is why there is a Boolean flag on a BrepFace that indicates whether the normals ought to be interpreted as flipped. 

 

There were several bugs in Grasshopper where I forgot to look at this flag and subsequently flip the normal direction so it's possible you ran into one of the cases I haven't found and solved yet (which Grasshopper version are you using?).

 

However, when you cast a BrepFace to a Surface, you lose the 'flip' data and there's no way to get it back, so it might also be one of those cases.

 

Did I understand correctly you're feeding the surfaces into a Plane parameter in order to get a surface frame? If so, then this is not something I can really fix. You see, frames are based on the surface U and V directions, and all Planes in Rhino are right-handed. If you flip the surface without reversing U or V, then the only frame that still correctly represents U, V and Normal would be left-handed.

 

--

David Rutten

david@mcneel.com

Poprad, Slovakia

OK i think i understand.

How would i ensure that i will extrude a face in the similar to the direction of the surface predetermined surface directions?

 

Currently I am inputting the surface (which are individual surfaces) into the basic plane component which generate a plane, use plane offset to get the surfaces' +z direction, then using vector 2 pt to connect the plane origin to plane offset origin. this vector is to be used to extrude. is there a different way of doing this? what are some other methods of controlling an extrusion direction?

 

ultimately i am working on a custom greeble script which i will apply to a series of surfaces imported and converted from sketchup. it currently extrudes the wrong direction on certain surfaces.

any assistance would be appreciated

 

I am currently using Rhino sr8, GH 0.8.0050

 

Thanks

RSS

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service