http://forum.openscad.org/file/n21696/HULLIssue.png
When I try to use the hull() function, it misses four of the six objects as
shown in the bottom screen shot.
Code:
module front(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.5);}
module back(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.5);}
module top()
{
translate([3000,600,400]) back(250);
translate([0,0,400])front(500);
translate([3000,-600,400]) back(250);
}
module bottom()
{
front(500);
translate([3000,-600,0]) back(250);
translate([3000,600,0]) back(250);
}
//hull() //When uncommented, hull misses the back() objects called in top()
and bottom().
{
bottom();
top();
}
--
View this message in context: http://forum.openscad.org/hull-issue-or-is-it-me-tp21696.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
seems to be an issue. An obvious workaround is:
module top()
hull()
{
translate([3000,600,400]) back(250);
translate([0,0,400]) front(500);
translate([3000,-600,400]) back(250);
}
module bottom()
hull()
{
front(500);
translate([3000,-600,0]) back(250);
translate([3000,600,0]) back(250);
}
hull()
{
bottom();
top();
}
--
View this message in context: http://forum.openscad.org/hull-issue-or-is-it-me-tp21696p21702.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
On 06/15/2017 07:24 PM, jazzjohn wrote:
When I try to use the hull() function, it misses four of the six
objects as shown in the bottom screen shot.
There's probably a CGAL error in the console window?
I guess rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.5);
is producing non-manifold geometry due to rotating a circle that
touches the rotation axis at one point.
See https://github.com/openscad/openscad/issues/1081
ciao,
Torsten.
Thorsten you are right. The following code works as intended,
module front(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.499);}
module back(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.499);}
Nevertheless, no CGAL error is reported, which IS an issue. And my
workaround seems to work, despite the non-manifoldness you mentioned ...
--
View this message in context: http://forum.openscad.org/hull-issue-or-is-it-me-tp21696p21704.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
It seems that CGAL does not check for manifoldness of clear disjoint union
specially involving polyhedra (I assume that rotate_extrude is expressed
internally as a polyhedron). In some odd cases of differences involving
some non-manifold polyhedron, CGAL may even generate a non-waterproof model
without an access violation error although it advises for possible
non-manifoldness. It is a CGAL bug indeed.
Em 15 de jun de 2017 19:23, "Parkinbot" rudolf@parkinbot.com escreveu:
Thorsten you are right. The following code works as intended,
module front(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.499);}
module back(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.499);}
Nevertheless, no CGAL error is reported, which IS an issue. And my
workaround seems to work, despite the non-manifoldness you mentioned ...
--
View this message in context: http://forum.openscad.org/
hull-issue-or-is-it-me-tp21696p21704.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Hull is an operation where manifoldness is irrelevant. It is an operation
on points, not edges or surfaces.
On 16 June 2017 at 14:46, Ronaldo Persiano rcmpersiano@gmail.com wrote:
It seems that CGAL does not check for manifoldness of clear disjoint union
specially involving polyhedra (I assume that rotate_extrude is expressed
internally as a polyhedron). In some odd cases of differences involving
some non-manifold polyhedron, CGAL may even generate a non-waterproof model
without an access violation error although it advises for possible
non-manifoldness. It is a CGAL bug indeed.
Em 15 de jun de 2017 19:23, "Parkinbot" rudolf@parkinbot.com escreveu:
Thorsten you are right. The following code works as intended,
module front(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.499);}
module back(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.499);}
Nevertheless, no CGAL error is reported, which IS an issue. And my
workaround seems to work, despite the non-manifoldness you mentioned ...
--
View this message in context: http://forum.openscad.org/hull
-issue-or-is-it-me-tp21696p21704.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
True, but the render of original front() hull is just the hull of the large
torus without any complaint.
Em 16 de jun de 2017 10:51, "nop head" nop.head@gmail.com escreveu:
Hull is an operation where manifoldness is irrelevant. It is an operation
on points, not edges or surfaces.
On 16 June 2017 at 14:46, Ronaldo Persiano rcmpersiano@gmail.com wrote:
It seems that CGAL does not check for manifoldness of clear disjoint
union specially involving polyhedra (I assume that rotate_extrude is
expressed internally as a polyhedron). In some odd cases of differences
involving some non-manifold polyhedron, CGAL may even generate a
non-waterproof model without an access violation error although it advises
for possible non-manifoldness. It is a CGAL bug indeed.
Em 15 de jun de 2017 19:23, "Parkinbot" rudolf@parkinbot.com escreveu:
Thorsten you are right. The following code works as intended,
module front(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.499);}
module back(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.499);}
Nevertheless, no CGAL error is reported, which IS an issue. And my
workaround seems to work, despite the non-manifoldness you mentioned ...
--
View this message in context: http://forum.openscad.org/hull
-issue-or-is-it-me-tp21696p21704.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Sorry, I should have said the hull of the original top().
2017-06-16 11:00 GMT-03:00 Ronaldo Persiano rcmpersiano@gmail.com:
True, but the render of original front() hull is just the hull of the
large torus without any complaint.
Em 16 de jun de 2017 10:51, "nop head" nop.head@gmail.com escreveu:
Hull is an operation where manifoldness is irrelevant. It is an operation
on points, not edges or surfaces.
On 16 June 2017 at 14:46, Ronaldo Persiano rcmpersiano@gmail.com wrote:
It seems that CGAL does not check for manifoldness of clear disjoint
union specially involving polyhedra (I assume that rotate_extrude is
expressed internally as a polyhedron). In some odd cases of differences
involving some non-manifold polyhedron, CGAL may even generate a
non-waterproof model without an access violation error although it advises
for possible non-manifoldness. It is a CGAL bug indeed.
Em 15 de jun de 2017 19:23, "Parkinbot" rudolf@parkinbot.com escreveu:
Thorsten you are right. The following code works as intended,
module front(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.499);}
module back(diameter) {
rotate_extrude()translate([diameter/2-62.5,0,0])circle(62.499);}
Nevertheless, no CGAL error is reported, which IS an issue. And my
workaround seems to work, despite the non-manifoldness you mentioned ...
--
View this message in context: http://forum.openscad.org/hull
-issue-or-is-it-me-tp21696p21704.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
nophead wrote
Hull is an operation where manifoldness is irrelevant. It is an operation
on points, not edges or surfaces.
Good point. This explains, why the workaround to also hull top() and
bottom() works, while the original version does a union first. Since 3D hull
calls into CGAL also the union has to be done in CGAL and fails because of
the non-manifolds.
--
View this message in context: http://forum.openscad.org/hull-issue-or-is-it-me-tp21696p21714.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
On Jun 15, 2017, at 18:23, Parkinbot rudolf@parkinbot.com wrote:
Nevertheless, no CGAL error is reported, which IS an issue. And my
workaround seems to work, despite the non-manifoldness you mentioned …
The CGAL problem is reported - perhaps you were hit by the error-messages-not-being-cached issue?
-Marius