Grasshopper

algorithmic modeling for Rhino

Hello Grasshopper Users,

As i deconstruct a surface I get 2 vertices instead of 4 (see the attached).
Do you have any idea - why?

Do you have any idea - how to fix?

thanks!

Views: 1381

Attachments:

Replies to This Discussion

Without the actual geometry I couldn't possibly comment. Please upload the gh file with the internalised brep or the 3dm file which contains it.

hi David

thanks for quick response
3d data is not with me now.

I'm writing from my mobile now. tomorrow I will need it for a gh definition.

do you just have any idea of possible reasons?
in the first convenience I'll send the digital data too.

thnx

if the component says they're not there..... they might not be there. Do you see the control points there when you select the geometry in Rhino and run the "SolidPtOn" cmd?

Every sharp kink in a surface trim or look should be a vertex. So this would only be correct behaviour of those two corners are not in fact sharp kinks. That is possible if the trimming curve either has a teeny-tiny round corner (in which case the result is correct) or if the trimming curve is horked nurbs data with illegal multiple interior knots or some such horror.

If it's the latter case then it becomes important to figure out how the brep was made.

If I do it by manual operations 
I can get the vertices
HOWEVER I have 40 000 of these surfaces.

Please see the attached sample.

When I deconstruct brep it ends up 3 vectices - instead of 4


Attachments:

That shape is pretty wonky. Using the _What command to inspect it, we definitely see it only has 3 edges:

The _List command gives a bit more info, but also makes it clear there's only three edges and three vertices:

When using the _DupBorder command I get the single loop, which, when exploded, actually behaves correctly. This is probably because Rhino applies some fixing routines to geometry which is added to the document via regular commands.

However the _DupEdge command shows clearly where the problem lies:

That yellow edge was selected with a single click. Inspecting just that particular curve, it turns out it is actually comprised of six distinct curves all strung together. There's four, very short, curves right in the corner:

So, verdict. This geometry has problems. Was it made in Rhino or was it imported from elsewhere?

Using the following commands I can fix it in Rhino, but as you said, it's pretty cumbersome:

  1. _DupBorder
  2. _Untrim
  3. _Explode
  4. _SelShortCrv
  5. _Delete
  6. _Join
  7. _ExtendCrvOnSrf
  8. _Split
  9. _Delete
  10. _Delete

The 'gap' that has to be bridged when the short curves are removed is 2cm in size.

I haven't looked into whether this can easily be automated in GH.

Incidentally here's a zoomed-in view of the brep in GH. Note that the corner with the 'missing' vertex, isn't a corner at all. It's round.

I have 45 k of them

do you have. 
even i decon the brep - i cannot explode the edges any further.

any handy suggestion? damn it cannot be a dead end after all labourous days because of that stupid detail. stupid me!!!!! damn damn damn

If I had to solve this, I'd probably resort to custom C# coding. The trimming edges seem like they would be lines pulled back onto the surfaces, so I'd start by figuring out which portion of each edge is very linear, then recreating that using an actual line and pulling it back. Basically a custom smart rebuild within surface space.

However there's going to be some sort of tolerance issues, because you're fitting existing edges with new edges. What sort of tolerances are you willing to accept?

HI,

can i access the what/list command inside gh?In script?

Thanks!

They are Rhino commands.

Do all of your 45k surfaces have this same problem? And also have the same basic properties (i.e. an almost-ruled surface bordered by 4 straight(ish) line segments -- I know technically the geometry doesn't have 4 edges, but in appearance it does).

If so it seems like you could probably have grasshopper reconstruct these surfaces.

For example, if every surface has 2 correct edges and 1 incorrect edge (made up of what are supposed to be 2 separate edges) then you could find the edge with the longest length, and find out where the kink is (maybe based on curvature change) to make a new control point to reconstruct that edge as two separate curves.

Then you could take any 2 opposing edges and loft them.

I realize the surface you posted isn't truly a ruled surface, but if they are all pretty close and ruled surfaces would be acceptable, then maybe that's an option?

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service