# [OpenSCAD] User Poll: What do you want to see from OpenSCAD development?

Mon Nov 11 23:23:56 EST 2019

```On 11/10/2019 11:33 PM, nop head wrote:
> Regardless of file format limitations, non manifold objects cannot
> exist in reality, so I think it should be an error to make one and
> users should be educated.
>
> Two cubes cannot share a zero width edge. They either overlap by at
> least one atom or are separate. It is no coincidence that STL can
> represents all physically realisable objects.

While that's mathematically true, in practical reality it's not.

In practical reality I can jam two cubes edge-to-edge and get something
that sure looks like a shared zero-width edge.  Is it really?  It might
be separated by just a little, or down at the atomic level the two might
interpenetrate just a little.  Who cares?  When the printer is spitting
out 0.4mm plastic with a resolution best measured in fractions of a
millimeter, there's no practical difference between a separation of one
micrometer, zero, and an overlap of one micrometer.  The printer can't
represent any of them accurately, so it doesn't matter what it does.

If I have

cube(100);
translate([0,0,100]) cube(50);
translate([50,50,100]) cube(50);

it's clear that the two upper cubes are attached to the lower cube, and
it doesn't matter whether they're attached to each other.  There is no
practical reason why it should be different from

cube(100);
translate([0,0,100]) cube(50.001);
translate([50,50,100]) cube(50);

or

cube(100);
translate([0,0,100]) cube(49.999);
translate([50,50,100]) cube(50);

... and yet it is.

I would say that it would be correct in any of those cases for the
printer to draw a continuous line across the joint, or to not draw a
continuous line across the joint.  The joint is below its extrusion
width and so exactly what it should do is not well-defined.  (In fact,
it should probably be a user option what to do with volumes that are
below half the extrusion width - either round them out of existence, or
say that every volume deserves to be represented, if only as a single
extrusion.

2D programs deal with hairlines all the time; this seems like the same case.

-------------- next part --------------
An HTML attachment was scrubbed...