4
$\begingroup$

I'm trying to procedurally create a shape with even (horizontal) thickness. I created this geometry nodes test. The left 3 nodes create the shape - and the right 3 nodes scale the generated shape down by 0.8 on only 2 axes to create a hole in the middle using a boolean modifier:

The result is behaving as expected, except the walls have uneven thickness - you can see the top wall is the thickest and the right side walls are thinner:

The desired result should have walls with even thickness:

To create this correct result example - I applied the geometry node modifier - deleted the top and bottom faces and added a solidify modifier.

The question is how to do this completely in geometry nodes without modifier WITHOUT changing the left three nodes. I know you could easily scale each cube individually before the Union modifier on the left in example node setup and it would produce correct result - the left three nodes are just used to create a sample input.

I'm trying to find a solution that does something similar to solidify on only 2 axis so it works with arbitrary input shapes that have a flat top and bottom.

I think I need to do something like iterate around each edge?

$\endgroup$

2 Answers 2

7
$\begingroup$

There's always this option, to solidify a Mesh shape?

enter image description here

No need for the first Mesh to Curve node if you start with a curve.. or you could generate the shape inside GN...

enter image description here

.. for example, you could take your union of cubes, and intersect with a plane, to create the curve to be swept:

enter image description here

$\endgroup$
2
  • 1
    $\begingroup$ Nice topology, and since all vertices are on edges, you should be able to bevel to round the edges for an actual constant thickness if you wanted it! $\endgroup$ Jan 4, 2022 at 17:57
  • 1
    $\begingroup$ @MarkusvonBroady just to be even smirkier than you, >8D ... I tried it by filleting the path curve inside GN, but I got nasty overlaps :( . $\endgroup$
    – Robin Betts
    Jan 4, 2022 at 18:01
4
$\begingroup$

Use Vertex Normals (it's funny that the question about vertex normals was bumped at the same time this question was asked, was it a hint, @Chris?). Since normals are normalized (...) you want to remove the Z component and normalize again (otherwise the thickness would depend on Z component of the normal - the larger the component, the smaller other components and so thickness), then multiply by thickness to get an offset for the cutter (or a base if you don't want to multiply by a negative number - I did it this way for a nicer noodle layout...).

The Position and connected Vector Math > Multiply nodes are not required, but people with OCD might be unable to cope with a cutter having co-planar faces with the base.

Just in case this answer is not smirky enough, you didn't specify what you mean by even thickness - a truly even thickness would require rounded corners on both sides...

$\endgroup$

You must log in to answer this question.

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