On 3/3/2018 11:16 AM, NateTG wrote:
Provided the space is defined in terms of orientable
non-intersecting/non-touching triangle meshes "shell counting" isn't
appreciably harder than calculating the volume.
What about if they are touching?
... was that the normal orientation didn't matter and could be arbitrary
from one triangle to the next, ...
It doesn't. What matters is that a consistent assignment of normals is
possible and the surface doesn't self-intersect. If that is the case, it's
not that challenging to work out a proper winding direction of each face
automatically. (Zero volume surfaces can have multiple valid windings.)
So how possible would it be to build a system (which might consist of a
CAD program like OpenSCAD and a slicer) that would not care if you got
the winding direction wrong or if you let objects touch one another?
What about if they are touching?
When surfaces are touching, then it's not always clear what's supposed to
happen.
So how possible would it be to build a system (which might consist of a
CAD program like OpenSCAD and a slicer) that would not care if you got the
winding direction wrong or if you let objects touch one another?
Try to and find out. Honestly, I'm a little surprised that OpenSCAD doesn't
fix winding directions automatically.
--
Sent from: http://forum.openscad.org/
On 05. mars 2018 09:27, Jordan Brown wrote:
On 3/3/2018 11:16 AM, NateTG wrote:
Provided the space is defined in terms of orientable
non-intersecting/non-touching triangle meshes "shell counting" isn't
appreciably harder than calculating the volume.
What about if they are touching?
Indeed. In a polyhedron, the faces are touching by definition. Otherwise
it isn't a polyhedron.
Carsten Arnholm
So how possible would it be to build a system (which might consist of a
CAD program like OpenSCAD and a slicer) that would not care if you got the
winding direction wrong or if you let objects touch one another?
If an object is built by boolean operations of any primitives except
polyhedron, the winding order will be consistent even if the result is not
a manifold.
For polyhedron, a consistent winding order is user responsability. A
polyhedron is a soup of (possibly triangulated) facets so it is possible to
define non-orientable, non-manifold, self-intersecting freaks with
polyhedron. When the polyhedron call defines an orientable manifold it is
possible to find a consistent winding order to the facets by traversing all
the facets. If this traversing is unable to find a consistent winding order
than it is possible to conclude that the polyhedron skin is non-orientable
or a non-manifold. Self-intersection are harder to detect because it
requires comparing all facet pairs.
To illustrate the impossibility of finding a winding order for some cases,
consider the following section of the facets of a polyhedron:
where all the facets (except the top and bottom ones) are parallel to the Z
axis and have equal heights.
On 3/5/2018 6:02 AM, NateTG wrote:
So how possible would it be to build a system (which might consist of a
CAD program like OpenSCAD and a slicer) that would not care if you got the
winding direction wrong or if you let objects touch one another?
Try to and find out.
I freely admit that I don't have nearly the math knowledge to do it.
On 3/5/2018 12:08 PM, Ronaldo Persiano wrote:
To illustrate the impossibility of finding a winding order for some
cases, consider the following section of the facets of a polyhedron:
where all the facets (except the top and bottom ones) are parallel to
the Z axis and have equal heights.
I'm having a hard time understanding what I'm looking at. I don't see
how it can be a polyhedron, because two of the vertices seem to have
only two edges connected to them.
JordanBrown wrote
...
I'm having a hard time understanding what I'm looking at. I don't see
how it can be a polyhedron, because two of the vertices seem to have
only two edges connected to them.
...
The traditional examples of a non-orientable surface are Klein bottles and
Moebius strips. You can't color one of those with blue on one side and red
on the other.
http://forum.openscad.org/file/t2140/kleinbottle.scad
--
Sent from: http://forum.openscad.org/
On 3/5/2018 5:16 PM, NateTG wrote:
JordanBrown wrote
...
I'm having a hard time understanding what I'm looking at. I don't see
how it can be a polyhedron, because two of the vertices seem to have
only two edges connected to them.
...
The traditional examples of a non-orientable surface are Klein bottles and
Moebius strips. You can't color one of those with blue on one side and red
on the other.
Sure. I would consider the ability to model impossible figures[*] to be
very much secondary to making it easy to model possible figures. I
would not be bothered in the slightest if OpenSCAD rejected a Klein
bottle as a self-intersecting polyhedron.
[*] A Möbius strip is an impossible 2-dimensional figure. As a
three-dimensional figure with thickness it is completely possible,
but then it also isn't, well, impossible; it has a well-defined
inside and outside.