7
$\begingroup$

If a curve has a bevel depth (aka radius) or bevel object (aka profile) it's automatically evaluated as a mesh in GeoNodes:

enter image description here

Is it somehow possible to use beveled curve in geo nodes without removing its bevel and reconstructing it in Geo Nodes?

Use case: I have a lot of curves with different profiles and bevels and I want to add some objects to them with a single geometry setup, without recreating every single radius and profile for each one of them.

$\endgroup$
5
  • $\begingroup$ Why don't you use distribute points on faces? $\endgroup$
    – Crantisz
    Commented Jan 18, 2022 at 10:18
  • 1
    $\begingroup$ This looks like a limitation. A curve should not be automatically converted to a mesh in one case and not in the other, without any information given to the user as to why nor any way to control the behaviour. I think you should bring this to the developers' attention. $\endgroup$
    – Gorgious
    Commented Jan 18, 2022 at 10:19
  • 1
    $\begingroup$ @Gorgious It's deep in the system? The same as a curve having to be converted to a mesh before being able to apply constructive modifiers? Anything which gives a curve a surface implicitly converts it to a mesh, further down the pipeline. $\endgroup$
    – Robin Betts
    Commented Jan 18, 2022 at 10:34
  • 2
    $\begingroup$ @RobinBetts yes I believe this is the explanation, too. I don't expect it to change but this question is a testimony to why this particular behavior could benefit from being communicated more clearly to the user. I think the correct workflow in this case is to keep the curve as a curve and not play with the bevel or extrude properties, and use another object to do it inside a new geometry nodes tree. That way the underlying curve data is usable in any GN tree, as a curve. But of course this means going all in "GN" or nothing from the start of a project. $\endgroup$
    – Gorgious
    Commented Jan 18, 2022 at 10:38
  • 1
    $\begingroup$ @Gorgious ..Maybe the 'Legacy Impedance' is that modifiers are a stack, not a (Houdini-like) tree. If you could have more than one Geometry output to a GN group... ...I don't know how radical 'Everything Nodes' is envisioned to be... $\endgroup$
    – Robin Betts
    Commented Jan 18, 2022 at 11:02

2 Answers 2

2
$\begingroup$

Reverse engineering of a mesh?

...or Mesh to Curve in a peculiar way?

Yes, this is partially possible with the following example...

Prerequisites are:

  • The original curve profile must consist of a simple geometric shape (circle, quad, etc.) with an even number of points
  • The original curve needs at least one subdivision (resolution higher than 1)

A curve is obtained which:

  • runs along the centerline of the mesh
  • has the same resolution as the mesh (not the original curve, but the evaluated points)
  • contains a relative value for the radius of each point

And this is how it works:

  1. At the beginning, it is necessary to elicit whether the mesh was created with the Fill Caps option or not.

    In addition, it must be checked whether the radius at the beginning or end of a curve had a value of 0, or not.

    From these two factors and the number of total points, it is possible to find out the number of points that belong to the caps and that do not belong to the sides.

    Since in a mesh of this type the points for the caps are always at the beginning, they can thus be easily removed.

    At the same time, it is possible to determine the number of points that make up the profile.

    enter image description here

  2. Now that the points of the caps have been selected and we know our profile, it is relatively easy to extract two opposite sides from the rest of the mesh.

    enter image description here

  3. From these extracted opposite sides, the mean value is calculated point by point, which represents the position for an interior curve.

    enter image description here

  4. Finally, a value for the radius is also calculated based on this distance and transferred to the curve points.

    enter image description here

Here is an overview of the entire node group:

enter image description here

Here is the blend file:

By the way, this example does not work with circles or other closed objects, but it can certainly be extended in this direction.

$\endgroup$
1
  • $\begingroup$ Interesting... I just wrote an answer for basically the same thing: I don't deal with the caps, but my algorithm should work for closed shapes. And it works for Blender 3.0: $\endgroup$ Commented Apr 6, 2022 at 19:46
1
$\begingroup$

The short answer to "Can I use the curve after it was converted to a mesh by curve bevel?" is no unfortunately. In order to keep the existing behavior of curve objects, the implicit conversion to mesh when the "bevel geometry" settings are used can't really be removed. However, like usual, nodes provide more flexibility, since you can pack multiple geometry types in a single node link.

This isn't exactly what you want, but one solution is to use the curve to mesh node in geometry nodes to generate the curve, and then join it with points so you can have both in one object.

With this solution you do have to move the bevel object and the radius to the modifier properties.

The separate components node is meant to suggest that the points can be used separately from the mesh in the next modifier.

Curve to points and mesh

$\endgroup$

You must log in to answer this question.

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