Lucas Vinicius Hartmann lucas.hartmann at gmail.com
Thu Jun 16 21:33:51 EDT 2016

```Interesting concept that of degenerate solids, very interesting
implications:

Say goobye to differentiating 2D from 3D shapes. All objects could be
represented as a set of vertices, and faces. An object with:
- No vertexes is a void().
- One vertex, no faces is a point().
- Two vertexes in a face is a line().
- Several coplanar vertexes and faces is a single 2d face().
- Several watertight faces is a solid().

Best of all is that this would allow us to mix them up in any configuration.

- scale([0,0,0]) degenerates any non-void thing to a point at (0,0,0). Void
stays void.
- scale([1,1,0]) would do pretty much the same as project(), by killing off
the Z coordinate, but could be used to project to ZX and ZY planes too.
- scale([0,0,1]) could be used to get a line along the Z axis exactly the
same height as out solids.
- minkowski() { point(); thing(); } would act exactly as translate thing.
- minkowski() { line(); face(); } would act like linear_extrude, except the
line could be any angle. If the line is coplanar to the original face, then
the result ends up being another face().
- minkowski() { line(); solid(); } would extrude a solid! Pretty much like
a hull(), but would work for concave shapes too.
- minkowski() { face1(); face2(); } might end up building a larger face(),
or a solid if faces are not coplanar.
- hull() would work on non-coplanar faces() and result in a solid().

However, I assume this would be a massive amount of work, and should not be
expected anytime soon...

--
Lucas Vinicius Hartmann

Dizem que se você rodar o CD do Windows ao contrário ele mostra uma
mensagem demoníaca... Mas isso nem é o pior, se você rodar ele normal ele
instala o Windows!

2016-06-16 13:16 GMT-03:00 Ronaldo <rcmpersiano at gmail.com>:

> Rudolf,
>
> You raised good points but I will keep mine about Minkowski. The example
> you
> have shown of a vanishing cube is idiosyncratic but for other reasons. I
> would expect that
>
>            scale(0) sphere;
>
> to be a point, the origin, and not a void set.
>
> In Mathematics, you have a non-void set by doing a Minkowski sum of a point
> and a non-void set. I thought we have no way in OpenSCAD to do a Minkowski
> sum of a set with only a point or a line segment or a 2D shape due to the
> simple fact that we can't express such sets or mix 2D shapes with 3D shapes
> in OpenSCAD operations. However, we can at least in Minkowski operations.
>
> > minkowski() {
> >      cube(1);
> >      intersection() {
> >         cube(1);
> >         translate([\$t-1,\$t-1,\$t-1]) cube(1);
> >      }
> > }
>
> And that is not idiosyncratic. It does exactly what I would expect. The
> intersection is not void, it is a square that shrinks to the origin when
> \$t=0. The scaled sphere should do the same.
>
> BTW, the above "technique" may be very usefull for rounding only some edges
> of a solid.
>
> There is much more complexities behind the scene... :)
>
>
>
> --
> View this message in context:
> Sent from the OpenSCAD mailing list archive at Nabble.com.
>
> _______________________________________________
>
-------------- next part --------------
An HTML attachment was scrubbed...
```