Incorrect Normal on 180° Toroidal Surface – Inventor 2023.5.1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi everyone,
I'm developing a program that allows me to trace the path of some pipes imported from a STEP file, so I can automatically recreate them from scratch.
The program works perfectly in general, but there's one specific case where Inventor doesn't return what I expect: when there's a 180° curve.
Specifically, when I try to get the normal at inner points along the pipe (i.e., on the toroidal surface), the normal appears to be incorrectly calculated by Inventor. As shown in the image below, when moving along the curve, the returned normal is the same at every point — but only in this particular case. If I test it on any other curve, like 179°, the behavior is correct.
180°
179°
I've tried several methods, but the output remains the same:
points(0) = oPoint.X : points(1) = oPoint.Y : points(2) = oPoint.Z
Dim surfEval As SurfaceEvaluator = oFace.Evaluator
surfEval.GetParamAtPoint(points, guessParams, maxDev, params, solutionNature)
' Method 1: GetNormalAtPoint
surfEval.GetNormalAtPoint(points, normals)
Dim n As Vector = oTG.CreateVector(normals(0), normals(1), normals(2))
' Method 2: GetNormal
surfEval.GetNormal(params, normals)
Dim n As Vector = oTG.CreateVector(normals(0), normals(1), normals(2))
' Method 3: GetTangents
surfEval.GetTangents(params, UPartials, VPartials)
Dim Up As Vector = oTG.CreateVector(UPartials(0), UPartials(1), UPartials(2))
Dim Vp As Vector = oTG.CreateVector(VPartials(0), VPartials(1), VPartials(2))
Dim n As Vector = Up.CrossProduct(Vp)
Any ideas why this might be happening? I'm using Inventor 2023.5.1.
Thanks in advance to anyone who replies!