Re: Discuss Digest, Vol 38, Issue 19

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Discuss Digest, Vol 38, Issue 19

jim_klessig
Charlie wrote
"What I really need is a function that allows the input of randomly spaced 3D
points and produces a 3D mesh surface."

I don't think such a function is even theoretically possible. It doesn't have sufficient constraints.
It might be possible if you defined a subset of those points as a boundary edge, and constrained the surface to be limited in,some other fashion.

As an example if your random point cloud is defined as the corners of a cube, there are i think 18 different open non self intersecting surfaces that could be formed, at least 3 self intersecting ones, and all possible combinations of those. There is one closed surface ( the cube) and its combinations with the self intersecting surfaces.


Sent from my U.S. Cellular® Smartphone

-------- Original message --------
Date: 1/20/18 9:00 AM (GMT-08:00)
Subject: Discuss Digest, Vol 38, Issue 19

Send Discuss mailing list submissions to
[hidden email]

To subscribe or unsubscribe via the World Wide Web, visit
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
or, via email, send a message with subject or body 'help' to
[hidden email]

You can reach the person managing the list at
[hidden email]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Discuss digest..."


Today's Topics:

   1. Re: Head light bezel (cbernhardt)
   2. Re: F5 works, but F6 gives: ERROR: CGAL error in
      CGAL_Nef_polyhedron3(): (Parkinbot)
   3. Re: F5 works, but F6 gives: ERROR: CGAL error in
      CGAL_Nef_polyhedron3(): (Chris Camacho)
   4. Re: F5 works, but F6 gives: ERROR: CGAL error in
      CGAL_Nef_polyhedron3(): (Ronaldo Persiano)


----------------------------------------------------------------------

Message: 1
Date: Fri, 19 Jan 2018 13:38:36 -0700 (MST)
From: cbernhardt <[hidden email]>
To: [hidden email]
Subject: Re: [OpenSCAD] Head light bezel
Message-ID: <[hidden email]>
Content-Type: text/plain; charset=us-ascii

algotruneman wrote
> Something beginning like this?

I used your suggestion and got close (see attached picture).
What I really need is a function that allows the input of randomly spaced 3D
points and produces a 3D mesh surface.  Is there such a function?
Thanks,
Charles
<http://forum.openscad.org/file/t1309/beze2.jpg>




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



------------------------------

Message: 2
Date: Fri, 19 Jan 2018 14:00:15 -0700 (MST)
From: Parkinbot <[hidden email]>
To: [hidden email]
Subject: Re: [OpenSCAD] F5 works, but F6 gives: ERROR: CGAL error in
CGAL_Nef_polyhedron3():
Message-ID: <[hidden email]>
Content-Type: text/plain; charset=UTF-8

JordanBrown wrote
> I don't use polyhedra very much.? My top-level comment was that generating
> STL files that don't follow the rules is rude.

If you buy a product or pay a lot money for the licence, the word "rude"
might apply ...


> And a side comment that by a common-sense definition, a list of points
> that's not coplanar is not a polyhedron face.

If you want constructive help it is a good idea to show some code that
misbehaves and - again - to test it with the latest development snapshot
first.






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



------------------------------

Message: 3
Date: Fri, 19 Jan 2018 21:05:56 +0000
From: Chris Camacho <[hidden email]>
To: [hidden email]
Subject: Re: [OpenSCAD] F5 works, but F6 gives: ERROR: CGAL error in
CGAL_Nef_polyhedron3():
Message-ID: <[hidden email]>
Content-Type: text/plain; charset=utf-8; format=flowed

On 19/01/18 21:00, Parkinbot wrote:
> If you buy a product or pay a lot money for the licence, the word "rude"
> might apply ...
On the contrary if its free (as in beer) and open source then it would
be "rude" to make some inappropriate output to a STL file, if not at
least because you're sure gonna get called out on it... in public... so
better to do it right....



------------------------------

Message: 4
Date: Fri, 19 Jan 2018 21:13:38 -0200
From: Ronaldo Persiano <[hidden email]>
To: OpenSCAD general discussion <[hidden email]>
Subject: Re: [OpenSCAD] F5 works, but F6 gives: ERROR: CGAL error in
CGAL_Nef_polyhedron3():
Message-ID:
<[hidden email]>
Content-Type: text/plain; charset="utf-8"

2018-01-19 3:52 GMT-02:00 Jordan Brown <[hidden email]>:

> And a side comment that by a common-sense definition, a list of points
> that's not coplanar is not a polyhedron face.
>

?Most non-trivial sets of more than 3 points are not planar ?due to
floating point approximations. And some measure is necessary to cope with
the different number representations of OpenSCAD and CGAL. As far as I
know, OpenSCAD triangulates every polyhedron facet with more that 3
vertices precisely to avoid non-planarity issues. It can be argued that its
triangulation is not "optimal" in some sense but we cannot blame it for
doing this.

Polyhedron is a very flexible primitive. It is possible to define a
non-manifold and/or singular surfaces even with borders or multiple shells
with polyhedron. If degenerated faces are avoided, you can render it
nevertheless while no boolean operations is performed. That may be a hell
or a heaven depending on what you are doing or want to do.

What Uwe's workaround brought up is that the hull operator may "heal"
(most) defective polyhedron generating a valid solid with a manifold shell:
the convex hull of the polyhedron face vertices. That is nice, because
mathematically the hull operation does not require any structure linking
the points.

I don't think there is anything wrong with the current processing of
polyhedron. But...

Consider the following:

e = 5;

p = [ [0,0,   0],[10, 0,   0],[0,10,  0],[0,0,  10],
      [0,0,10+e],[10,10,10+e],[0,10,0+e],[10,0,0+e] ];

faces1 = [[0,1,2],
          [0,2,3],
          [0,3,1],
          [1,3,2]];

faces2 = [[4,6,5],
          [4,5,7],
          [4,7,6],
          [5,6,7]];

polyhedron(p, concat(faces1,faces2));


This polyhedron is really the union of a pair of tetrahedra provided that
the parameter e is positive. It can be boolean operated with another
primitive and renders fine. However, when I set the parameter e to 1e-6 and
union it with a cube, my 01.06 version running on Windows crashes. Worst
than that, setting e to 1e-5 I am able to render it unioned with a cube and
generate a STL file. Although the file is not defective (it represents
exactly the two tetrahedra with a small gap of about 1e-05) OpenSCAD
crashes when I try to import it.

Summarizing, my points are:
a) it is fine to define polyhedra that cannot be boolean operated because
they are not manifold;
b) it is fine that those polyhedra produce STL files that are not manifold
provided a warning is issued;
c) it is not fine that a STL file representing a manifold exported by
OpenSCAD cannot be imported by OpenSCAD.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscad.org/pipermail/discuss_lists.openscad.org/attachments/20180119/2de0402e/attachment-0001.html>

------------------------------

Subject: Digest Footer

_______________________________________________
Discuss mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


------------------------------

End of Discuss Digest, Vol 38, Issue 19
***************************************

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Discuss Digest, Vol 38, Issue 19

cbernhardt
jim_klessig wrote
> I don't think such a function is even theoretically possible. It doesn't
> have sufficient constraints.It might be possible if you defined a subset
> of those points as a boundary edge, and constrained the surface to be
> limited in,some other fashion.
> As an example if your random point cloud is defined as the corners of a
> cube, there are i think 18 different open non self intersecting surfaces
> that could be formed, at least 3 self intersecting ones, and all possible
> combinations of those. There is one closed surface ( the cube) and its
> combinations with the self intersecting surfaces.

Actually it is possible, but probably not inside OpenSCAD.  Many years ago I
was in the land surveying business and I wrote a routine to take randomly
spaced 3D points and turn them into a topo (contour) map.   This was done
inside of AutoCAD.  I saved my headlight bezel as an STL file and imported
it into AutoCAD, then drew some 3D POINTS to represent the area I needed to
fill.  The program I wrote produces a TIN (Triangulated Irregular Network)
of the surface defined by the 3D points.  This particular TIN has 4315 3D
points.  I converted the TIN to an STL and added it to the OpenSCAD file.
See the area circled in red in the attached picture.
<http://forum.openscad.org/file/t1309/tin_fillet.jpg>  




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

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org