Reciprocal

Dear @DanielPiker,

I would like to ask if it possible to make line-line goal in such a way that the line do not slide between each other, but keeps original position as close as possible.

To make line-line goal work I need to scale them, so original red points does not exist in the input.
But I need them to indicate the original position of lines. Ideally the lines would not slide between each other but rotate. I know that the curvature will change, but with current setup I cannot use larger size sticks, it is only possible to make a relaxation if radius is relatively small or close to original curvature distortion.

I attach the files for the setup I have.

The problem:

I wish to keep these point as close as possible (anchor points goal does not help):

Files
Relaxation.3dm (10.5 MB)
Relaxation.gh (18.8 KB)

One possible solution is to mix line-line goal with Curve on Point goal, that keeps close to initial position, but the problem here is that you cannot prevent flipping curves/ moving over each other since the input lines for line-line goal are not scaled:

So the question I have is there any way to use line-line goal and prevent particles flipping over each other without scaling the input lines?

I’m not sure I completely follow, but is what you need something like this combination of the 2 goals:

  • one that pulls the point at parameter ta on line a to the point at parameter tb on line b.
  • one that tries to make a pair of cylinders tangent by making the shortest vector between a pair of lines a given length.

lineline_at_tangent.gh (14.6 KB)

Here it is done with 2 separate goals. The LineAt_LineAt one tries to make the actual lines touch, so it needs to be weak relative to the LineLine goal making the cylinders tangent.

I guess it should also be possible to do this as a single goal.

Dear Daniel,

Could you help me to adapt line-line goal so that it attracts two lines till certain distance?

I would like to specify the target distance between points on lines, so that the distance does not become 0 but user specified.

@DanielPiker I’m trying to run the “ReciprocalK2.gh” file posted above, and there is a missing “Reciprocal” component that is from Kangaroo 1. Is this available somewhere?

Hi @thedriftery
Here’s a version that uses only Kangaroo2 without needing the old reciprocal component:
ReciprocalK2_2.gh (22.0 KB)

1 Like