discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

tapered rod

K
KM6VV
Tue, Mar 27, 2018 5:44 PM

I'm designing a steam engine eccentric rod, and I want a tapered cylinder
(which I have) that has also been flattened on the top and the bottom.  How
do I add the flats on top of the taper?

Thanks!

scale = 25.4; // for imperal
$fn = 100;

/* center body rod (should be flatened rod) */
BodyLen = 1.753 * scale;

//BodyCtrBigEndDia = 0.1642 * scale;    // flat
//BodyCtrLtlEndDia = 0.09375 * scale;

BodyCtrBigEndDia = 0.3125 * scale;  // dia
BodyCtrLtlEndDia = 0.1875 * scale;

cylinder(h = BodyLen + 2, d1 = BodyCtrBigEndDia, d2 = BodyCtrLtlEndDia,
center = true);

http://forum.openscad.org/file/t2193/eccentricRod.png

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

I'm designing a steam engine eccentric rod, and I want a tapered cylinder (which I have) that has also been flattened on the top and the bottom. How do I add the flats on top of the taper? Thanks! scale = 25.4; // for imperal $fn = 100; /* center body rod (should be flatened rod) */ BodyLen = 1.753 * scale; //BodyCtrBigEndDia = 0.1642 * scale; // flat //BodyCtrLtlEndDia = 0.09375 * scale; BodyCtrBigEndDia = 0.3125 * scale; // dia BodyCtrLtlEndDia = 0.1875 * scale; cylinder(h = BodyLen + 2, d1 = BodyCtrBigEndDia, d2 = BodyCtrLtlEndDia, center = true); <http://forum.openscad.org/file/t2193/eccentricRod.png> -- Sent from: http://forum.openscad.org/
HL
Hans L
Tue, Mar 27, 2018 5:59 PM

Subtract cubes from the sides or intersect the tapered end with a centered
cube.

On Tue, Mar 27, 2018, 12:45 PM KM6VV km6vv@arrl.net wrote:

I'm designing a steam engine eccentric rod, and I want a tapered cylinder
(which I have) that has also been flattened on the top and the bottom.  How
do I add the flats on top of the taper?

Thanks!

scale = 25.4; // for imperal
$fn = 100;

/* center body rod (should be flatened rod) */
BodyLen = 1.753 * scale;

//BodyCtrBigEndDia = 0.1642 * scale;    // flat
//BodyCtrLtlEndDia = 0.09375 * scale;

BodyCtrBigEndDia = 0.3125 * scale;  // dia
BodyCtrLtlEndDia = 0.1875 * scale;

cylinder(h = BodyLen + 2, d1 = BodyCtrBigEndDia, d2 = BodyCtrLtlEndDia,
center = true);

http://forum.openscad.org/file/t2193/eccentricRod.png

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


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

Subtract cubes from the sides or intersect the tapered end with a centered cube. On Tue, Mar 27, 2018, 12:45 PM KM6VV <km6vv@arrl.net> wrote: > I'm designing a steam engine eccentric rod, and I want a tapered cylinder > (which I have) that has also been flattened on the top and the bottom. How > do I add the flats on top of the taper? > > Thanks! > > scale = 25.4; // for imperal > $fn = 100; > > > /* center body rod (should be flatened rod) */ > BodyLen = 1.753 * scale; > > //BodyCtrBigEndDia = 0.1642 * scale; // flat > //BodyCtrLtlEndDia = 0.09375 * scale; > > BodyCtrBigEndDia = 0.3125 * scale; // dia > BodyCtrLtlEndDia = 0.1875 * scale; > > > cylinder(h = BodyLen + 2, d1 = BodyCtrBigEndDia, d2 = BodyCtrLtlEndDia, > center = true); > > > <http://forum.openscad.org/file/t2193/eccentricRod.png> > > > > > -- > Sent from: http://forum.openscad.org/ > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
K
KM6VV
Tue, Mar 27, 2018 7:50 PM

Thanks for the reply.

I thought about that, but how do you 'angle' the cubes to form the necessary
taper?

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

Thanks for the reply. I thought about that, but how do you 'angle' the cubes to form the necessary taper? -- Sent from: http://forum.openscad.org/
NH
nop head
Tue, Mar 27, 2018 8:12 PM

You can use trigonometry to work out the angle e.g.  atan(h / dx) where  h
is height and dx is the difference in radius of top and bottom.

On 27 March 2018 at 20:50, KM6VV km6vv@arrl.net wrote:

Thanks for the reply.

I thought about that, but how do you 'angle' the cubes to form the
necessary
taper?

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


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

You can use trigonometry to work out the angle e.g. atan(h / dx) where h is height and dx is the difference in radius of top and bottom. On 27 March 2018 at 20:50, KM6VV <km6vv@arrl.net> wrote: > Thanks for the reply. > > I thought about that, but how do you 'angle' the cubes to form the > necessary > taper? > > > > > > -- > Sent from: http://forum.openscad.org/ > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
K
KM6VV
Tue, Mar 27, 2018 9:25 PM

OK, I get it.  the entire cube is translated or rotated at the require angle,
and then difference'd.

Thanks.

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

OK, I get it. the entire cube is translated or rotated at the require angle, and then difference'd. Thanks. -- Sent from: http://forum.openscad.org/
P
Parkinbot
Wed, Mar 28, 2018 12:26 AM

In case you are heading for a tapered cube with rounded edges you can try
something like this:

$fn=50;
linear_extrude (height = 200, scale=0.09375/0.1642) // flattend tapered rod
offset(3) square([8, .01], center=true);

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

In case you are heading for a tapered cube with rounded edges you can try something like this: $fn=50; linear_extrude (height = 200, scale=0.09375/0.1642) // flattend tapered rod offset(3) square([8, .01], center=true); -- Sent from: http://forum.openscad.org/
K
KM6VV
Wed, Mar 28, 2018 7:13 PM

Thanks!
That certainly did it.  I put in my other parameters.  I'm going over
'offset', although I don't fully understand what's happening.  I was OK up
to creating a tapered cylinder (easy).

//
---=======================
/* center body rod (flatened rod) */
//EccentricRodBodyLen = 1.753 * scale;
//EccentricRodBodyCenterOffset = 0.4142 * scale;
//EccentricRodBodyCtrBigEndDia = 0.1642 * scale;    // flat
//EccentricRodBodyCtrLtlEndDia = 0.09375 * scale;

/*

  • center body rod (flatened rod)

*/

module Body()
{
difference()
{
translate([0, EccentricRodBodyCenterOffset - 2, 0])
rotate([-90, 0, 0])
linear_extrude(height = EccentricRodBodyLen + 3, scale =
EccentricRodBodyCtrLtlEndDia/EccentricRodBodyCtrBigEndDia)
offset(2.5)
square([EccentricRodBodyCtrBigEndDia, 0.01], center = true);

        /* clean up little end Bore */
translate([0, EccentricRodCtrToCtr, 0])
  linear_extrude(height = EccentricRodLtlEndBossThick, center = true)
    circle(d = EccentricRodLtlEndBore, center = true);
}

}

http://forum.openscad.org/file/t2193/EccentricRod.png

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

Thanks! That certainly did it. I put in my other parameters. I'm going over 'offset', although I don't fully understand what's happening. I was OK up to creating a tapered cylinder (easy). // ======================================================== /* center body rod (flatened rod) */ //EccentricRodBodyLen = 1.753 * scale; //EccentricRodBodyCenterOffset = 0.4142 * scale; //EccentricRodBodyCtrBigEndDia = 0.1642 * scale; // flat //EccentricRodBodyCtrLtlEndDia = 0.09375 * scale; /* * center body rod (flatened rod) * * */ module Body() { difference() { translate([0, EccentricRodBodyCenterOffset - 2, 0]) rotate([-90, 0, 0]) linear_extrude(height = EccentricRodBodyLen + 3, scale = EccentricRodBodyCtrLtlEndDia/EccentricRodBodyCtrBigEndDia) offset(2.5) square([EccentricRodBodyCtrBigEndDia, 0.01], center = true); /* clean up little end Bore */ translate([0, EccentricRodCtrToCtr, 0]) linear_extrude(height = EccentricRodLtlEndBossThick, center = true) circle(d = EccentricRodLtlEndBore, center = true); } } <http://forum.openscad.org/file/t2193/EccentricRod.png> -- Sent from: http://forum.openscad.org/