algorithmic modeling for Rhino
Hey guys,
I am trying to find a way to rationalise NURBS curve (for the purposes of manufacture) by splitting it up into a series of arcs. However, these arcs need to be selected from a predeteremined list of arcs which have different radiuses. In other words, if I have a group of NURBS cuves, I want to be able to split them up with a series of arcs that have families of radiuses, say every meter.
This means that I could rebuild my NURBS curves in the following way:
NURBS 1: [rebuild with 5 arcs] :
Arc 1 (25m radius) + Arc 2 (17m radius) + Arc 3 (44m radius) + Arc 4 (33m radius) + Arc 5 (12m radius)
NURBS 2: [rebuild with 3 arcs] :
Arc 1 (25m radius) + Arc 2 (17m radius) + Arc 3 (12m radius)
Ect...
In this example there are 2 instances of 25 m radius arcs, 2 instances of 17 m radius and 2 instances of 12 m radius.
These would be fitting to best rebuild the NURBS curves with a tolerance.
I have started by trying to group similar points of curvature along the NURBS curve, but not sure is a good way to proceed.
Not sure if its clear what I want to achieve, but any advice would be great!
Thanks
dan
Tags:
It sounds pretty tricky. How do you solve this problem by hand in Rhino?
You basically have to decide on a tradeoff between distance-deviation from the original curve and angle-deviation from the original curve. It would be fairly trivial to create a curve with a HUGE amount of tiny tiny arcs that approximate the original curve, but that's probably not what you're after.
--
David Rutten
david@mcneel.com
Seattle, WA
Hi David,
I ended up using a c# script that rebuilds a curve with multiple arcs with a set deviation tolerance, and then rebuilding those arcs by replacing their radiuses with radiuses of incremental values (say every 500mm) (see screenshot)
This script helped me replaces the radiuses:
http://www.grasshopper3d.com/forum/topics/arc-from-2-points-and-a-r...
The only thing is, I would like to minimize kinks. But this may be impossible!
Dan
And thanks for your earlier reply btw!
© 2016 Created by Scott Davidson. Powered by