4
$\begingroup$

I need to make this edge selection in geometry nodes, so that I can move the selected edges away from each other.

I need to be able to add/subtract edges (by adding more vertices in the Grid node) so the selection needs to be dynamic.

enter image description here

How can I do this?

enter image description here

$\endgroup$

2 Answers 2

6
$\begingroup$

(Using Blender 3.6.5)

Here is a proposal assuming that the object to transform is a Cartesian grid in (X,Y) plane, and that the edges to select are at constant Y coordinate. It does not rely on the vertices index.

GN graph

1. The sub-graph made of nodes Edge Vertices, Subtract and Multiply is computing a selection mask that is different from 0 only for edges aligned with Y axis, because of the multiplication by vector (0,1,0).
2. The Inverted output geometry of the Separate Geometry node is then the edges aligned with X Axis. These are transformed to curves, one per horizontal sequence of edges.
3. The sub-graph made of nodes Index, Modulo and Equal is computing a selection mask that is true for even curves index. This is stored in a Named Attribute named even.
4. Curves are transformed back to edges and the Named Attribute is transferred to the vertices.
5. Both separated geometries are joined back and vertices are merged by distance. The Named Attribute is preserved.
6. The Named Attribute is input as a selection mask in the Set Position node to offset the position of even vertices only.

Resources:

  • Inspiration for the selection mask of specific edges: see Markus von Broady's answer here.
  • Blender file:
$\endgroup$
1
  • $\begingroup$ Thanks for this. I haven't had time to get back and try this solution but it looks legit so I'm marking it as correct. Once I revisit this in closer detail I will report back if there is a problem. $\endgroup$ Jan 1 at 0:12
5
$\begingroup$

try this setup:

enter image description here

Note: this works in your case because you have an even number of vertices in vertical.

Note2: this moves "in reality" the vertices - but the "right" ones so this should be what you want

result:

enter image description here

$\endgroup$
2
  • $\begingroup$ Thanks. Would you mind explaining what the Floored Modulo node is doing? $\endgroup$ Dec 29, 2023 at 22:59
  • $\begingroup$ Also, the problem with this method is that whenever I end up with an odd number of pairs, the selection changes and the object becomes symmetric, which won't work for me in this case :( $\endgroup$ Dec 29, 2023 at 23:13

You must log in to answer this question.

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