Discussion:
[OpenSCAD] flange
roland78
2018-10-18 18:05:34 UTC
Permalink
Hi. I need help with this code for a flange-- looks like is empty inside( i
need to be full) and is not totally through the ellipse and holes. Or a
better code for such a flange?

module make_ring_of (radius, count)
{
for (a = [0: count -1])
{
angle = a * 360 /count;

translate (radius * [sin(angle), -cos(angle), 0])
rotate ([0, 0, angle])
children ();
}
}

Thank you.
module oval()
{
scale([2.5,1,1])
circle(10);
}

difference ()
{
cylinder (h=8, r=50);//big flange
{
difference();
cylinder (h=8, r=50);
$fn = 36;// how fine to be the ellipse
translate ([0, 0, 0]);
{offset(r=0.15, h=10)oval();}

make_ring_of (radius = 30, count = 4)// outside small holes and
how many
cylinder (r = 4, h = 10, centre = true);// dimension of the
outside holes
}
}




--
Sent from: http://forum.openscad.org/
nop head
2018-10-18 19:54:07 UTC
Permalink
Is this what you are looking for?

[image: image.png]

There were lots of issues, center spelt wrong for OpenSCAD, translate and
difference with semicolon after them do nothing. Mixing 2D and 3D objects.
Passing h to offset.
Post by roland78
Hi. I need help with this code for a flange-- looks like is empty inside( i
need to be full) and is not totally through the ellipse and holes. Or a
better code for such a flange?
module make_ring_of (radius, count)
{
for (a = [0: count -1])
{
angle = a * 360 /count;
translate (radius * [sin(angle), -cos(angle), 0])
rotate ([0, 0, angle])
children ();
}
}
Thank you.
module oval()
{
scale([2.5,1,1])
circle(10);
}
difference ()
{
cylinder (h=8, r=50);//big flange
{
difference();
cylinder (h=8, r=50);
$fn = 36;// how fine to be the ellipse
translate ([0, 0, 0]);
{offset(r=0.15, h=10)oval();}
make_ring_of (radius = 30, count = 4)// outside small holes and
how many
cylinder (r = 4, h = 10, centre = true);// dimension of the
outside holes
}
}
--
Sent from: http://forum.openscad.org/
_______________________________________________
OpenSCAD mailing list
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
roland78
2018-10-19 18:24:21 UTC
Permalink
Yes,nophead.Like yours is what i need.Can i have the code? Thank you.



--
Sent from: http://forum.openscad.org/
nop head
2018-10-19 19:56:35 UTC
Permalink
Yes of course. Here is a slightly simplified version:

module make_ring_of (radius, count)
for (a = [0: count - 1])
rotate(a * 360 /count)
translate ([radius, 0])
children ();

module oval()
scale([2.5, 1])
circle(10);

difference () {
cylinder (h=8, r=50); //big flange
$fn = 36; // how fine to be the ellipse AND the holes
linear_extrude(height = 17, center = true)
offset(r = 0.15)
oval();

make_ring_of (radius = 30, count = 4)// outside small holes and how many
cylinder (r = 4, h = 17, center = true);// dimension of the outside
holes
}

Rather than translate to a point on a circle and then rotate the child I
have just translated along the radius and then rotated the translated
child.

I am not sure why you offset the oval. You could just pass the expanded size
Post by roland78
Yes,nophead.Like yours is what i need.Can i have the code? Thank you.
--
Sent from: http://forum.openscad.org/
_______________________________________________
OpenSCAD mailing list
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Loading...