discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Smoothing with hull?

S
Scalpel78
Mon, Dec 15, 2014 9:44 PM

Hi, I just wanted to try making a quick propeller in OpenSCAD, and thought I
had a brilliant idea, but it's not turning out exactly like I pictured it.

My plan was to do this:
//hull() {
cylinder(d=20, h=10, center=true);
for (x = [-100:2:100]) {
translate([x, 0, 0]) rotate([x,0,0]) cylinder(10, center=true);
}
//}

to create this, and then do a hull() on it to smooth out the edges.

http://forum.openscad.org/file/n10550/Propeller.png

But when I do a hull() on the entire thing it doesn't really look like a
propeller, but more like a treetrunk :/

Is there any way to make the hull "tighter", if you know what I mean?

--
View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Hi, I just wanted to try making a quick propeller in OpenSCAD, and thought I had a brilliant idea, but it's not turning out exactly like I pictured it. My plan was to do this: //hull() { cylinder(d=20, h=10, center=true); for (x = [-100:2:100]) { translate([x, 0, 0]) rotate([x,0,0]) cylinder(10, center=true); } //} to create this, and then do a hull() on it to smooth out the edges. <http://forum.openscad.org/file/n10550/Propeller.png> But when I do a hull() on the entire thing it doesn't really look like a propeller, but more like a treetrunk :/ Is there any way to make the hull "tighter", if you know what I mean? -- View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550.html Sent from the OpenSCAD mailing list archive at Nabble.com.
TP
Torsten Paul
Mon, Dec 15, 2014 9:51 PM

On 12/15/2014 10:44 PM, Scalpel78 wrote:

Is there any way to make the hull "tighter", if you know what I mean?

No, hull() is currently always producing the convex hull, it can't create
any concave objects. But have a look at:

http://www.tridimake.com/2014/11/how-to-use-openscad-4-children-and.html

(See chained hulls)

ciao,
Torsten.

On 12/15/2014 10:44 PM, Scalpel78 wrote: > Is there any way to make the hull "tighter", if you know what I mean? > No, hull() is currently always producing the convex hull, it can't create any concave objects. But have a look at: http://www.tridimake.com/2014/11/how-to-use-openscad-4-children-and.html (See chained hulls) ciao, Torsten.
MK
Marius Kintel
Tue, Dec 16, 2014 12:35 AM

On Dec 15, 2014, at 16:44 PM, Scalpel78 frode@lillerud.no wrote:

Is there any way to make the hull "tighter", if you know what I mean?

What you want is probably smth. more in the direction of sweep(), loft() or skin().
See here for some ideas:
https://github.com/openscad/list-comprehension-demos

-Marius

On Dec 15, 2014, at 16:44 PM, Scalpel78 <frode@lillerud.no> wrote: > Is there any way to make the hull "tighter", if you know what I mean? > What you want is probably smth. more in the direction of sweep(), loft() or skin(). See here for some ideas: https://github.com/openscad/list-comprehension-demos -Marius
B
Bananapeel
Tue, Dec 16, 2014 12:04 PM

Good question, I had to think about since yesterday. :)

Create each cylinder twice and hull each pair:

cylinder(d=20, h=10, center=true);

for (x = [-100:2:100]) {
hull() {
translate([x, 0, 0]) rotate([x,0,0]) cylinder(10, center=true,
$fn=4);
translate([x+2, 0, 0]) rotate([x+2,0,0]) cylinder(10, center=true,
$fn=4);
}
}

Best wishes,
Bananapeel :)

--
View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550p10562.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Good question, I had to think about since yesterday. :) Create each cylinder twice and hull each pair: cylinder(d=20, h=10, center=true); for (x = [-100:2:100]) { hull() { translate([x, 0, 0]) rotate([x,0,0]) cylinder(10, center=true, $fn=4); translate([x+2, 0, 0]) rotate([x+2,0,0]) cylinder(10, center=true, $fn=4); } } Best wishes, Bananapeel :) -- View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550p10562.html Sent from the OpenSCAD mailing list archive at Nabble.com.
S
Scalpel78
Tue, Dec 16, 2014 1:02 PM

Good solution Bananapeel. That is what I pictured in my head as well. Had to
get out of bed yesterday to try my "brilliant" idea, which didn't turn out
so good as yours did.

I'd like to research the sweep(), loft() and skin() functions as well. Those
sounds more like the proper way to create a organic surface.

--
View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550p10563.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Good solution Bananapeel. That is what I pictured in my head as well. Had to get out of bed yesterday to try my "brilliant" idea, which didn't turn out so good as yours did. I'd like to research the sweep(), loft() and skin() functions as well. Those sounds more like the proper way to create a organic surface. -- View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550p10563.html Sent from the OpenSCAD mailing list archive at Nabble.com.
K
KoenigDickBauch
Tue, Dec 16, 2014 2:30 PM

------------->8-----------
module Blatt(H=10, D=2, L=100, W=45)

{
translate([0, 0, L/2])
linear_extrude(height = L, center = true, convexity = 10, twist = W,
slices=50)
translate([-H/2, -D/2, 0])
scale([H,D,1])
polygon(
points=[
[ 0, 0],
[ 1, 0],
[ 1, 1],
[ 0, 1]
]
);
}

module Rotor(Hight=10, Size=100, NarbeR=10, Winkel=90)
{
cylinder(r=NarbeR, h=Hight, center=true);
translate([+NarbeR,0,0]) rotate([0,+90,0]) Blatt(H=Hight, D=2,
L=Size-NarbeR, W=Winkel);
translate([-NarbeR,0,0]) rotate([0,-90,0]) Blatt(H=Hight, D=2,
L=Size-NarbeR, W=Winkel);
}

Rotor(Hight=10, Size=100, NarbeR=10, Winkel=-90);
------------->8-----------

http://forum.openscad.org/file/n10564/propeller.png

--
View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550p10564.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

------------->8----------- module Blatt(H=10, D=2, L=100, W=45) { translate([0, 0, L/2]) linear_extrude(height = L, center = true, convexity = 10, twist = W, slices=50) translate([-H/2, -D/2, 0]) scale([H,D,1]) polygon( points=[ [ 0, 0], [ 1, 0], [ 1, 1], [ 0, 1] ] ); } module Rotor(Hight=10, Size=100, NarbeR=10, Winkel=90) { cylinder(r=NarbeR, h=Hight, center=true); translate([+NarbeR,0,0]) rotate([0,+90,0]) Blatt(H=Hight, D=2, L=Size-NarbeR, W=Winkel); translate([-NarbeR,0,0]) rotate([0,-90,0]) Blatt(H=Hight, D=2, L=Size-NarbeR, W=Winkel); } Rotor(Hight=10, Size=100, NarbeR=10, Winkel=-90); ------------->8----------- <http://forum.openscad.org/file/n10564/propeller.png> -- View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550p10564.html Sent from the OpenSCAD mailing list archive at Nabble.com.
S
Scalpel78
Tue, Dec 16, 2014 2:54 PM

Thanks Koenig!

The result looks similar to Bananapeels, but this is very nice with the
parameterized setup. I see that you choose to start out with a 2D object,
which is extruded with a twist. Nice.

--
View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550p10565.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Thanks Koenig! The result looks similar to Bananapeels, but this is very nice with the parameterized setup. I see that you choose to start out with a 2D object, which is extruded with a twist. Nice. -- View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550p10565.html Sent from the OpenSCAD mailing list archive at Nabble.com.
K
KoenigDickBauch
Tue, Dec 16, 2014 3:06 PM

You can change the polygon to a contour of a wing. But put it in a box 1x1

--
View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550p10566.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

You can change the polygon to a contour of a wing. But put it in a box 1x1 -- View this message in context: http://forum.openscad.org/Smoothing-with-hull-tp10550p10566.html Sent from the OpenSCAD mailing list archive at Nabble.com.
SG
Scott Guthery
Tue, Dec 16, 2014 11:19 PM

I'm running OpenSCAD version 2014.03 on Windows from the pre-built
executable.  From time to time I hit MinGW assertion failures.  For example,

/home/don/openscad_deps/mxe-w64/usr/x86_64-w64-mingw32/include/boost/smart_ptr/shared_ptr.hpp,
Line 653

Expression: px!=0

which would seem to be a null pointer fault.  I'm wondering if handling such
things a little more helpfully might contribute to usability and acceptance.
I can certainly dig into source and find Line 653 to see what's going on but
an error message (however cryptic) with a return to the top of the
interpreter loop might be a little more graceful.

IMHO, as always.

Cheers, Scott

I'm running OpenSCAD version 2014.03 on Windows from the pre-built executable. From time to time I hit MinGW assertion failures. For example, /home/don/openscad_deps/mxe-w64/usr/x86_64-w64-mingw32/include/boost/smart_ptr/shared_ptr.hpp, Line 653 Expression: px!=0 which would seem to be a null pointer fault. I'm wondering if handling such things a little more helpfully might contribute to usability and acceptance. I can certainly dig into source and find Line 653 to see what's going on but an error message (however cryptic) with a return to the top of the interpreter loop might be a little more graceful. IMHO, as always. Cheers, Scott
AP
Andrew Plumb
Tue, Dec 16, 2014 11:25 PM

Scroll down the Downloads page and try one of the development snapshot builds before bothering with chasing it in the code. The 2014.03 build is quite old wrt where the code is at these days.

Andrew.

Sent from my iPhone

On Dec 16, 2014, at 6:19 PM, Scott Guthery sbg@acw.com wrote:

I'm running OpenSCAD version 2014.03 on Windows from the pre-built executable.  From time to time I hit MinGW assertion failures.  For example,

/home/don/openscad_deps/mxe-w64/usr/x86_64-w64-mingw32/include/boost/smart_ptr/shared_ptr.hpp, Line 653

Expression: px!=0

which would seem to be a null pointer fault.  I'm wondering if handling such things a little more helpfully might contribute to usability and acceptance. I can certainly dig into source and find Line 653 to see what's going on but an error message (however cryptic) with a return to the top of the interpreter loop might be a little more graceful.

IMHO, as always.

Cheers, Scott


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Scroll down the Downloads page and try one of the development snapshot builds before bothering with chasing it in the code. The 2014.03 build is quite old wrt where the code is at these days. Andrew. Sent from my iPhone > On Dec 16, 2014, at 6:19 PM, Scott Guthery <sbg@acw.com> wrote: > > I'm running OpenSCAD version 2014.03 on Windows from the pre-built executable. From time to time I hit MinGW assertion failures. For example, > > /home/don/openscad_deps/mxe-w64/usr/x86_64-w64-mingw32/include/boost/smart_ptr/shared_ptr.hpp, Line 653 > > Expression: px!=0 > > which would seem to be a null pointer fault. I'm wondering if handling such things a little more helpfully might contribute to usability and acceptance. I can certainly dig into source and find Line 653 to see what's going on but an error message (however cryptic) with a return to the top of the interpreter loop might be a little more graceful. > > IMHO, as always. > > Cheers, Scott > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org