Move point set distance along a curve

I have a point that I want to move 0.5 feet along the line. The point I am referencing is a point that is placed in rhino, is there a way I can use the line as an axis to move a set distance along?


You could do something like this:

  1. Input the base curve (the curve along which you want to move your point) and the distance along the curve you want it to move (in this case, 12").

  2. Use the Evaluate Length component (with “Normalize” set to False) to find the point on the curve at that length.

  3. Create a vector from the start point to the new point, move your item by that vector. (This isn’t strictly necessary - I could have stopped with the Evaluate Length, but this allows you to move any object that’s at the start of your curve. You could replace the item I’ve called “Point to Move” with a BRep, another curve, a block, etc)

This also doesn’t limit you to a straight curve for the “Base Curve”. You could use any curve as an input, and the resulting point will always be at your desired length along that curve.

Edit: to the mods? I was having an issue; my original plan was to take the desired length, divide it by the overall curve length, and use that in an Evaluate Curve component (with the base curve reparameterized) but it consistently overshot the desired length…

What if you want to move multiple points along the curve? How would you approach that?

I’m not 100% sure (I’m swamped with another project right now), but you could try entering multiple values in the panel where I have 24, then right clicking on the panel and toggling multi-line data.

Edit: You might have to graft the output though. I can’t tell without actually trying it.


I don’t have one available, I just threw together this script in a few minutes, 2 years ago. It’s only eight components though, and they’re all shown.

You can move all points by moving the seam (start/end point).

Or you can move some of the points like this, which also works on curves that are not closed (where seam is useless). (10.1 KB)