**Next message:**Christian Nelson: "DTM Press Release - new materials"**Previous message:**George Sachs: "Adaptive Slicing"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ] [ attachment ]

Dear Ray,

Here are a few of my thoughts on this subject (If you like these can be

pursued in greater detail via private reply ). I also believe these

questions have been worked on by a number of companies including 3D Systems,

the Sparx company (Sweden) and Schroff Development (Kansas).

*>My name is Ray Hope. I've been working on slicing procedures for layered
*

*>manufacturing, and am using layers with sloping boundary surfaces to
*

*>eliminate the stair case effect. Note I am obtaining the definition of
*

parts from B-spline surfaces. Layer

*>error is approximated from the radius of curvature and angle of the surface
*

normal.

(G.S) the curvature changes across the entire surface so a local curvature

calculation is not very useful, neither is any one surface normal. A

chordal/cross-sectional deviation measure is at least a worst case deviation

over a surface REGION. The chordal/cross-sectional deviation is illustrated

below

Surface cross section

* | *

* | *

* | chordal *

* | deviation *

end tangent O--------------- |------------------O end tangent

& straight edge approximation &

curvature

curvature

*> The method mentioned above to predict the error, produces a predicted
*

*>error much less than the true value near inflection points. This is
*

*>because at an inflection point the curvature becomes zero, and is also very
*

*>small nearby. So how should we predict error near inflection points?
*

……….

*>Lets consider a threaded bolt. In the threaded section the best results
*

*>will be achieved with fine layer thicknesses, but for the head of the bolt,
*

*>and the unthreaded section, much thicker layers can be used with no loss
*

*>of detail. My problem is mainly in finding a robust procedure to select
*

*>the best layer thickness in the threaded section, to keep the error within a
*

*>specified tolerance. In this case, using the curvature to estimate error does
*

*>not work as the triangular threads have zero curvature.
*

A chordal deviation tolerance will still work in both these situations (see

below). G.S.

Brock Rooney comments:

*>These are some of the reasons why it is better to slice a set of
*

*>triangles with matching vertices, such as a well faceted, valid STL file.
*

(G.S.) This would be OK except that the advantage of using surfaces is that

they are smooth and can be examined to arbitrary precision. A given STL file

is only an approximation to an arbitrary tolerance (and not smooth at that).

The whole idea behind an adaptive algorithm is to seek to optimize the

approximation so that it better agrees with the ideal (i.e. a surface).

Unless you are willing (and able) to repeatedly re-tesselate a bunch of

surfaces (fast!) with different tesselation tolerances, this method is not

great. It is true however that most tesselation (STL conversion) algorithms

currently in use allow the user to specify at least a chordal deviation

tolerance, which can be used to limit the error between an approximate

linear edge and the desired curved edge. So along these lines it would be

possible to convert all the surfaces to an STL format with a specified and

desirable chordal deviation tolerance and then to do the adaptive slicing

using this data, with the knowledge that any cross section of any ONE

triangle will not deviate more than the specified deviation tolerance from

each surface. By increasing the slice thickness so that each slice it

encompasses many triangular facets, however, things get more complicated

since now a set of small connected straight line sections (one from each

triangle) has to be replaced with a single straight chord spanning them and

the error has to be re-computed since it is larger than each individual

error (this shouldn't be too hard though).

If the tessalation approach is not to your liking you can work directly with

the surfaces by looking at a pair of consecutive cross sectional profiles

and the resulting "ruled" edge to see how much the edge deviates from the

actual surfaces. You would similarly want to find the cross sectional rib

curves along each surface which connect the two slice profiles together and

then measure the chordal deviation from these curves. You could use points,

normals and curvature along each section to approximate these curves using

parabolas or even better cubics. It is then a simple matter of mathematics

to compute the chordal deviation from these approximate curves and the chord

connecting each end point. As a BONUS it is also possible to derive a

formula which PREDICTS the number of straight line segments needed to

approximate any one such curve while maintaining a DESIRED chordal

deviation. This count can then be used to subdivide any section into smaller

sections as needed, without having to resort to a trial and error approach

(sort of like a Newton/Ralphson iteration). The use of an STL file is

similar in that the work of finding the correct planar approximation is done

for you. An even more robust approach would be to determine the actual

curved profile between slices, by taking planar sections though the surfaces

perpendicular to the slices and using the actual intersection curves in the

deviation calculations (I leave the details to you…I wouldn't want to spoil

the fun!) This method would work even when dealing with multiple surfaces

which are not curvature or even tangent continuous, since if you compute the

actual (as opposed to approximate) cross sectional profile, it will consist

of a C-zero curve (a piecewise smooth curve) which never the less has a

chordal deviation. The threaded bolt should pose no great problem (but each

resulting optimal slice through the threads would end up being thinner than

the thread pitch) .

I hope I haven't completely misunderstood what your goals are!

George Sachs

Paradigm Systems

**Next message:**Christian Nelson: "DTM Press Release - new materials"**Previous message:**George Sachs: "Adaptive Slicing"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ] [ attachment ]

*
This archive was generated by hypermail 2.1.2
: Tue Jun 05 2001 - 22:39:23 EEST
*