discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

hose adapter

RW
Roger Whiteley
Wed, Aug 16, 2023 11:55 AM

Try this...  found somewhere, so I'm not claiming credit..  This will
get you the two ends and the taper, you can adjust all the diameters,
lengths as you need.  N.B. how_round should be replaced with $fa and $fs
as per the recent very useful suggestion.. Makes the rendering process
MUCH faster.

// vacuum tube adaptor

outside_dia_big = 44;
outside_dia_small = 36;
length_big = 15;
length_small = 30;
length_cone = 20;
wall_thick = 1.6;
how_round = 50; // [50:400]

union () {
    do_big ();

    do_transition ();

    do_small ();
}

module do_big();

difference (){
    cylinder (d=outside_dia_big,h=length_big,$fn=how_round);
    cylinder (d=outside_dia_big-2*wall_thick,h=length_big,$fn=how_round);
}

module do_transition ();

translate([0,0,length_big]) {
difference () {
    cylinder
(d1=outside_dia_big,d2=outside_dia_small,,h=length_cone,$fn=how_round);
    cylinder
(d1=outside_dia_big-(2wall_thick),d2=outside_dia_small-(2wall_thick),h=length_cone,$fn=how_round);
}
}

module do_small (); {
translate([0,0,length_big+length_cone]) {
    difference () {
    cylinder (d=outside_dia_small,,h=length_small,$fn=how_round);
    cylinder
(d=outside_dia_small-(2*wall_thick),h=length_small,$fn=how_round);
    }
    }
}

Try this...  found somewhere, so I'm not claiming credit..  This will get you the two ends and the taper, you can adjust all the diameters, lengths as you need.  N.B. how_round should be replaced with $fa and $fs as per the recent very useful suggestion.. Makes the rendering process MUCH faster. // vacuum tube adaptor outside_dia_big = 44; outside_dia_small = 36; length_big = 15; length_small = 30; length_cone = 20; wall_thick = 1.6; how_round = 50; // [50:400] union () {     do_big ();     do_transition ();     do_small (); } module do_big(); difference (){     cylinder (d=outside_dia_big,h=length_big,$fn=how_round);     cylinder (d=outside_dia_big-2*wall_thick,h=length_big,$fn=how_round); } module do_transition (); translate([0,0,length_big]) { difference () {     cylinder (d1=outside_dia_big,d2=outside_dia_small,,h=length_cone,$fn=how_round);     cylinder (d1=outside_dia_big-(2*wall_thick),d2=outside_dia_small-(2*wall_thick),h=length_cone,$fn=how_round); } } module do_small (); { translate([0,0,length_big+length_cone]) {     difference () {     cylinder (d=outside_dia_small,,h=length_small,$fn=how_round);     cylinder (d=outside_dia_small-(2*wall_thick),h=length_small,$fn=how_round);     }     } }
M
mikeonenine@web.de
Wed, Aug 16, 2023 10:54 PM

Roger Whiteley wrote:

Try this... 

Or this:

// vacuum tube adaptor

outside_dia_big = 44;

outside_dia_small = 36;

length_big = 15;

length_small = 30;

length_cone = 20;

wall_thick = 1.6;

how_round = 50; // [50:400]

rotate_extrude($fn=50)

polygon([

[0, 15+30+20],

[36/2, 15+30+20],

[36/2, 15+20],

[44/2, 15],

[44/2, 0],

[44/2-1.6, 0],

[44/2-1.6, 15-0.3],

[36/2-1.6, 15+20-0.3],

[36/2-1.6, 15+30+20],

]);

Or this for superior flow properties:

rotate_extrude($fn=50)

polygon([

[36/2, 15+30+20],

[36/2, 15+20],

for(i=[-90:5:90])

[40/2-2*sin(i), i/180*20+15+20/2],

[44/2, 15],

[44/2, 0],

[44/2-1.6, 0],

for(i=[-90:5:90])

[40/2+2*sin(-i)-1.6, i/180*20+15+20/2],

[36/2-1.6, 15+30+20],

]);

Roger Whiteley wrote: > Try this...  Or this: // vacuum tube adaptor outside_dia_big = 44; outside_dia_small = 36; length_big = 15; length_small = 30; length_cone = 20; wall_thick = 1.6; how_round = 50; // \[50:400\] rotate_extrude($fn=50) polygon(\[ \[0, 15+30+20\], \[36/2, 15+30+20\], \[36/2, 15+20\], \[44/2, 15\], \[44/2, 0\], \[44/2-1.6, 0\], \[44/2-1.6, 15-0.3\], \[36/2-1.6, 15+20-0.3\], \[36/2-1.6, 15+30+20\], \]); Or this for superior flow properties: rotate_extrude($fn=50) polygon(\[ \[36/2, 15+30+20\], \[36/2, 15+20\], for(i=\[-90:5:90\]) \[40/2-2\*sin(i), i/180\*20+15+20/2\], \[44/2, 15\], \[44/2, 0\], \[44/2-1.6, 0\], for(i=\[-90:5:90\]) \[40/2+2\*sin(-i)-1.6, i/180\*20+15+20/2\], \[36/2-1.6, 15+30+20\], \]);