- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi @Maxim-CADman77 - as Wesley says, the angle measurement uses the surface normal. We should mention that in the documentation for MeasureTools.GetAngle .
The angle isn't affected by the order of arguments you pass to the function. The result will be the same when you provide them in either order (face1, face2) or (face2, face1).
The return value should be the smallest angle between the normals. It will always be in the range 0 to 180 degrees. Here's a short test rule:
Dim face1 = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kPartFacePlanarFilter, "Select Face 1")
Dim face2 = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kPartFacePlanarFilter, "Select Face 2")
If face1 IsNot Nothing And face2 IsNot Nothing Then
Logger.Info("angle = {0} deg", ThisApplication.MeasureTools.GetAngle(face1, face2)*180/PI )
End If
Edit: the function is not working the way I would expect it to in all cases. I'll try to find out more.
About convex and concave:
The face normals always point outside the body. (Here's some documentation. Faces on the boundary of a solid body are single-sided faces.)
If two planar faces are adjacent (share an edge), I know of one way to find out if they are convex or concave on the body. But before I post it, I'll try to find out if there's a simpler way.

Mike Deck
Software Developer
Autodesk, Inc.