I am trying to measure an angle between faces. Sometimes it measures the reflex angle instead what I want.
Is it possible to measure always between two sides of the faces independently from the actual angle?
angle.gh (21.8 KB)
I am trying to measure an angle between faces. Sometimes it measures the reflex angle instead what I want.
Is it possible to measure always between two sides of the faces independently from the actual angle?
angle.gh (21.8 KB)
angle Edited v0.gh (591.7 KB)
thank you!
This is a nice workaround. However it does not help me, because I want measure the angle by the section lines because in my geometry lots of angles close to 180 degrees. And calculating the angle by the face normal angles gives inaccurate values.
“I am trying to measure an angle between two faces. Sometimes it measures the reflex angle instead what I want.” The angle measurement switches from normal to reflex… check my definition
I have used this snippet in the past, it’s a bit of an overkill I admit, but it just intersects perpendicular planes on the middle of each edge of neighboring faces, then geometrically builds vectors from intersection-lines at end points
it’s supposed to show all the angles between any neighboring faces in a polysurface, and each angle is displayed in the mid point of the edge between them (that’s why you see the zeroes on the naked eges: they have no neighbor to measure)
angle_inno_geometrical.gh (26.8 KB)
I see that the difference you have 6 sections whereas in I my approach there is one only. However I see that only one section gives a result others have 0. I am confused why this approach works. what is theory?
I guess you could also Cull Pattern the output EF of Topology component with List Length greater than 1, followed with a Clean Tree with Remove Empty Branches = True
that way I thing you won’t get any 0s
[edit] here is the above implementation of the above (to hide unnecessary zeroes) also using cross product (which I think is the proper way to do that)
green arrows indicate the face Normal, just to give a visual clue of what you are measuring:
angle_inno_filtered_cross_product.gh (27.3 KB)
I did. FYI (for future reference):
As before, expression on Degrees output is: if(x > 180,x-360,x)