Blender 4.1.1 geonodes. Extrude edge parallel to a surface

Hi guyz :smiley:

I got a cube with a square hole.
This cube has 2 creased edges… See the screenshot

The purple edges are the creased ones.

I’m trying to use geonodes on those edges. And what i need to do is extrude those edges along the creased edges connected faces normals ( like i shown in red in the pic for A and B faces :slight_smile:

It appears i’m relly bad at geonodes and need help on this one :stuck_out_tongue:

Thanks a lot for your answers !!!
And happy GeoNoding :wink:

Well this wont really work like that, some of your assumptions describe the current case but cant be transferred into generally applicable math like that cause they are ambiguous. You want to extrude the 2 creased edges along the surface of your cube. First thats not along the normal what you painted in red there, thats along its tangent or bitangent of one of two available neigboring faces. But to work not just in this case but generally you have to come up with an more general applicable rule what the nodesetup shall decide to be the correct neigboring face.

Anyway here’s a simple setup that shows you how to extrude and move the creased edges. In this case it moves them outwards along the xaxis, if that is enough, fine, otherwise it could still might work as a starting point for you.

Hope it helps.

2 Likes

Thanks a lot @Debuk for you answer :smiley:

Yer this works perfectly on the rare cases of axis-aligned faces :slight_smile:

However, what i need is more advanced and i need to extrude edges on a coplanar direction of connected faces.
We should assume that those faces are at the number of 2 and that they can have any angle, regarding the edge.
This looks like a plane equation with the face normal and the creased-edge as direction vector…
My biggest problem is to grab the 2 faces normals so that i can calc the… bitangent or binormal ( i confess i’m kinda lost on those terms, using them only once per decade :stuck_out_tongue: )… Whatever the word, you catch what i mean :wink:

Now for more info on the need, what i want to do is automate the creation of edge maconry on buildings by using the crease parameter. Like on the next pic, with the creased edge under the cross :slight_smile:
*

And at last but not least, those edge must be considered as random ( eg not always vertical ) and the connected faces are also random ( consider the creased edges of the arrowslits of this barbican:

So here’s the trial :stuck_out_tongue:

How to extrude the creased edges along their connected faces surfaces ? :wink:

Thansk a bunch for your help and happy blending !!! :smiley:

Okay… replying to myself…

Blender is great when you use lame coyote tricks…

Almost totally obfuscated but it works and i ask nothing more.

No need for normals ( mostly because this is simply impossible to get faces normals when not using mesh-to-points ), just extrusion…

Oh if anyone has a proper way ( i mean a real math solution ) i’d be fond of reading it :smiley:

happy blending !

Bump ?

Nobody knows how to play with vectors in geonodes ? ( at least better than i do ? :stuck_out_tongue: )

Bumpies again ? :slight_smile:

This would be great someone could answer this :wink:

Thanks and happy blending !

Is there still a question? I’m confused.

Well, okay, just thinking outloud because my PC is dead and I can’t test things.
Assuming all edges are straight, the offset that we need will be straight away from marked edge, on the surface of the face, right? It probably can be described as cross product of “edge” vector and face normal.

So the question is: how do we iterate over every face that has marked edge and create new geo?
Also i’m assuming we can’t just use Extrude on marked geo, because that will create edges with more than 2 faces.

Soooo…

  • first Separate Geometry by all faces that have at least one marked edge;
  • Split Edges;
  • for every marked edge, capture face normal and edge direction;
  • separate edge (?);
  • extrude along cross(normal, edge);
  • merge by distance all new geo.

Or something like that, I dunno :person_shrugging:

1 Like

Not sure I understood the goal properly but perhaps something like this would work?

3 Likes

This looks very interresting :smiley:

And exactly what i need ! Unfortunately this don’t work on my 4.1.1 nor on my 4.3 :frowning:

Could you please tell me where this ‘selection’ named attrib comes from ?

Or better, could you please post your .blend ? :wink:

On my side i use the edge-crease attribute. If >=1 selection is true…
But it doesn’t work either :frowning:

Am i doing anything wrong ?

Thanks for your help and happy blending ! :smiley:

Hm this what i was trying to do but i’m stuck at getting separated edges and faces normals :confused:

All normals are zero-vector :confused:

@pitibonom

Hi,

might this work for your use case?

It works for arbritrary angles. After scaling the extruded edge along it’s normal it uses the proximity node to check for the closest ‘wall’ face then moves the extruded edge back onto it.

Adjust the Scaling node ( shown in orange) to adjust the ‘width’ of the wings.

Whether this will work on geometry that is not as clean as a cube I’ll leave for you to experimant with :slightly_smiling_face:

file . . . [ blender 4.3 ]

Crease_Extrude.blend (954.1 KB)

Cheers,
Dj.

1 Like

@DamianJ I love this really cunning solution :smiley:

Be sure i’ll keep it in mind and that i’ll learn a lot about it !
Thank you !
But for proper rendering, i’ll have to rotate of a very small amount of degrees the created face on the creased-edge axis, so that the created face is not totally coplanar ( wich will create z-fight )

On the secont hand, i’ll also need to also create faces in the inner part of the cube hole, also ‘almost’ coplanar to the faces with creased edge.

I explain why i need this very special ( and unusual ) thing in my second post.

I gonna play a bit with your file just to see what i can do :wink:

Happy blending ! :smiley:

1 Like

to hand tweak the offset from the proximity face use a second scaler on the normal vector in the offset socket and disconnect the Position socket . . .

Dj.

1 Like

This is pretty interresting :slight_smile:

Bu it’s an answer to only one part of the problem. IMHO, the complete solution ( i didn"t even imagine this could be this tough ) should involve vectors and rotations of faces around creased edges :slight_smile:

I give you here the blend with various tryouts…

Anyone have an idea on how to make those GeoNodes ?

Thanks and happy Blending ! :slight_smile:
Edges_tryouts.blend (953.2 KB)

It finally worked pretty fine :smiley: ( assuming the edges to be extruded are vertical )

Happy blending !!! :smiley: