6
$\begingroup$

Extruding a filled face with a hole in it along a curve using geometry nodes.

I'm trying to have a filled face that has a hole in the center that follows a curve.

img1

img2

However, if I add enable Fill Caps it closes the ends completely.

img3

img4

If I add the Mesh to Curve node the faces aren't filled and extra geometry is added.

img5

img6

Is there a workaround?

It needs to have some thickness since it will be 3D printed but without the added geometry lines protruding from the side.

$\endgroup$

2 Answers 2

7
$\begingroup$

These six nodes are necessary for this:

enter image description here

You would only have to convert the ends of your base curve into two points with Curve to Points, and instantiate your profile curves at these points, which you have previously converted into a mesh with Fill Curve.

However, in exactly such a use case you still have the problem of the normals of the faces that lie inside the shape and the missing UVs.

You would have to correct them manually (depending on the result you want) with Reverse Curve before or Flip Faces after.

For example, you can solve this task as follows:

enter image description here

By reversing the inner profile curve with Reverse Curve, Curve to Mesh creates the inner faces with correct normals. You then convert these profiles into instances in two variants: once normal, and once with Flip Faces. Finally you would have to activate Pick Instance in the node Instance on Points, which in this case selects one of the two meshes at the beginning and end.


Self-advertising: You can also solve the issue with the missing UV and intersecting profiles professionally with a specially built node group that can handle any kind of intersection, even correcting the normals of newly created faces: Curve to Mesh UV

$\endgroup$
3
$\begingroup$

GeoNodes

A solution is to manually place the caps on the ends. This avoids the issues with how Curve to Mesh handles things.


(Blender 3.4)

$\endgroup$

You must log in to answer this question.

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