Procedurally select and grow polygon selection, groups in Houdini



Procedurally select and grow polygon selection, groups

grow or shrink polygons selection:

with group expand node

add group node for a poly selection name it: start add group expand node group name: set some base group: start steps: set some

manually

shift - G to grow it shift - S to shrink it

with bounding box:

add a group node below some geo and check display flag (group type: points) keep in bounding regions -> check enable bounding type: bounding sphere then move sphere/box in viewport for poly selection

with normal direction:

keep by normals -> check enable direction: 0 1 0 (to select all upwards points normals) spread angle: 60

bevel procedurally afterwards

(create the group) add poly bevel node group: someGroup exclusion: check ignore flat edges

select top most points

add group expression node VEXpression: @P.y>=getbbox_max(0).y-.01

select bottom most points

add group expression node VEXpression: @P.y<=getbbox_min(0).y+0.01

all points below a certain height

add group node group type: points check base group -> enable base group: @P.y<=0.1 (to select all bottom points)

excluding/inverting a group

group: !group1 (or use group invert node)

selecting patterns

add group expression node group type: points VEXpression -> click dropdown to select

select only the edges, for bevel

add group node group type: edges uncheck base group check include by edges min angle: 20

select only edge points

(add fuse and facet node, if organic geometry) add group node group name: border uncheck base group check include by edges -> enable check unshared edges

select every other element (loops, edge selection)

add some test geo spiral circle (with 12 devisions!) sweep add group range node group type: points range filter -> select: 12 of 12 * 3 (or 1 of 6 for cut along the spline) add group promote node convert from: points to edges group name: select the grouprange group new name: set something check include only elements on the boundary

select half of a grid procedurally

add grid rows: 11 columns: 11 add sort node, primitive sort: by X add group range node range filter -> select: nprims(0)/2 of nprims(0)

group combine

(to combine group-A and group-B) add group combine node group name: group-new Equals group-A Union (Or) With group-A Union (Or) With group-B

select only triangles

add group expression node VEXpression -> dropdown -> triangles @numvtx==3

select only quads

add group expression node VEXpression -> dropdown -> triangles @numvtx==4

select only corner points (of grid)

add grid node add measure node element type: points measure: curvature gaussian add group node group type: points base group: @curvature>.1

select rows or columns (of grid)

add grid node, defauls add sort node primitive sort: by X add attribute wrangle node run over: primitives VEXpression: i@prim_id = @primnum; //row of 9 prims: primnum modulo 9 i@prim_row = @primnum%9; //select every nth row, example for 4th row: if (@prim_row%4==0) { //@Cd = {0,1,0}; i@row4th = 1; } to visualize: crtl + middle mouse click on node -> check prim-row add group node base group: @row4th=1

or a quicker way:

use group range node group type: primitives range filter -> select: 9 of 9 * 4



Published: August, 2019