11
$\begingroup$

I am using Geometry Nodes in Blender 3.0 to generate a bunch of curves and I would like to join them together - ideally converting them to a single curve object.

The Join Geometry node allows me to work with a single node input but they are still being treated as separate curves. My goal is to create a closed loop with multiple curve segments, merge them together and use the Curve Fill node to create a mesh.

As you can see in the image, I'm using multiple Curve Line nodes and one Bezier Segment node to create the layout of my object. However, Curve Fill only creates a mesh for the Bezier Segment but I would want to fill everything as if it was a single curve.

Left: 3D viewport; Right: Geometry Node setup

1. Is it possible to merge multiple curve segments together?

2. If not, is it possible to create the same curve shape from a single curve node?

$\endgroup$
1
  • $\begingroup$ AFAIK ...and with the current geometry nodes status...no $\endgroup$
    – Chris
    Commented Oct 12, 2021 at 11:42

2 Answers 2

6
$\begingroup$

Yes you can.

First make sure the curves indexes are in the correct order, with the next segment starting at the end of the previous curve (don't connect tail to tail).

Remove overlapping points where curves overlap by comparing point positions or trimming the the curves.

Then you can transfer the positions of the joined curves to a new closed curve like a circle one. You can see an example of the transfer operation in this answer.

You can fill this new curve with the Fill Curve node. As of 3.0 it seems the fill node causes the filled curve to lose the Z attribute, so, given you example geometry is a flat shape, it'd be better to create it in the X and Y axis and rotate it later as needed.

$\endgroup$
6
$\begingroup$

I'm not sure if this is the result that you need. But if you want not to worry about the indexes of the curves neither their position...I'm using what I call the "holy trinity":

Just after the "join geometry" node, convert the curve to a mesh using the "Curve to mesh" node, then use the "Merge by distance" node to weld the adjacent vertices, and then return to a curve using the "Mesh to Curve" node.

You should check what happens with your control points in case you want to preserve them. And also have in mind the posibility to add a resample before and/or after this group of nodes. the holy trinity

$\endgroup$
1
  • $\begingroup$ I am currently using the method you described here (Curve to Mesh-->Merge by Distance-->Mesh to Curve) but because I'm exposing some parameters that alter the original curve start/end positions, as the graph updates, the Merge by Distance and its inherent imprecision makes the result glitch intermittently-- like sometimes the curve switches direction at certain dimensions. Any experience with this behavior? $\endgroup$
    – j-conrad
    Commented Jul 14, 2022 at 21:22

You must log in to answer this question.

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