# RE: Triangle Normals

From: BROCK ROONEY (brockrooney@delphi.com)
Date: Thu Jan 11 1996 - 21:23:34 EET

On STL Enhancement:

At 01:21 PM 1/10/96 -0800, Tony Martin wrote:
>But the resulting "improved" part can't be trusted. Sure, you can just
>average the normals of the neighboring facets and smooth it out. But
>what if there is _supposed_ to be a corner there. You can also assume
>that if the angle between facets is greater than some value, then it is
>supposed to be a corner, and if it is less than this value then it should
>be smooth, but it is likely to guess wrong in some situations.
> If the normal data is supplied at each vertex, of course you can only
>get A curve that is not likely to match the actual curve, but it will
>probably be very close. Trying to add facets to a model with too few
>facets will only approximate A curve, not The curve as well, and if you
>are not using normal vertices supplied with the data, then this
>approximated curve is only a guess. I think that the actual model will
>be closer approximated by basing it on _real_ normal data, rather than a
>guess.
>
Tony has pointed out some of the issues involved in STL enhancement.
Without going into detail on products in development, I note:

Curve fitting software deals with these issues all the time.
Experience with related situations indicates these issues can be handled.
Analysis of this particular situation indicates these issues can be handled.
Initial prototype code indicates these issues can be handled.

The best solution is to use STL generation software which generates the
appropriate number of triangles in the first place. Failing this,
STL enhancement can be useful.

We are interested in STL files of real parts designed on commercial
CAD systems with STL output using commercial STL generation software.
Some issues are not of practical importance.

The task is not to change hexagons into circles, but rather to convert
20 sided polygons into 40,60, or 80 sided polygons. Doubling the number
of segments reduces the chord height to 1/4 the original. Going from
One segment to Three can reduce the Chord Height from 0.10 to 0.01

On Normal importance:

Normals are of most value on the edges. But due to the matching
procedure between adjacent surfaces, the normals at the edges are
probably unreliable.

The range of possible surface normals is usually very restricted by
the local situation and practical considerations.

If you calculate new points using normal information, and again
using my methods, you will get curves which differ from each other
and from the original curve. The difference between them will be
small compared with the original chord height, probably less than
the new chord height. Both will be a Lot closer to the original
curve than is the original segment. So the % difference is small.

Or to take the macro view: Files enhanced both with and without
normal information will be much nicer than the original. And the
customer will be hard pressed to say one is better than the other.

And So: Knowledge of the original surface normals does not
significantly improve the result.

By the way, other aspects of the design of this product are much
more challenging than the surface shape.

C. Brock Rooney, Pres., Brock Rooney & Associates Inc. (Brockware)
268 George St. Birmingham Michigan 48009 USA
(810) 645-0236 fax/bbs (810) 645-9020 email brockrooney@delphi.com

This archive was generated by hypermail 2.1.2 : Tue Jun 05 2001 - 22:37:06 EEST