Transferring tangent/normal attribute from one curve to another using geo nodes

Hi,

I am having an issue where I cant seem to find a way to transfer the tangent/normal information from one curve to another. There are nodes to “set tilt” for example but nothing to set the normal/tangent attributes. (I am aware of the set curve normal node, however this node only has 2 options, “minimum twist and Z up”, both of which dont work)

The issue is that I have an original curve that I am splitting it up into segments. Each segment of it seems to have had its tangent/normal reset so if I use a custom curve profile on the segmented curves it doesn’t line up where each of them meet.
I thought that I would be able to sample the the nearest index of the original curve, capture the tangent and normal and transfer it after the segments have been created but it doesnt seem as straight forward as this. (or is it? :sweat_smile:)

I would be very grateful if someone could shed some light on how to tackle this problem.

Thanks!
-Nick

Are you generating the segments with geometry nodes? If yes, can you maybe store the normal information of the original curve before splitting? Then you could maybe use a comparison of the curve normal before and after splitting to compute a tilt:

2 Likes

Make two circles not one. So your system is making double pipes. You may need to offset the two circles from their origins to keep nice corner bends.

Thanks for the responses, however I may have been a bit premature to flag the solution was found.
I found that the easiest way to avoid the issue was to split the geometry after the pipe/tube geo creation that way it was easier to keep the tangent intact.
However I am still running into the issue of not being able align my pipe flanges to the curve profile.

Here’s a blend file if anyone would be kind enough to take a look. Any help is greatly appreciated!
PipeGen_v11.blend (2.1 MB)

Cheers.

I think you’re overcomplicating this a little bit in your node setup…

What you want to use is a Curve to Points node. This will already give you the correct rotation for your instances (including the Curve Tilt).
Just use the same Curve where you “Move Fillet Vert Back to Position”. The last Boolean Math - And node in that frame will select the points, where you want to make the fillet. If you hook that one in a Boolean Math - Not node, you’re getting the points, where you want to instance the flange geometry:

3 Likes

If you want to use your original setup:

1)capture the curve normal

  1. Align Euler to vector when instancing (suing the captured normal as the vector)
    image

PipeGen_v12.blend (2.3 MB)

2 Likes

Thank you both for the replies. You are absolutely correct in that I have overcomplicated this :sweat_smile:

Both solutions will fix the issue.

Cheers!

1 Like