discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

New forum member, extruding along path

M
MichaelAtOz
Tue, Sep 3, 2019 6:00 AM

In case others try this, just comment out the "use <shakespeare..."
line.

Try

translate([0,-10,0]) // so they don't touch
#extrude_open(path1);
//#extrude_open(path2);
cube(1);

re assertion violations, just have a 'cube(1);' with your object will force
CGAL union.

Preview the above it points to some triangulation visual artefacts, on the
bottom, that may be a clue.
Looks likely there are holes.
Without the cube, path1 can be rendered and exported.
The STL shows this:
<nabble_img src="Capture_sheakspear_holes.jpg"
border="0"/>

[looks like nabble images are broken again, on preview, I'll post anyway
JIC]


Admin - email* me if you need anything, or if I've done something stupid...

  • click on my MichaelAtOz label, there is a link to email me.

Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. Obviously inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/  time is running out!

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

In case others try this, just comment out the "use <shakespeare...&quot; line. Try translate([0,-10,0]) // so they don't touch #extrude_open(path1); //#extrude_open(path2); cube(1); re assertion violations, just have a 'cube(1);' with your object will force CGAL union. Preview the above it points to some triangulation visual artefacts, on the bottom, that may be a clue. Looks likely there are holes. Without the cube, path1 can be rendered and exported. The STL shows this: &lt;nabble_img src=&quot;Capture_sheakspear_holes.jpg&quot; border=&quot;0&quot;/> [looks like nabble images are broken again, on preview, I'll post anyway JIC] ----- Admin - email* me if you need anything, or if I've done something stupid... * click on my MichaelAtOz label, there is a link to email me. Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. Obviously inclusion of works of previous authors is not included in the above. The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ time is running out! -- Sent from: http://forum.openscad.org/
O
OzAtMichael
Tue, Sep 3, 2019 6:44 AM

Here is that image

-----Original Message-----

From: Discuss [mailto:discuss-bounces@lists.openscad.org] On Behalf Of MichaelAtOz

Sent: Tue, 3 Sep 2019 16:00

Subject: Re: [OpenSCAD] New forum member, extruding along path

In case others try this, just comment out the "use <shakespeare..."

line.

Try

translate([0,-10,0]) // so they don't touch

#extrude_open(path1);

//#extrude_open(path2);

cube(1);

re assertion violations, just have a 'cube(1);' with your object will force

CGAL union.

Preview the above it points to some triangulation visual artefacts, on the

bottom, that may be a clue.

Looks likely there are holes.

Without the cube, path1 can be rendered and exported.

The STL shows this:

<nabble_img src="Capture_sheakspear_holes.jpg"

border="0"/>

[looks like nabble images are broken again, on preview, I'll post anyway

JIC]


Admin - email* me if you need anything, or if I've done something stupid...

  • click on my MichaelAtOz label, there is a link to email me.

Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent

possible under law, I have waived all copyright and related or neighbouring rights to this work.

Obviously inclusion of works of previous authors is not included in the above.

The TPP is no simple "trade agreement."  Fight it! http://www.ourfairdeal.org/  time is running

out!

--


OpenSCAD mailing list


This email has been checked for viruses by AVG.
https://www.avg.com

Here is that image > -----Original Message----- > From: Discuss [mailto:discuss-bounces@lists.openscad.org] On Behalf Of MichaelAtOz > Sent: Tue, 3 Sep 2019 16:00 > To: discuss@lists.openscad.org > Subject: Re: [OpenSCAD] New forum member, extruding along path > > In case others try this, just comment out the "use <shakespeare...&quot; > line. > > Try > > translate([0,-10,0]) // so they don't touch > #extrude_open(path1); > //#extrude_open(path2); > cube(1); > > re assertion violations, just have a 'cube(1);' with your object will force > CGAL union. > > Preview the above it points to some triangulation visual artefacts, on the > bottom, that may be a clue. > Looks likely there are holes. > Without the cube, path1 can be rendered and exported. > The STL shows this: > &lt;nabble_img src=&quot;Capture_sheakspear_holes.jpg&quot; > border=&quot;0&quot;/> > > [looks like nabble images are broken again, on preview, I'll post anyway > JIC] > > > > ----- > Admin - email* me if you need anything, or if I've done something stupid... > > * click on my MichaelAtOz label, there is a link to email me. > > Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent > possible under law, I have waived all copyright and related or neighbouring rights to this work. > Obviously inclusion of works of previous authors is not included in the above. > > The TPP is no simple "trade agreement." Fight it! http://www.ourfairdeal.org/ time is running > out! > -- > Sent from: http://forum.openscad.org/ > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org --- This email has been checked for viruses by AVG. https://www.avg.com
O
OzAtMichael
Tue, Sep 3, 2019 8:31 AM

This is it, the STL, cut in half.

You can see that internal geometry, almost certainly makes self-intersections.

Also not the green triangles to the left of the arrow, green means 'outside' face.


From: Discuss [mailto:discuss-bounces@lists.openscad.org] On Behalf Of OzAtMichael
Sent: Tue, 3 Sep 2019 16:45
To: 'OpenSCAD general discussion'
Subject: Re: [OpenSCAD] New forum member, extruding along path

Here is that image

-----Original Message-----

From: Discuss [mailto:discuss-bounces@lists.openscad.org] On Behalf Of MichaelAtOz

Sent: Tue, 3 Sep 2019 16:00

Subject: Re: [OpenSCAD] New forum member, extruding along path

In case others try this, just comment out the "use <shakespeare..."

line.

Try

translate([0,-10,0]) // so they don't touch

#extrude_open(path1);

//#extrude_open(path2);

cube(1);

re assertion violations, just have a 'cube(1);' with your object will force

CGAL union.

Preview the above it points to some triangulation visual artefacts, on the

bottom, that may be a clue.

Looks likely there are holes.

Without the cube, path1 can be rendered and exported.

The STL shows this:

<nabble_img src="Capture_sheakspear_holes.jpg"

border="0"/>

[looks like nabble images are broken again, on preview, I'll post anyway

JIC]


Admin - email* me if you need anything, or if I've done something stupid...

  • click on my MichaelAtOz label, there is a link to email me.

Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent

possible under law, I have waived all copyright and related or neighbouring rights to this work.

Obviously inclusion of works of previous authors is not included in the above.

The TPP is no simple "trade agreement."  Fight it! http://www.ourfairdeal.org/  time is running

out!

--


OpenSCAD mailing list

<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_con
tent=emailclient>

Virus-free.
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_con
tent=emailclient> www.avg.com


This email has been checked for viruses by AVG.
https://www.avg.com

This is it, the STL, cut in half. You can see that internal geometry, almost certainly makes self-intersections. Also not the green triangles to the left of the arrow, green means 'outside' face. _____ From: Discuss [mailto:discuss-bounces@lists.openscad.org] On Behalf Of OzAtMichael Sent: Tue, 3 Sep 2019 16:45 To: 'OpenSCAD general discussion' Subject: Re: [OpenSCAD] New forum member, extruding along path Here is that image > -----Original Message----- > From: Discuss [mailto:discuss-bounces@lists.openscad.org] On Behalf Of MichaelAtOz > Sent: Tue, 3 Sep 2019 16:00 > To: discuss@lists.openscad.org > Subject: Re: [OpenSCAD] New forum member, extruding along path > > In case others try this, just comment out the "use <shakespeare...&quot; > line. > > Try > > translate([0,-10,0]) // so they don't touch > #extrude_open(path1); > //#extrude_open(path2); > cube(1); > > re assertion violations, just have a 'cube(1);' with your object will force > CGAL union. > > Preview the above it points to some triangulation visual artefacts, on the > bottom, that may be a clue. > Looks likely there are holes. > Without the cube, path1 can be rendered and exported. > The STL shows this: > &lt;nabble_img src=&quot;Capture_sheakspear_holes.jpg&quot; > border=&quot;0&quot;/> > > [looks like nabble images are broken again, on preview, I'll post anyway > JIC] > > > > ----- > Admin - email* me if you need anything, or if I've done something stupid... > > * click on my MichaelAtOz label, there is a link to email me. > > Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent > possible under law, I have waived all copyright and related or neighbouring rights to this work. > Obviously inclusion of works of previous authors is not included in the above. > > The TPP is no simple "trade agreement." Fight it! http://www.ourfairdeal.org/ time is running > out! > -- > Sent from: http://forum.openscad.org/ > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_con tent=emailclient> Virus-free. <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_con tent=emailclient> www.avg.com --- This email has been checked for viruses by AVG. https://www.avg.com
M
MichaelAtOz
Tue, Sep 3, 2019 11:07 PM

Note: Nabble appear to have fixed the recent problem with 'Insert Image' on
the forum.


Admin - email* me if you need anything, or if I've done something stupid...

  • click on my MichaelAtOz label, there is a link to email me.

Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. Obviously inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/  time is running out!

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

Note: Nabble appear to have fixed the recent problem with 'Insert Image' on the forum. ----- Admin - email* me if you need anything, or if I've done something stupid... * click on my MichaelAtOz label, there is a link to email me. Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. Obviously inclusion of works of previous authors is not included in the above. The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ time is running out! -- Sent from: http://forum.openscad.org/
A
adrianv
Wed, Sep 4, 2019 12:59 AM

Excellent!  You've narrowed the problem down quite well.

First of all, let me clarify this matter about the assertion failures.  You
can make one invalid polyhedron and this doesn't cause the message.  But it
doesn't mean your model is good.  If you add a second object to the model,
you'll then get the message.  So if you replace the second object with a
cube, you still get the error.

A second point: there is a function called path_cut() that you could use to
resample your profiles so that they have uniformly spaced samples.  It seems
like what is really desired is sampling that is proportional to the local
curvature.  But I'm not sure how that could be done robustly on an arbitrary
path.  It could in principle be done on beziers, since we can evaluate
curvature on those.  Note that all simplify_path() does is discard duplicate
points.

Now, on to the main point.  In your example, you construct a shape which is
a sort of C shape and then you run rounded_sweep() on it.  The profile you
give to rounded sweep expands your input shape enough that the two ends of
the shape intersect.  This is not allowed!  No self intersection!  I'm
going to try to include an image showing what happens.

Instead of looking at the 3d shape I'm plotting the sequence of offsets that
will give rise to the shape.  When the curve contacts the other arm of the
curve, crazy stuff happens in offset().  But even if it didn't, you'd still
get an invalid polyhedron.  Is your goal to have everything blend together
into a top layer with random holes in it in places?  It seems sort of odd.
But if you want a top like that you're going to have to add it separately.
You might, for example, take the convex hull of your 2d profile for your
entire cutter, expand it a bit with offset(), extrude it to the desired
thickness and union that onto your cutter.

In the picture I'm going to try to attach, I've shown your base profile in
yellow, then the subsequent profiles in red, green and purple.  I omitted
the last profile because things have already failed at profile #3.  For this
example I turned check_valid off because the result is comprehensible.  With
check valid on, you get wild and crazy results that it's hard to make sense
of.  The function version of offset() that I wrote is not smart enough to do
something intelligent with this kind of situation (which would require
returning multiple separate paths for various internal holes that arise).
Also the polyhedron faceting code wouldn't know what to do with multiple
separate paths.  It's your responsibility to avoid these self-intersection
situations.

http://forum.openscad.org/file/t2477/outlines.png

gasstationwithoutpumps wrote

I have created a test case that causes the assertion failure with none of
the
problems of close-together points in the definition.  The preview works
fine, but the rendering gets an assertion failure.

Excellent! You've narrowed the problem down quite well. First of all, let me clarify this matter about the assertion failures. You can make one invalid polyhedron and this doesn't cause the message. But it doesn't mean your model is good. If you add a second object to the model, you'll then get the message. So if you replace the second object with a cube, you still get the error. A second point: there is a function called path_cut() that you could use to resample your profiles so that they have uniformly spaced samples. It seems like what is really desired is sampling that is proportional to the local curvature. But I'm not sure how that could be done robustly on an arbitrary path. It could in principle be done on beziers, since we can evaluate curvature on those. Note that all simplify_path() does is discard duplicate points. Now, on to the main point. In your example, you construct a shape which is a sort of C shape and then you run rounded_sweep() on it. The profile you give to rounded sweep expands your input shape enough that the two ends of the shape intersect. This is not allowed! No self intersection! I'm going to try to include an image showing what happens. Instead of looking at the 3d shape I'm plotting the sequence of offsets that will give rise to the shape. When the curve contacts the other arm of the curve, crazy stuff happens in offset(). But even if it didn't, you'd still get an invalid polyhedron. Is your goal to have everything blend together into a top layer with random holes in it in places? It seems sort of odd. But if you want a top like that you're going to have to add it separately. You might, for example, take the convex hull of your 2d profile for your entire cutter, expand it a bit with offset(), extrude it to the desired thickness and union that onto your cutter. In the picture I'm going to try to attach, I've shown your base profile in yellow, then the subsequent profiles in red, green and purple. I omitted the last profile because things have already failed at profile #3. For this example I turned check_valid off because the result is comprehensible. With check valid on, you get wild and crazy results that it's hard to make sense of. The function version of offset() that I wrote is not smart enough to do something intelligent with this kind of situation (which would require returning multiple separate paths for various internal holes that arise). Also the polyhedron faceting code wouldn't know what to do with multiple separate paths. It's your responsibility to avoid these self-intersection situations. <http://forum.openscad.org/file/t2477/outlines.png> gasstationwithoutpumps wrote > I have created a test case that causes the assertion failure with none of > the > problems of close-together points in the definition. The preview works > fine, but the rendering gets an assertion failure. -- Sent from: http://forum.openscad.org/