Select primitives or edges by angle

   30897   31   6
User Avatar
Member
41 posts
Joined: July 2014
Offline
Hello

is there any way to select primitives or edges by angle in Houdini?
User Avatar
Member
670 posts
Joined: Sept. 2013
Offline
In the group node there is a tab called “Keep by normals”, where you can define a direction as a vector and a spread angle. Works for points, edges and primitives.
https://procegen.konstantinmagnus.de/ [procegen.konstantinmagnus.de]
User Avatar
Member
41 posts
Joined: July 2014
Offline
Awesome, got it. Thank you.
But is there any change of getting something like 3Ds Max or Maya like select by angle?

This kind of works but not like I was hoping for. Trouble is:
1. you have to figure out the vector of the primitive (or whatever you are selecting)
2. it selects all primitives facing this vector and doesn't stop at angle treshold

I mean I see a way you could get around this but it starts to loose its efficiency.
User Avatar
Member
4189 posts
Joined: June 2012
Offline
I think that this is a good feature request - can you submit it via the Support menu -> Report a bug/Rfe. Thanks!

For point 2 - not sure what you mean - the Spread Angle certainly affects the selection.
User Avatar
Member
670 posts
Joined: Sept. 2013
Offline
I guess he wants the tool to select contiguous primitives only.
https://procegen.konstantinmagnus.de/ [procegen.konstantinmagnus.de]
User Avatar
Member
41 posts
Joined: July 2014
Offline
OK, I made and RFE for this feature. So fingers crossed.

Artye
yes you are right, Spread Angle affects the selection. But as Konstantin Magnus says - I was thinking of something more like a contiguous selection which would stop whenever it encounters a certain treshold.

something like this
https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/3DSMax/files/GUID-3BD433E9-2FC6-4DC5-9B4F-D8EBB2581C97-htm.html [knowledge.autodesk.com]
By Angle
When on, selecting a polygon also selects neighboring polygons based on the numeric Angle setting to the right of the checkbox. This value determines the maximum angle between neighboring polygons to select. Available only at the Polygon sub-object level.
For example, if you click a side of a box and the Angle value is less than 90.0, only that side is selected, because all sides are at 90-degree angles to each other. But if the Angle value is 90.0 or greater, all sides of the box are selected. This function speeds up selection of contiguous areas made up of polygons that are at similar angles to one another. You can select coplanar polygons with a single click at any Angle value.
User Avatar
Member
670 posts
Joined: Sept. 2013
Offline
You could also try to develop that tool in python yourself.

Comparing angles could be remotely similar to this VEX code:
// compare user normals against surface normals
float compare = distance(@N, normal);
// assign to group if within threshold
if(compare < threshold){
    setpointgroup(0, "angle_select", @ptnum, 1, "set");
}

Contiguous neighbors can apparently be identified in Python, as well:
http://forums.odforce.net/topic/10441-nearest-connected-neighbors/ [forums.odforce.net]

And viewport selections can be read in, too:
https://www.sidefx.com/forum/topic/21922/?page=1#post-102109 [sidefx.com]
Edited by Konstantin Magnus - Feb. 27, 2017 19:08:19
https://procegen.konstantinmagnus.de/ [procegen.konstantinmagnus.de]
User Avatar
Member
41 posts
Joined: July 2014
Offline
Sadly, my programming skills are pretty low. Maybe in the future. But thanks for the tip!
User Avatar
Member
6 posts
Joined: Sept. 2014
Offline
At the bottom of the Group Create node params is “include by edges” param. Here you will find the min and max edge angle. This does just what you are asking for. This can be used to select all sharp edges on a model. Very useful when used as a seam group for the UV flatten node!
User Avatar
Member
4189 posts
Joined: June 2012
Offline
@adamnerva Can you show how this works? Say I want to select contiguous primitives/polygons on a torus that uses the angle threshold.

Thx!
User Avatar
Member
6 posts
Joined: Sept. 2014
Offline
@Artye I don't understand exactly the operation you are trying to do, but if you want to operate on groups of faces by edge angle use facet node using Cusp Angle. Here I have done a poly inset by edge angle with just 2 nodes.

Apologies if this is not they answer you need. I have only been a Houdini user for a few days.
Edited by NERVAGON - March 1, 2017 15:02:49

Attachments:
PolyInsetByAngle.JPG (198.9 KB)

User Avatar
Member
4189 posts
Joined: June 2012
Offline
ah - thanks! Yep the posts above can do that, it's contiguous selections that is the missing feature. Cheers
User Avatar
Member
41 posts
Joined: July 2014
Offline
I absolutely got my answer for what I asked. Thank you for the tips guys. But I just realized I have phrased it all wrong. My bad. What I had in mind.
Can you select these polygons with one click?

You just click once on one primitive and the selection continues until it hits a certain angle treshold. In this example it could be anything from 0 up to 89.999.. I know I could do it manually and there are great valid ways to do it. But applications could get more complex, this is just to demonstrate what I am looking for.

This is the feature I am looking for.
https://www.youtube.com/watch?v=LWvgWrTMdAs [youtube.com]
User Avatar
Member
83 posts
Joined: Feb. 2016
Offline
bobcat
You just click once on one primitive and the selection continues until it hits a certain angle treshold.
This is the feature I am looking for.
https://www.youtube.com/watch?v=LWvgWrTMdAs [youtube.com]

Might not be with one click, but creating groups by edge angle is possible. The box example above suggests a way to determine the direction of your selection along with edge angle.

Might not be a click and select method, but you can combine selection methods in a group ( and do further modification to that selection bu using other groups that act on the incoming selections ). One advantage is that since it is automatic, any change to the incoming geometry will reflect in the group's selection and pass the info further up the stack.. Err.. down the Network.
Edited by nisachar - March 2, 2017 19:44:44

Attachments:
Select by normals.png (1.8 MB)
Select by edge angle+Normals.png (1.7 MB)

User Avatar
Member
41 posts
Joined: July 2014
Offline
I really dig how you collapsed, I mean connected all of this information together.
Thanks for info, very helpfull!
User Avatar
Member
83 posts
Joined: Feb. 2016
Offline
Anytime.

Groups are one of the most powerful and essential features of Houdini. I hope SESI will expand the group nodes further to do even more clever selections.
User Avatar
Member
17 posts
Joined: March 2019
Offline
Is this really still not possible in Houdini 17.5?
User Avatar
Member
620 posts
Joined: Nov. 2013
Offline
awesomedata
Is this really still not possible in Houdini 17.5?
There is “select by normal” in 17.5 but it is base on normal spread angle as a whole, not shared edge angle thresold.
User Avatar
Member
17 posts
Joined: March 2019
Offline
So what would be the best approach to go about getting all NW corner edges like this:

Attachments:
normal.png (1.0 MB)

User Avatar
Member
4189 posts
Joined: June 2012
Offline
awesomedata
So what would be the best approach to go about getting all NW corner edges like this:

You can set the normal angle to 5 and RMB on the icon to Select all matching normals.
  • Quick Links