2
$\begingroup$

I have a catenary bezier curve that I generated in Geometry Nodes from mesh vertices. Catenary curve

I would like to duplicate and offset the curve on the XY plane (and make it work for both cyclic and non cyclic splines). I try to do it like this: Nodes

When the offset is small, it looks OK, but when I increase the offset distance, weird things start to happen (look at the last spline): The problem

I think there's a problem with control points' handles but I'm not really sure how to fix it. I'm using Blender 3.4.1.

*** EDIT *** I'm attaching my .blend file if anyone would like to test directly on the problematic curve.

Also, some clarification: I would like to retain the catenary shape on all splines and the access to the handles of the control points after the duplication. The curve is a part of a bigger project (the .blend file is a simplified version), so I would also prefer to avoid converting to mesh and back if possible.

I tried to recreate the problem by hand and (if I understand correctly) the problem happens because as the curve gets offset and the distance between two control points gets smaller (or bigger), the vector handles stay the same, while actually they should be scaled down (or up) and moved closer (or further) to the original point on the XY plane.

Having said that, I have no idea how to fix this. I appreciate your help.

$\endgroup$

1 Answer 1

3
$\begingroup$

Someone will probably come up with a simpler way, but ..

This approach takes advantage of the peculiarity, that when a curve-line is swept along another curve, using Curve to Mesh, the indices of the longitudinal edges occupy the lowest range of the resulting mesh island. All but that range can be deleted from the mesh, leaving parallel longitudinal edges, which can be converted back to curves.

So the bulk of the group is index-wrangling:

enter image description here

This version expects a multi-spline curve as input, and exposes the duplicate count, inner and outer offsets to the interface:

enter image description here

$\endgroup$
2
  • 1
    $\begingroup$ Thank you for trying to help me with the issue. Your solution is quite creative but unfortunately it doesn't solve my problem because resampling destroys the catenary shape of the duplicated splines (after resampling my solution actually works similar to yours). Also, the nodes turn the curve into a poly curve, and I need to keep it bezier and retain the access to the handles of the control points (it's a part of a bigger project). I'll attach my .blend file in a moment. I'm sorry, I should have attached the file right away. I'd appreciate if you'd be willing to take a second look. $\endgroup$
    – Karolina
    May 23, 2023 at 10:09
  • $\begingroup$ Hi @Karolina no problem at all :) .. I did anticipate these limitations might be unacceptable. I am a bit busy today. Maybe someone else will get there first.. will look when I can. $\endgroup$
    – Robin Betts
    May 23, 2023 at 10:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .