[OpenSCAD] STL problem - globoid worm gear system

Parkinbot rudolf at parkinbot.com
Mon Jan 1 11:43:20 EST 2018


Marius, 

I wouldn't mix up mesh repair for input and mesh coarsing for output. 
For output, where you start with a supposedly valid representation, it is as
easy as merging two vertices too close to be distiguishable by the used
output format into one and suppressing the two facets affected by this
operation. 

As the code and STL excerpt below show, STL output is done on the basis of 6
valid decimal digits, while a single (23 bit mantissa) can express the range
-3,40282347 to 3,40282347 which is obviously almost 8.5 decimals. Therefore
any proper STL output must have a coarsening step in the proposed way. I
don't know how OpenSCAD actually deals with it internally, but if I had to
implement it, I would use a compare of the 6 digit decimal representation or
at least a minimal distance criterion that sufficiently covers this loss of
precision. 

cube(sqrt(2)); translate([100, 0, 0]) cube(sqrt(2)); 

...
facet normal 0 -1 -0
    outer loop
      vertex 1.41421 0 1.41421
      vertex 0 0 0
      vertex 1.41421 0 0
    endloop
  endfacet
  facet normal -1 0 0
    outer loop
      vertex 100 0 0
      vertex 100 1.41421 1.41421
      vertex 100 1.41421 0
    endloop
  endfacet
...





--
Sent from: http://forum.openscad.org/




More information about the Discuss mailing list