Tween through point request


The tween command is really helpful, but it would be much more useful if we were able to tween in a certain direction via a set percentage or through a point, similar to offset through a point.

Usually I have to tween through 20 or 30 iterations to get a line close to the point I want.

A snap option would be great for single lines…

I think this would be a powerful addition to the command, is this possible?


(Wim Dekeyser) #2

Wouldn’t that be the same as using EdgeSrf between the two original curves and then ExtractIsocurve using the point snap?


It’s exactly that :blush:



Hmmm… It’s not quite the same but it’s close enough for most jobs.

Tween_Isocurve.3dm (79.9 KB)


That’s interesting. Should it be the same? What arguments are used to construct the Tween curves?

(Pascal Golay) #6

That’s how we used to tween! But I agree with Andy that it is a reasonable expectation to be able to just pick a point - @rajaa, is that feasible?


Originally TweenCurves (started out as MeanCurve) was exactly that - Loft or Sweep the two curves together and extract the mid isocurve. The problem is that, depending on the curves, the surface doesn’t always loft/sweep as you would expect - as it does so by sampling and connecting equal division increments along the curve. TweenCurves simply added different ways of sampling the two curves for the connections, so you can try to find the optimal result.

The None option should probably resemble the basic surface method, the Refit probably resembles a loft or sweep with refit input curves and the Sample points will sample and connect an equivalent amount of points on both curves. Even then, it doesn’t always work that well with any of those options - it works best on curves that are similar in shape and don’t have “wild” deviations.

I agree that a "ThroughPoint option (with preview) would be cool.



It’s simple to script, but I never interact with the command line so I can just share a GH definition… You loft between the curves, get the coordinates of that point on the surface, deconstruct those and use u as factor for tweening. (8.6 KB)

(Rajaa Issa) #9

TweenCurves does not create a surface or extract isocurve. It relies on dividing input curves, connect, then divide connecting curves to finally interpolate through points. As Mitch pointed out, using a surface is not very reliable in many cases.
Using a point as a reference might work. I can experiment with it. It is not very straight forward like in MarcusStrube’s script because TweenCurves does not use a surface. Will give it a try though.


@rajaa A useful addition to this command would be an “add slash” option as in Sweep2. Being able to input various points on the pair of curves which should correspond would allow the user to find a better result in many cases - just like it does with Sweep2.



(For the definition I uploaded) I’d really like to see 2 input curves (now) where the point is not on the curve [TweenCrv] outputs.


Can you clarify this a bit? I’m not sure I understand what you want… --Mitch


I think you’ve recreated the same outcome as Wim’s suggestion with EdgeSrf? I tweened 50x between curves in Rhino and used your GH example but it still returned the same outcome as ExtractIsocurve.

Using the tween command in Grasshopper and in Rhino returns different results it seems:

I do prefer the output from the tween command in Rhino - it’s much nicer and flows better:


I didn’t know that.


And I think it’s ‘unexpected’.


It’s good to know I guess but not critical, I don’t think? Can’t think of an engineering situation where the different outcomes would matter - other than knowing both procedures aren’t congruent. (start with one process and stick with it etc)


I’m not pleased with removing support for MeanCurve in the WIP (MeanCurve just calls up TweenCurves now).

I still use MeanCurve in cases where TweenCurves doesn’t return the result I want, as in the simple case in the attached file.MeanCurve.3dm (239.7 KB)

(Pascal Golay) #18

Hi Mark - that looks like a bug in TweenCurves - you can tune it up using CrvSeam and matching up the seam points (say at the Quad) . I’ll see if we can get this case fixed, thanks for the example…




Hard to move things forward when guys like me cling to the old, no?

Thanks for putting in the bug report. If I stop running into cases where TweenCurves fails I’ll stop clinging!