Grasshopper

algorithmic modeling for Rhino

A sneak preview of some components + a user object I've been working on. Goodie #1 is a dynamic list selector; Goodie #2 is a dynamic Geometry Pipeline that accepts inputs to specify layer, name, and object type; and Goodie #3 is an implementation of a half-edge data structure that finds closed regions from intersecting planar curves. (With much faster and more reliable results than surface split.)

Views: 736

Comment

You need to be a member of Grasshopper to add comments!

Comment by Andrew Heumann on March 11, 2013 at 10:57am

Stay tuned - I'd like to get these released within the next month.

Comment by Rémy Maurcot on March 11, 2013 at 10:04am

haha was hoping no one would notice :-p

Such a component can not go unnoticed.
How are things going for abres?

Comment by Landscape on March 4, 2013 at 3:57am

When will be released? It's too useful.

Comment by Christian Schmidts on March 3, 2013 at 10:36am

highly useful tools! looking forward for human!

Comment by Andrew Heumann on March 3, 2013 at 9:11am

Hi newy011 - 

The bug in goodie #3 was due to the fact that I was solving the network topology as straight lines and then applying that back to the curves. This meant that any extreme curve segment that deviated widely from the line connecting its end points would fail. However, I've built in a clause now that will take those curves and subdivide them into smaller segments, thereby eliminating the problem. It's not 100% perfect (the decision of how many segments to generate is somewhat arbitrary) but it seems to fix the vast majority of error cases.

Comment by newy011 on March 2, 2013 at 6:50am

What happens if the input curves create a 'cul-de-sac' for #3? Does the bug in your code become even more troublesome?

Comment by Andrew Heumann on February 28, 2013 at 11:27am

Simon - thanks for the suggestion, this is something I'm likely to include in the next release of HDT Utilities (possibly rebranded "Human") along with other queries to the rhino document, like the list of hatch patterns, linetypes, material names, etc.

Comment by Andrew Heumann on February 28, 2013 at 11:25am

Benjamin - 

#1. If you remove the item from the list, it automatically selects the next item (or previous if the item was at the end of the list)

#2 produces AND conditions between name, layer, and object type, the same as the basic pipeline component.

#3. I was inspired to do it by Trevor Patt's effort here: http://codequotidien.wordpress.com/2012/08/15/half-edge-mesh-2/

But I wrote my implementation from scratch because I was having trouble with his script. He has recently updated his implementation, so you may find it more effective - although I think his works with straight line segments only. 

Comment by Simon Kallioinen on February 28, 2013 at 9:15am

Great things! It would be also be great to have a compenent that outputs all rhino layers in a list.

Comment by Benjamin Golder on February 27, 2013 at 11:03pm

Great work!!

What does #1 do if you remove the chosen item from the incoming list?

I'm assuming #2 is creating AND conditions when combining input criteria (must be on layer x AND be a curve, for example) rather than OR, is that correct?

#3 is awesome! Such a great thing! I would love to see the code for implementing your half-edge data structure, if you'd be willing to share. Did you base it off of someone else's implementation?

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service