Exporting curve objects with geometry nodes on them

Hello everyone,

I’m wondering if there’s an easier way to export meshes that are based on a curve object.

Here’s the situation:

  • I have several curve objects that each have a Geometry Nodes modifier, which generates a mesh bent along the curve. (and some instances as well, but at least I can realize those in the GN setup.
  • Because the base object is a curve, I can’t just apply the modifier directly.
  • To export them, I currently have to:
    1. Use Visual Geometry to Mesh on each curve,
    2. Export the scene as FBX,
    3. Undo the conversions (so I can keep editing the procedural setup).

This works, but it’s quite clunky when you have many of these objects.

I was thinking of workarounds like instancing all these curves in a separate collection from a single mesh object, but that feels a bit hacky.

Is there a simpler way, maybe a checkbox or export setting I’m missing, that allows exporting the evaluated geometry of curves with modifiers applied automatically?

Thanks in advance!

image

  1. Use the Curve to Mesh node to change Curve to Mesh.

  2. If you use Instances, you can use Realize Instances to convert it to a mesh.

I think we can use this method

Thanks very much for the reply, but unfortunately this is not my problem. I already have a mesh bent along a curve, and any instances are already realized.

My main question is how do I efficiently export a large number of curve objects that all have these GN modifiers on them (my own setup that bends meshes along curves, it’s for cables with plugs on them). And again, I do know that ‘Visual Geometry to Mesh’ exists.

Here’s a screenshot in case that helps.

I can’t apply the modifier on a curve because:
❌Cannot apply constructive modifiers on curve. Convert curve to mesh in order to apply

In addition, when I try to export this object with the ‘Apply Modifiers’ checkbox ticked, the resulting object will be empty.

You can’t apply modifiers to curves, because they wouldn’t be curves anymore.
Probably the easiest way to apply modifiers to anything is use “Object > Convert > Mesh” operator.

That said, it might not be helpful as, I’m not entirely sure what’s your goal with this:

Thanks for the reply!
Just to clarify what I mean: these are not regular curve objects with modifiers, but curve objects that have a Geometry Nodes modifier which generates a mesh along the curve.

Because the base object is still a curve, I cannot apply the GN modifier directly (the “Apply” button is greyed out). The only way to get an actual mesh is to use Object → Convert → Mesh or Visual Geometry to Mesh, which does work, but becomes tedious when there are many of them.

The reason I mentioned undoing afterwards is because I still need to keep the procedural setups for later adjustments and re-exports. Converting them to meshes permanently would break that workflow.

So my goal is to find a way to export the evaluated geometry of these GN-on-curve setups without having to manually convert each one, while still keeping my original procedural curves intact.

Ah, I think I understand.

Well, if the result of export is one single object, then I would simply stick the whole exported geo (curves and meshes) in its own collection. Then add an empty Mesh Object that does nothing but reads and outputs that collection as a mesh. Then export just that object.

I guess that what you meant by this?

Not as hacky and a lot less complicated compared to “convert/undo” method :person_shrugging:

If what I understand is correct, aren’t you looking for a way to export geometry node objects without changing them to mesh. :thinking:

The geometry node in that image has a mixture of mesh and curves.
And I’m using a lot of Instances.
I used the Realize Instances node to export this to fbx.
This was exported without mesh conversion.

But your example is a mesh object originaly. The “Apply Modifiers” that’s enabled during FBX export will work on those most of the time naturally, just as if you were to apply them manually. But if you had a curve object with GN modifier, that’s another story…

Yes, that’s what I’ve been doing in the meantime. I thought it would be too much work and make my outliner even more elaborate than it already is, but it’s not too bad. Just need to do the work once, then afterwards I don’t need to touch it again. Guess I was just hoping for a simple checkbox somewhere.

@Owltruism don’t understand the situation. :innocent: :sweat_smile:

It’s like @stray said, the problem is applying modifiers on curve objects. In your example you start with a mesh object. Here’s an example of two such objects in the outliner, with the icons showing the difference.

image

So as far as I can tell you can not apply a geonodes modifier that is on a curve object. Yet, I am looking for a way to hopefully do this automatically on export. It will be part of a bigger mesh containing many mesh objects and curve objects, that will be one big single mesh. Hopefully with that in mind the rest of the post will make sense. :sweat_smile:

Wich version do you use?
With 4.5 I have no issues exporting with the Apply Modifiers checkbox activated. Every curve nodetree is converted to mesh.

I’m on 4.5 as well.

But I just figured it out. But I feel a little bit silly. I instinctively selected only ‘Mesh’ as object type, but I have to select ‘Other’ as well. After doing that, the objects were exported succesfully.

I know by default all of those object types are selected, but I thought, well I don’t have or need an armature, lamp, camera etc. Apparently ‘Other’ includes curves that are converted to meshes. :sweat_smile: