Re: STL for ever

From: Joe Allison (jallison@solidconcepts.com)
Date: Sat Dec 18 1999 - 00:09:42 EET


The STL format could definitely benefit from some occasional revisions. The
first one I would like to see is shared vertices, but the only way this will
happen is if one or more of the big RP vendors generates it and supports it
to get the ball rolling. If it is developed by a consortium the likely
results will not match what the RP vendors want to see. This will prevent
it from making their priority list.

The RP vendors may be reluctant to develop a new format because then they
will have to spearhead the campaign to get CAD vendors to support it. This
will also require a lot of technical support during their development
process. It all comes down to expenses verses payback. Unfortunately the
payback is difficult to estimate. This is probably why you don't see any of
the big RP vendors plunging forward with a new format.

I think if we want revisions to the STL format, we should be lobbying for 3D
Systems support. I believe they are the largest RP vendor (by $) and the
originator of the current format. I am sure if 3D released a new format,
STL Version 2.0, the CAD vendors would slowly migrate to it. This is our
best chance for success. Any other method will have a high chance of
failure.

Is anyone at 3D Systems willing to discuss this with us?

Also, someone asked me what "shared vertices" were, so here is a short
description.

The current STL format is a simple triangle list and each triangle is
described by three points (vertices) with three coordinates each. E.g.

Triangle 1:
0,0,0
1,0,0
1,1,0
Triangle 2:
0,0,0
1,0,1
1,0,0 (these are really in floating point for the programers out
there)

The order of these points determines the outside surface of the part. A
right hand rule similar to cross-products will point to the outside of the
part. The STL format also includes a normal vector for each triangle. Most
software ingores these because it is redundant data that doesn't always
agree with the order of the vertices.

Notice, both triangles are described by separately even though two of their
points are shared and identical. This can allow triangles that should match
up perfectly to have small gaps between them. Also, since the average
vertex in an STL file is shared by about 4-5 triangles there is lots of
redundant data. A vertex list shares the vertices and would therefor reduce
file sizes by about 5-6 times (assuming we throw out the the normals too).
Here is an example

Vertex list:
0,0,0
1,0,0
1,1,0
1,0,1

Triangle list (indices to vertex list):
1,2,3
1,4,2

The real saving show up when add more triangles. Does this description make
any since to the layman or did I just confuse people?

Joe Allison
Solid Concepts Inc.
28231 Avenue Crocker Bdg 10
Valencia, CA 91355
Tel: 661-257-9300
Fax: 661-257-9311
E-mail: jallison@solidconcepts.com
homepage: www.solidconcepts.com

For more information about the rp-ml, see http://ltk.hut.fi/rp-ml/



This archive was generated by hypermail 2.1.2 : Tue Jun 05 2001 - 22:53:49 EEST