DynamoDS / Dynamo

Open Source Graphical Programming for Design
https://dynamobim.org
Other
1.74k stars 634 forks source link

"Evaluate Curve or Edge" and "XYZ Array on Curve" do not Return Even-Length Segments for Evenly Spaced Parameters on Splines. #168

Closed s-overall closed 8 years ago

s-overall commented 11 years ago

As described in the title, "Evaluate Curve or Edge" and "XYZ Array on Curve" do not return even-length segments for evenly spaced parameters on splines

You can see in this example below that the points are placed much closer together on the spline as the curvature becomes tighter. segment length

At the moment, "Evaluate Curve or Edge" is a bit of a false lead for a lot of applications, because most of the time people are going to want evenly-spaced points.

LevL commented 11 years ago

This is a wish item and resolution on this is pending on Revit API capabilities.

s-overall commented 11 years ago

Is there a way to take advantage of the divided path command within Dynamo to retrieve evenly-spaced points on a line? Divided paths work as expected, but there doesn't seem to be a way to reference the point information within Dynamo.

LevL commented 11 years ago

Not directly for Curves created in Dynamo, unfortunately. DividedPath works with curve references. Hopefully Vasari 2014 will allow acces to "Approximate By Tangent Arcs" node which will approximate spline by sequence of tangent arcs with pretty tight accuracy. Then point distribution on list of arcs (using length of arc segments) could be captured as custom node doing corresponding computations (probably easier to do via python script node). I think this might help in practical cases with splines and such. This will not help with equal distance distribution.

kronz commented 11 years ago

I'd like to leave this open as a future enhancement, not a bug. Basically, there are a number of options for measument along curves that are visible in the divided curve functionality that are desireable, notably, chord length v segment length, neither of which is available at the moment with these 2 nodes

LevL commented 11 years ago

Did not mean to close, just hit wrong button. Sorry.

LevL commented 11 years ago

I pushed to master change that should generate N points on closed curve, with last point coincident with first point (for closed point). Please let me know if this is not working. Thanks. If you do not need last point same as first (i.e. do not need points to "cover" the whole curve), just ask for N + 1 points and remove last one from the list. One more thing: I added "Bound Curve" node that could set parameters on bounded curve (within the curve) or make bounded curve from closed curve.

kronz commented 11 years ago

Lev, thanks for adding the capabilities for closed curve. The orignal title and request of this issue is around even length spacing of divisions on curves, which is still a desirable functionality to have, so I'm leaving this one open

riteshchandawar commented 8 years ago

With recent changes to Curve Divide and Points at Parameter, this problem may not exist.

I am closing this issue, please report back if the newly added node (in latest 1.0 release) doesn't solve your problem.

Ritesh