Grasshopper

algorithmic modeling for Rhino

I need to make a border between two separate curves. One self intersects about 100 times (and its supposed to), the other is simply to create a boundary for the _curveboolean (the part in the middle).

see image attached.

I am trying to get this done in vb with a test point (shown) and all. Just like the Rhino interface would. Thanks in advance

Views: 1625

Attachments:

Replies to This Discussion

Hi Andy,

 

sorry, I don't get it.

 

Are you trying to call CurveBoolean functionality?

Are you trying to replicate CurveBoolean functionality?

Are you looking for an algorithm which computes the position of the celebrated point?

Or D, none of the above?

 

--

David Rutten

david@mcneel.com

Poprad, Slovakia

I am trying to call the curveboolean command (or replicate I don't care, I just want it to work)

there are actually two curves in the picture. The one that is squiggley and the the one that completes the boundary, kindof a "C" shape touching both ends of the squiggley one.

 

I want to use the point pictured to get the region in-between the two curves. 

 

Another way to put it, is that I want to remove all of the self intersections in the squiggley curve by making a hatch without the filled portion. Just the border. Thanks in advance

Ok, I get it. I attached a VB script that bakes the boundary curves, then calls the CurveBoolean command, then harvests the selected geometry.

 

This component will unselect all objects before it starts so it'll ruin the rhino selection state.

 

--

David Rutten

david@mcneel.com

Poprad, Slovakia

Attachments:

Oops, forgot to delete the result of the CurveBoolean from the document, change the contents of the final loop to this:

 

Dim goo As IGH_Goo = GH_Convert.ToGeometricGoo(obj.Geometry)

doc.Objects.Delete(obj, True)

If (goo IsNot Nothing) Then result.Add(goo)

 

--

David Rutten

david@mcneel.com

Poprad, Slovakia

 

This works well and I'd like to thank you for that. Now lets get to the good stuff and do it without the command... It seems that working between rhino and grasshopper in the same VB component makes it very difficult to work with objects later. 

 

I think I could do the GH_Convert.Tocurve command after it runs but I'm not sure that its what I really need. 

 

I can't find resources to make this kind of thing online so if you have any ideas I'd love to hear them. I'll post what I have now so you can see your handy work but I think I'd like to take this to the next level.

 

For example getting rid of the bounding border and making it work with 100 or so "coasts"

Attachments:

I don't think the CurveBoolean algorithm has been made available in the Rhino SDK. I'll need to ask around in Seattle though, it may be accessible via a backdoor.

 

The amount of code involved is substantial to say the least, re-coding it would be a waste of several weeks of (wo)man-power.

 

--

David Rutten

david@mcneel.com

Poprad, Slovakia

alright... I was afraid of that. Thanks for all your help

 

andy

I know this is an old thread, but is there a way to modify the VB to allow for multiple points to be processed in the 'CurveBoolean' command?  Thank you.

I made a user object that may help you. Explode the self intersecting curve first, then input all curves into the component. It works by running a delaunay mesh on all the end points of the curves then removing mesh edges that are not coincident with the original network. You may also want to try Jon's geometry gym components, they work much better than this one. Download link:

http://www.mediafire.com/?j2n76hvlm9j7okr

Here's another stab. It's a total hack, but on single self-intersecting curves (with straight edges) it seems to accurately output the bordering segments. It converts the curve to a planar surface, the planar surface to a mesh, and then gets the mesh's naked edges. 

 

 

Attachments:

RSS

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