Incorrect Normal on 180° Toroidal Surface – Inventor 2023.5.1

Incorrect Normal on 180° Toroidal Surface – Inventor 2023.5.1

a.brusamolino
Enthusiast Enthusiast
86 Views
2 Replies
Message 1 of 3

Incorrect Normal on 180° Toroidal Surface – Inventor 2023.5.1

a.brusamolino
Enthusiast
Enthusiast

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°180°179°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!

0 Likes
87 Views
2 Replies
Replies (2)
Message 2 of 3

adam_pelka
Explorer
Explorer

Try to divide this curve into 2 curves 90 deg each

0 Likes
Message 3 of 3

a.brusamolino
Enthusiast
Enthusiast

Hi Adam, and thanks for your reply.

I could try splitting it into two curves, but that's not what I’d like to do.

First of all, I’d like to understand why this specific case causes issues when calculating the surface normal. And more importantly, I’d like the process to remain completely automatic, without any manual intervention on my part.

0 Likes