discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

BOSL2 question

JW
Joe Weinpert
Tue, Mar 8, 2022 12:01 AM

How can I add a  1/2" radius fillet to the *bottom *of the prismoid object
(including the bottom corners)?

prismoid(
h = 20,
size1 = [80,70],
size2 = [100,90],
rounding1 = 5,
rounding2 = 5
);

[image: prismoid.jpg]

How can I add a 1/2" radius fillet to the *bottom *of the prismoid object (including the bottom corners)? prismoid( h = 20, size1 = [80,70], size2 = [100,90], rounding1 = 5, rounding2 = 5 ); [image: prismoid.jpg]
AM
Adrian Mariano
Tue, Mar 8, 2022 12:25 AM

As stated in the manual, you can only round the "vertical(ish)" edges.  In
order to do what you want, take a look at rounded_prism() in
rounding.scad.  It can also be done with offset_sweep(), but that's a more
complex approach.

On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert joe.weinpert@gmail.com wrote:

How can I add a  1/2" radius fillet to the *bottom *of the prismoid
object (including the bottom corners)?

prismoid(
h = 20,
size1 = [80,70],
size2 = [100,90],
rounding1 = 5,
rounding2 = 5
);

[image: prismoid.jpg]


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

As stated in the manual, you can only round the "vertical(ish)" edges. In order to do what you want, take a look at rounded_prism() in rounding.scad. It can also be done with offset_sweep(), but that's a more complex approach. On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert <joe.weinpert@gmail.com> wrote: > How can I add a 1/2" radius fillet to the *bottom *of the prismoid > object (including the bottom corners)? > > prismoid( > h = 20, > size1 = [80,70], > size2 = [100,90], > rounding1 = 5, > rounding2 = 5 > ); > > [image: prismoid.jpg] > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
W
Whosawhatsis
Tue, Mar 8, 2022 12:47 AM

It can be done fairly simply with Minkowski (you’d have to make the shape smaller, then use a sphere or similar shape to expand it to its current dimensions), but it’s slow.

Most of the faster methods involve the hull() module. You could either create the corner pieces with the proper radii, or create a series of vertical slice of the curved bottom using offset(), a for() loop, and the equation of a circle (y = sqrt(r^2 - x^2)).
On Mar 7, 2022, 16:26 -0800, Adrian Mariano avm4@cornell.edu, wrote:

As stated in the manual, you can only round the "vertical(ish)" edges.  In order to do what you want, take a look at rounded_prism() in rounding.scad.  It can also be done with offset_sweep(), but that's a more complex approach.

On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert joe.weinpert@gmail.com wrote:

How can I add a  1/2" radius fillet to the bottom of the prismoid object (including the bottom corners)?

prismoid(
   h = 20,
   size1 = [80,70],
   size2 = [100,90],
   rounding1 = 5,
   rounding2 = 5
);

<prismoid.jpg>


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

It can be done fairly simply with Minkowski (you’d have to make the shape smaller, then use a sphere or similar shape to expand it to its current dimensions), but it’s slow. Most of the faster methods involve the hull() module. You could either create the corner pieces with the proper radii, or create a series of vertical slice of the curved bottom using offset(), a for() loop, and the equation of a circle (y = sqrt(r^2 - x^2)). On Mar 7, 2022, 16:26 -0800, Adrian Mariano <avm4@cornell.edu>, wrote: > As stated in the manual, you can only round the "vertical(ish)" edges.  In order to do what you want, take a look at rounded_prism() in rounding.scad.  It can also be done with offset_sweep(), but that's a more complex approach. > > > On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert <joe.weinpert@gmail.com> wrote: > > > How can I add a  1/2" radius fillet to the bottom of the prismoid object (including the bottom corners)? > > > > > > prismoid( > > >    h = 20, > > >    size1 = [80,70], > > >    size2 = [100,90], > > >    rounding1 = 5, > > >    rounding2 = 5 > > > ); > > > > > > <prismoid.jpg> > > > > > > _______________________________________________ > > > OpenSCAD mailing list > > > To unsubscribe send an email to discuss-leave@lists.openscad.org > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
AM
Adrian Mariano
Tue, Mar 8, 2022 1:33 AM

No, it cannot be done simply with minkowski.  It appears that he wants
different roundings on the sides, no rounding on the top, and a larger
rounding on the bottom.  It's nontrivial to do with hull, also,
because you have to construct the right ellipsoids everywhere and
position them correctly.  And figure out how to handle no rounding at
the top.  Given that he's using BOSL2, I think using rounded_prism is
by far the easiest solution.  (But note, rounding parameters aren't
the radius, but the distance away from the corner where the rounding
meets the shape.)

include<BOSL2/std.scad>
include<BOSL2/rounding.scad>

rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5, joint_bot=12);

On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis whosawhatsis@gmail.com wrote:

It can be done fairly simply with Minkowski (you’d have to make the shape smaller, then use a sphere or similar shape to expand it to its current dimensions), but it’s slow.

Most of the faster methods involve the hull() module. You could either create the corner pieces with the proper radii, or create a series of vertical slice of the curved bottom using offset(), a for() loop, and the equation of a circle (y = sqrt(r^2 - x^2)).
On Mar 7, 2022, 16:26 -0800, Adrian Mariano avm4@cornell.edu, wrote:

As stated in the manual, you can only round the "vertical(ish)" edges.  In order to do what you want, take a look at rounded_prism() in rounding.scad.  It can also be done with offset_sweep(), but that's a more complex approach.

On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert joe.weinpert@gmail.com wrote:

How can I add a  1/2" radius fillet to the bottom of the prismoid object (including the bottom corners)?

prismoid(
h = 20,
size1 = [80,70],
size2 = [100,90],
rounding1 = 5,
rounding2 = 5
);

<prismoid.jpg>


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

No, it cannot be done simply with minkowski. It appears that he wants different roundings on the sides, no rounding on the top, and a larger rounding on the bottom. It's nontrivial to do with hull, also, because you have to construct the right ellipsoids everywhere and position them correctly. And figure out how to handle no rounding at the top. Given that he's using BOSL2, I think using rounded_prism is by far the easiest solution. (But note, rounding parameters aren't the radius, but the distance away from the corner where the rounding meets the shape.) include<BOSL2/std.scad> include<BOSL2/rounding.scad> rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5, joint_bot=12); On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis <whosawhatsis@gmail.com> wrote: > > It can be done fairly simply with Minkowski (you’d have to make the shape smaller, then use a sphere or similar shape to expand it to its current dimensions), but it’s slow. > > Most of the faster methods involve the hull() module. You could either create the corner pieces with the proper radii, or create a series of vertical slice of the curved bottom using offset(), a for() loop, and the equation of a circle (y = sqrt(r^2 - x^2)). > On Mar 7, 2022, 16:26 -0800, Adrian Mariano <avm4@cornell.edu>, wrote: > > As stated in the manual, you can only round the "vertical(ish)" edges. In order to do what you want, take a look at rounded_prism() in rounding.scad. It can also be done with offset_sweep(), but that's a more complex approach. > > On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert <joe.weinpert@gmail.com> wrote: >> >> How can I add a 1/2" radius fillet to the bottom of the prismoid object (including the bottom corners)? >> >> prismoid( >> h = 20, >> size1 = [80,70], >> size2 = [100,90], >> rounding1 = 5, >> rounding2 = 5 >> ); >> >> <prismoid.jpg> >> >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
W
Whosawhatsis
Tue, Mar 8, 2022 1:58 AM

All you need is an ellipsoid (or toroid) with the desired curvature, and it’s easy to do with either method. Making the top flat is extremely simple if you just make it taller than desired, then use a difference or intersection operation to remove the unwanted section on top.
On Mar 7, 2022, 17:34 -0800, Adrian Mariano avm4@cornell.edu, wrote:

No, it cannot be done simply with minkowski. It appears that he wants
different roundings on the sides, no rounding on the top, and a larger
rounding on the bottom. It's nontrivial to do with hull, also,
because you have to construct the right ellipsoids everywhere and
position them correctly. And figure out how to handle no rounding at
the top. Given that he's using BOSL2, I think using rounded_prism is
by far the easiest solution. (But note, rounding parameters aren't
the radius, but the distance away from the corner where the rounding
meets the shape.)

include<BOSL2/std.scad>
include<BOSL2/rounding.scad>

rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5, joint_bot=12);

On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis whosawhatsis@gmail.com wrote:

It can be done fairly simply with Minkowski (you’d have to make the shape smaller, then use a sphere or similar shape to expand it to its current dimensions), but it’s slow.

Most of the faster methods involve the hull() module. You could either create the corner pieces with the proper radii, or create a series of vertical slice of the curved bottom using offset(), a for() loop, and the equation of a circle (y = sqrt(r^2 - x^2)).
On Mar 7, 2022, 16:26 -0800, Adrian Mariano avm4@cornell.edu, wrote:

As stated in the manual, you can only round the "vertical(ish)" edges. In order to do what you want, take a look at rounded_prism() in rounding.scad. It can also be done with offset_sweep(), but that's a more complex approach.

On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert joe.weinpert@gmail.com wrote:

How can I add a 1/2" radius fillet to the bottom of the prismoid object (including the bottom corners)?

prismoid(
h = 20,
size1 = [80,70],
size2 = [100,90],
rounding1 = 5,
rounding2 = 5
);

<prismoid.jpg>


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

All you need is an ellipsoid (or toroid) with the desired curvature, and it’s easy to do with either method. Making the top flat is extremely simple if you just make it taller than desired, then use a difference or intersection operation to remove the unwanted section on top. On Mar 7, 2022, 17:34 -0800, Adrian Mariano <avm4@cornell.edu>, wrote: > No, it cannot be done simply with minkowski. It appears that he wants > different roundings on the sides, no rounding on the top, and a larger > rounding on the bottom. It's nontrivial to do with hull, also, > because you have to construct the right ellipsoids everywhere and > position them correctly. And figure out how to handle no rounding at > the top. Given that he's using BOSL2, I think using rounded_prism is > by far the easiest solution. (But note, rounding parameters aren't > the radius, but the distance away from the corner where the rounding > meets the shape.) > > include<BOSL2/std.scad> > include<BOSL2/rounding.scad> > > rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5, joint_bot=12); > > On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis <whosawhatsis@gmail.com> wrote: > > > > It can be done fairly simply with Minkowski (you’d have to make the shape smaller, then use a sphere or similar shape to expand it to its current dimensions), but it’s slow. > > > > Most of the faster methods involve the hull() module. You could either create the corner pieces with the proper radii, or create a series of vertical slice of the curved bottom using offset(), a for() loop, and the equation of a circle (y = sqrt(r^2 - x^2)). > > On Mar 7, 2022, 16:26 -0800, Adrian Mariano <avm4@cornell.edu>, wrote: > > > > As stated in the manual, you can only round the "vertical(ish)" edges. In order to do what you want, take a look at rounded_prism() in rounding.scad. It can also be done with offset_sweep(), but that's a more complex approach. > > > > On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert <joe.weinpert@gmail.com> wrote: > > > > > > How can I add a 1/2" radius fillet to the bottom of the prismoid object (including the bottom corners)? > > > > > > prismoid( > > > h = 20, > > > size1 = [80,70], > > > size2 = [100,90], > > > rounding1 = 5, > > > rounding2 = 5 > > > ); > > > > > > <prismoid.jpg> > > > > > > _______________________________________________ > > > OpenSCAD mailing list > > > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > > _______________________________________________ > > OpenSCAD mailing list > > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > > _______________________________________________ > > OpenSCAD mailing list > > To unsubscribe send an email to discuss-leave@lists.openscad.org > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
AM
Adrian Mariano
Tue, Mar 8, 2022 2:06 AM

Just how easy that is depends on how tight your specification is for
what you want.  I think Jordan mentioned using an ellipsoid with the
top removed, which I missed at first.  But if you truly want to know
what radius you're using on those side edges then you need to make an
adjustment for the angle of the sides.  And of course, as I noted, you
need to make an overall adjustment for the size of the object.  While
not difficult in principle, the details seem easy to get wrong here.
These are exactly the sort of fiddly, trigonometric details that I
think the computer should do, not me.  One could say, if it's
trivial, show us the code.

On Mon, Mar 7, 2022 at 8:58 PM Whosawhatsis whosawhatsis@gmail.com wrote:

All you need is an ellipsoid (or toroid) with the desired curvature, and it’s easy to do with either method. Making the top flat is extremely simple if you just make it taller than desired, then use a difference or intersection operation to remove the unwanted section on top.
On Mar 7, 2022, 17:34 -0800, Adrian Mariano avm4@cornell.edu, wrote:

No, it cannot be done simply with minkowski. It appears that he wants
different roundings on the sides, no rounding on the top, and a larger
rounding on the bottom. It's nontrivial to do with hull, also,
because you have to construct the right ellipsoids everywhere and
position them correctly. And figure out how to handle no rounding at
the top. Given that he's using BOSL2, I think using rounded_prism is
by far the easiest solution. (But note, rounding parameters aren't
the radius, but the distance away from the corner where the rounding
meets the shape.)

include<BOSL2/std.scad>
include<BOSL2/rounding.scad>

rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5, joint_bot=12);

On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis whosawhatsis@gmail.com wrote:

It can be done fairly simply with Minkowski (you’d have to make the shape smaller, then use a sphere or similar shape to expand it to its current dimensions), but it’s slow.

Most of the faster methods involve the hull() module. You could either create the corner pieces with the proper radii, or create a series of vertical slice of the curved bottom using offset(), a for() loop, and the equation of a circle (y = sqrt(r^2 - x^2)).
On Mar 7, 2022, 16:26 -0800, Adrian Mariano avm4@cornell.edu, wrote:

As stated in the manual, you can only round the "vertical(ish)" edges. In order to do what you want, take a look at rounded_prism() in rounding.scad. It can also be done with offset_sweep(), but that's a more complex approach.

On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert joe.weinpert@gmail.com wrote:

How can I add a 1/2" radius fillet to the bottom of the prismoid object (including the bottom corners)?

prismoid(
h = 20,
size1 = [80,70],
size2 = [100,90],
rounding1 = 5,
rounding2 = 5
);

<prismoid.jpg>


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Just how easy that is depends on how tight your specification is for what you want. I think Jordan mentioned using an ellipsoid with the top removed, which I missed at first. But if you truly want to know what radius you're using on those side edges then you need to make an adjustment for the angle of the sides. And of course, as I noted, you need to make an overall adjustment for the size of the object. While not difficult in principle, the details seem easy to get wrong here. These are exactly the sort of fiddly, trigonometric details that I think the computer should do, not me. One could say, if it's trivial, show us the code. On Mon, Mar 7, 2022 at 8:58 PM Whosawhatsis <whosawhatsis@gmail.com> wrote: > > All you need is an ellipsoid (or toroid) with the desired curvature, and it’s easy to do with either method. Making the top flat is extremely simple if you just make it taller than desired, then use a difference or intersection operation to remove the unwanted section on top. > On Mar 7, 2022, 17:34 -0800, Adrian Mariano <avm4@cornell.edu>, wrote: > > No, it cannot be done simply with minkowski. It appears that he wants > different roundings on the sides, no rounding on the top, and a larger > rounding on the bottom. It's nontrivial to do with hull, also, > because you have to construct the right ellipsoids everywhere and > position them correctly. And figure out how to handle no rounding at > the top. Given that he's using BOSL2, I think using rounded_prism is > by far the easiest solution. (But note, rounding parameters aren't > the radius, but the distance away from the corner where the rounding > meets the shape.) > > include<BOSL2/std.scad> > include<BOSL2/rounding.scad> > > rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5, joint_bot=12); > > On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis <whosawhatsis@gmail.com> wrote: > > > It can be done fairly simply with Minkowski (you’d have to make the shape smaller, then use a sphere or similar shape to expand it to its current dimensions), but it’s slow. > > Most of the faster methods involve the hull() module. You could either create the corner pieces with the proper radii, or create a series of vertical slice of the curved bottom using offset(), a for() loop, and the equation of a circle (y = sqrt(r^2 - x^2)). > On Mar 7, 2022, 16:26 -0800, Adrian Mariano <avm4@cornell.edu>, wrote: > > As stated in the manual, you can only round the "vertical(ish)" edges. In order to do what you want, take a look at rounded_prism() in rounding.scad. It can also be done with offset_sweep(), but that's a more complex approach. > > On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert <joe.weinpert@gmail.com> wrote: > > > How can I add a 1/2" radius fillet to the bottom of the prismoid object (including the bottom corners)? > > prismoid( > h = 20, > size1 = [80,70], > size2 = [100,90], > rounding1 = 5, > rounding2 = 5 > ); > > <prismoid.jpg> > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
JW
Joe Weinpert
Tue, Mar 8, 2022 2:15 AM

Okay ... thanks to all.  This works:

rounded_prism(
rect( [80,70], rounding = 5 ),
rect( [100,90], rounding = 5 ),
height = 20,
joint_bot = 5-.005
);

Note that I had to subtract .005" from the bottom radius because it throws
an error:

  • "Roundovers interfere with each other on bottom face: either input is
    self intersecting or top joint length is too large"*
    probably because the corners also have a .500" radius

On Mon, Mar 7, 2022 at 8:33 PM Adrian Mariano avm4@cornell.edu wrote:

No, it cannot be done simply with minkowski.  It appears that he wants
different roundings on the sides, no rounding on the top, and a larger
rounding on the bottom.  It's nontrivial to do with hull, also,
because you have to construct the right ellipsoids everywhere and
position them correctly.  And figure out how to handle no rounding at
the top.  Given that he's using BOSL2, I think using rounded_prism is
by far the easiest solution.  (But note, rounding parameters aren't
the radius, but the distance away from the corner where the rounding
meets the shape.)

include<BOSL2/std.scad>
include<BOSL2/rounding.scad>

rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5,
joint_bot=12);

On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis whosawhatsis@gmail.com
wrote:

It can be done fairly simply with Minkowski (you’d have to make the

shape smaller, then use a sphere or similar shape to expand it to its
current dimensions), but it’s slow.

Most of the faster methods involve the hull() module. You could either

create the corner pieces with the proper radii, or create a series of
vertical slice of the curved bottom using offset(), a for() loop, and the
equation of a circle (y = sqrt(r^2 - x^2)).

On Mar 7, 2022, 16:26 -0800, Adrian Mariano avm4@cornell.edu, wrote:

As stated in the manual, you can only round the "vertical(ish)" edges.

In order to do what you want, take a look at rounded_prism() in
rounding.scad.  It can also be done with offset_sweep(), but that's a more
complex approach.

On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert joe.weinpert@gmail.com

wrote:

How can I add a  1/2" radius fillet to the bottom of the prismoid

object (including the bottom corners)?

prismoid(
h = 20,
size1 = [80,70],
size2 = [100,90],
rounding1 = 5,
rounding2 = 5
);

<prismoid.jpg>


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Okay ... thanks to all. This works: rounded_prism( rect( [80,70], rounding = 5 ), rect( [100,90], rounding = 5 ), height = 20, joint_bot = 5-.005 ); Note that I had to subtract .005" from the bottom radius because it throws an error: * "Roundovers interfere with each other on bottom face: either input is self intersecting or top joint length is too large"* probably because the corners also have a .500" radius On Mon, Mar 7, 2022 at 8:33 PM Adrian Mariano <avm4@cornell.edu> wrote: > No, it cannot be done simply with minkowski. It appears that he wants > different roundings on the sides, no rounding on the top, and a larger > rounding on the bottom. It's nontrivial to do with hull, also, > because you have to construct the right ellipsoids everywhere and > position them correctly. And figure out how to handle no rounding at > the top. Given that he's using BOSL2, I think using rounded_prism is > by far the easiest solution. (But note, rounding parameters aren't > the radius, but the distance away from the corner where the rounding > meets the shape.) > > include<BOSL2/std.scad> > include<BOSL2/rounding.scad> > > rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5, > joint_bot=12); > > On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis <whosawhatsis@gmail.com> > wrote: > > > > It can be done fairly simply with Minkowski (you’d have to make the > shape smaller, then use a sphere or similar shape to expand it to its > current dimensions), but it’s slow. > > > > Most of the faster methods involve the hull() module. You could either > create the corner pieces with the proper radii, or create a series of > vertical slice of the curved bottom using offset(), a for() loop, and the > equation of a circle (y = sqrt(r^2 - x^2)). > > On Mar 7, 2022, 16:26 -0800, Adrian Mariano <avm4@cornell.edu>, wrote: > > > > As stated in the manual, you can only round the "vertical(ish)" edges. > In order to do what you want, take a look at rounded_prism() in > rounding.scad. It can also be done with offset_sweep(), but that's a more > complex approach. > > > > On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert <joe.weinpert@gmail.com> > wrote: > >> > >> How can I add a 1/2" radius fillet to the bottom of the prismoid > object (including the bottom corners)? > >> > >> prismoid( > >> h = 20, > >> size1 = [80,70], > >> size2 = [100,90], > >> rounding1 = 5, > >> rounding2 = 5 > >> ); > >> > >> <prismoid.jpg> > >> > >> _______________________________________________ > >> OpenSCAD mailing list > >> To unsubscribe send an email to discuss-leave@lists.openscad.org > > > > _______________________________________________ > > OpenSCAD mailing list > > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > > _______________________________________________ > > OpenSCAD mailing list > > To unsubscribe send an email to discuss-leave@lists.openscad.org > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
AM
Adrian Mariano
Tue, Mar 8, 2022 2:31 AM

Your method doesn't take full advantage of rounded_prism, which can round
the sides and bottom itself.  By giving it an already rounded top and
bottom you're having it compute a separate rounded corner patch for every
section of your already rounded top and bottom, which is why you get that
error.  It's because those tiny roundings cross each other on the bottom
face of the shape.  You can see this if you set debug=true and look
carefully at the bottom face.  If you instead use joint_sides to set the
side rounding then you'll be able to pick all the roundings to be any
reasonable value that you want and rounded_prism will blend them together
correctly.

On Mon, Mar 7, 2022 at 9:16 PM Joe Weinpert joe.weinpert@gmail.com wrote:

Okay ... thanks to all.  This works:

rounded_prism(
rect( [80,70], rounding = 5 ),
rect( [100,90], rounding = 5 ),
height = 20,
joint_bot = 5-.005
);

Note that I had to subtract .005" from the bottom radius because it throws
an error:

  • "Roundovers interfere with each other on bottom face: either input is
    self intersecting or top joint length is too large"*
    probably because the corners also have a .500" radius

On Mon, Mar 7, 2022 at 8:33 PM Adrian Mariano avm4@cornell.edu wrote:

No, it cannot be done simply with minkowski.  It appears that he wants
different roundings on the sides, no rounding on the top, and a larger
rounding on the bottom.  It's nontrivial to do with hull, also,
because you have to construct the right ellipsoids everywhere and
position them correctly.  And figure out how to handle no rounding at
the top.  Given that he's using BOSL2, I think using rounded_prism is
by far the easiest solution.  (But note, rounding parameters aren't
the radius, but the distance away from the corner where the rounding
meets the shape.)

include<BOSL2/std.scad>
include<BOSL2/rounding.scad>

rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5,
joint_bot=12);

On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis whosawhatsis@gmail.com
wrote:

It can be done fairly simply with Minkowski (you’d have to make the

shape smaller, then use a sphere or similar shape to expand it to its
current dimensions), but it’s slow.

Most of the faster methods involve the hull() module. You could either

create the corner pieces with the proper radii, or create a series of
vertical slice of the curved bottom using offset(), a for() loop, and the
equation of a circle (y = sqrt(r^2 - x^2)).

On Mar 7, 2022, 16:26 -0800, Adrian Mariano avm4@cornell.edu, wrote:

As stated in the manual, you can only round the "vertical(ish)" edges.

In order to do what you want, take a look at rounded_prism() in
rounding.scad.  It can also be done with offset_sweep(), but that's a more
complex approach.

On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert joe.weinpert@gmail.com

wrote:

How can I add a  1/2" radius fillet to the bottom of the prismoid

object (including the bottom corners)?

prismoid(
h = 20,
size1 = [80,70],
size2 = [100,90],
rounding1 = 5,
rounding2 = 5
);

<prismoid.jpg>


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Your method doesn't take full advantage of rounded_prism, which can round the sides and bottom itself. By giving it an already rounded top and bottom you're having it compute a separate rounded corner patch for every section of your already rounded top and bottom, which is why you get that error. It's because those tiny roundings cross each other on the bottom face of the shape. You can see this if you set debug=true and look carefully at the bottom face. If you instead use joint_sides to set the side rounding then you'll be able to pick all the roundings to be any reasonable value that you want and rounded_prism will blend them together correctly. On Mon, Mar 7, 2022 at 9:16 PM Joe Weinpert <joe.weinpert@gmail.com> wrote: > Okay ... thanks to all. This works: > > rounded_prism( > rect( [80,70], rounding = 5 ), > rect( [100,90], rounding = 5 ), > height = 20, > joint_bot = 5-.005 > ); > > Note that I had to subtract .005" from the bottom radius because it throws > an error: > * "Roundovers interfere with each other on bottom face: either input is > self intersecting or top joint length is too large"* > probably because the corners also have a .500" radius > > > > > > > On Mon, Mar 7, 2022 at 8:33 PM Adrian Mariano <avm4@cornell.edu> wrote: > >> No, it cannot be done simply with minkowski. It appears that he wants >> different roundings on the sides, no rounding on the top, and a larger >> rounding on the bottom. It's nontrivial to do with hull, also, >> because you have to construct the right ellipsoids everywhere and >> position them correctly. And figure out how to handle no rounding at >> the top. Given that he's using BOSL2, I think using rounded_prism is >> by far the easiest solution. (But note, rounding parameters aren't >> the radius, but the distance away from the corner where the rounding >> meets the shape.) >> >> include<BOSL2/std.scad> >> include<BOSL2/rounding.scad> >> >> rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5, >> joint_bot=12); >> >> On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis <whosawhatsis@gmail.com> >> wrote: >> > >> > It can be done fairly simply with Minkowski (you’d have to make the >> shape smaller, then use a sphere or similar shape to expand it to its >> current dimensions), but it’s slow. >> > >> > Most of the faster methods involve the hull() module. You could either >> create the corner pieces with the proper radii, or create a series of >> vertical slice of the curved bottom using offset(), a for() loop, and the >> equation of a circle (y = sqrt(r^2 - x^2)). >> > On Mar 7, 2022, 16:26 -0800, Adrian Mariano <avm4@cornell.edu>, wrote: >> > >> > As stated in the manual, you can only round the "vertical(ish)" edges. >> In order to do what you want, take a look at rounded_prism() in >> rounding.scad. It can also be done with offset_sweep(), but that's a more >> complex approach. >> > >> > On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert <joe.weinpert@gmail.com> >> wrote: >> >> >> >> How can I add a 1/2" radius fillet to the bottom of the prismoid >> object (including the bottom corners)? >> >> >> >> prismoid( >> >> h = 20, >> >> size1 = [80,70], >> >> size2 = [100,90], >> >> rounding1 = 5, >> >> rounding2 = 5 >> >> ); >> >> >> >> <prismoid.jpg> >> >> >> >> _______________________________________________ >> >> OpenSCAD mailing list >> >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> > >> > _______________________________________________ >> > OpenSCAD mailing list >> > To unsubscribe send an email to discuss-leave@lists.openscad.org >> > >> > _______________________________________________ >> > OpenSCAD mailing list >> > To unsubscribe send an email to discuss-leave@lists.openscad.org >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
JW
Joe Weinpert
Tue, Mar 8, 2022 3:12 PM

Got it.

Removed the radiuses clauses from the rect()  and added the joint_sides
clause in the rounded_prism().

Works great.  Thanks.

On Mon, Mar 7, 2022 at 9:32 PM Adrian Mariano avm4@cornell.edu wrote:

Your method doesn't take full advantage of rounded_prism, which can round
the sides and bottom itself.  By giving it an already rounded top and
bottom you're having it compute a separate rounded corner patch for every
section of your already rounded top and bottom, which is why you get that
error.  It's because those tiny roundings cross each other on the bottom
face of the shape.  You can see this if you set debug=true and look
carefully at the bottom face.  If you instead use joint_sides to set the
side rounding then you'll be able to pick all the roundings to be any
reasonable value that you want and rounded_prism will blend them together
correctly.

On Mon, Mar 7, 2022 at 9:16 PM Joe Weinpert joe.weinpert@gmail.com
wrote:

Okay ... thanks to all.  This works:

rounded_prism(
rect( [80,70], rounding = 5 ),
rect( [100,90], rounding = 5 ),
height = 20,
joint_bot = 5-.005
);

Note that I had to subtract .005" from the bottom radius because it
throws an error:

  • "Roundovers interfere with each other on bottom face: either input is
    self intersecting or top joint length is too large"*
    probably because the corners also have a .500" radius

On Mon, Mar 7, 2022 at 8:33 PM Adrian Mariano avm4@cornell.edu wrote:

No, it cannot be done simply with minkowski.  It appears that he wants
different roundings on the sides, no rounding on the top, and a larger
rounding on the bottom.  It's nontrivial to do with hull, also,
because you have to construct the right ellipsoids everywhere and
position them correctly.  And figure out how to handle no rounding at
the top.  Given that he's using BOSL2, I think using rounded_prism is
by far the easiest solution.  (But note, rounding parameters aren't
the radius, but the distance away from the corner where the rounding
meets the shape.)

include<BOSL2/std.scad>
include<BOSL2/rounding.scad>

rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5,
joint_bot=12);

On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis whosawhatsis@gmail.com
wrote:

It can be done fairly simply with Minkowski (you’d have to make the

shape smaller, then use a sphere or similar shape to expand it to its
current dimensions), but it’s slow.

Most of the faster methods involve the hull() module. You could either

create the corner pieces with the proper radii, or create a series of
vertical slice of the curved bottom using offset(), a for() loop, and the
equation of a circle (y = sqrt(r^2 - x^2)).

On Mar 7, 2022, 16:26 -0800, Adrian Mariano avm4@cornell.edu, wrote:

As stated in the manual, you can only round the "vertical(ish)"

edges.  In order to do what you want, take a look at rounded_prism() in
rounding.scad.  It can also be done with offset_sweep(), but that's a more
complex approach.

On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert joe.weinpert@gmail.com

wrote:

How can I add a  1/2" radius fillet to the bottom of the prismoid

object (including the bottom corners)?

prismoid(
h = 20,
size1 = [80,70],
size2 = [100,90],
rounding1 = 5,
rounding2 = 5
);

<prismoid.jpg>


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Got it. Removed the radiuses clauses from the rect() and added the joint_sides clause in the rounded_prism(). Works great. Thanks. On Mon, Mar 7, 2022 at 9:32 PM Adrian Mariano <avm4@cornell.edu> wrote: > Your method doesn't take full advantage of rounded_prism, which can round > the sides and bottom itself. By giving it an already rounded top and > bottom you're having it compute a separate rounded corner patch for every > section of your already rounded top and bottom, which is why you get that > error. It's because those tiny roundings cross each other on the bottom > face of the shape. You can see this if you set debug=true and look > carefully at the bottom face. If you instead use joint_sides to set the > side rounding then you'll be able to pick all the roundings to be any > reasonable value that you want and rounded_prism will blend them together > correctly. > > On Mon, Mar 7, 2022 at 9:16 PM Joe Weinpert <joe.weinpert@gmail.com> > wrote: > >> Okay ... thanks to all. This works: >> >> rounded_prism( >> rect( [80,70], rounding = 5 ), >> rect( [100,90], rounding = 5 ), >> height = 20, >> joint_bot = 5-.005 >> ); >> >> Note that I had to subtract .005" from the bottom radius because it >> throws an error: >> * "Roundovers interfere with each other on bottom face: either input is >> self intersecting or top joint length is too large"* >> probably because the corners also have a .500" radius >> >> >> >> >> >> >> On Mon, Mar 7, 2022 at 8:33 PM Adrian Mariano <avm4@cornell.edu> wrote: >> >>> No, it cannot be done simply with minkowski. It appears that he wants >>> different roundings on the sides, no rounding on the top, and a larger >>> rounding on the bottom. It's nontrivial to do with hull, also, >>> because you have to construct the right ellipsoids everywhere and >>> position them correctly. And figure out how to handle no rounding at >>> the top. Given that he's using BOSL2, I think using rounded_prism is >>> by far the easiest solution. (But note, rounding parameters aren't >>> the radius, but the distance away from the corner where the rounding >>> meets the shape.) >>> >>> include<BOSL2/std.scad> >>> include<BOSL2/rounding.scad> >>> >>> rounded_prism(rect([80,70]), rect([100,90]), h=20, joint_sides=5, >>> joint_bot=12); >>> >>> On Mon, Mar 7, 2022 at 7:47 PM Whosawhatsis <whosawhatsis@gmail.com> >>> wrote: >>> > >>> > It can be done fairly simply with Minkowski (you’d have to make the >>> shape smaller, then use a sphere or similar shape to expand it to its >>> current dimensions), but it’s slow. >>> > >>> > Most of the faster methods involve the hull() module. You could either >>> create the corner pieces with the proper radii, or create a series of >>> vertical slice of the curved bottom using offset(), a for() loop, and the >>> equation of a circle (y = sqrt(r^2 - x^2)). >>> > On Mar 7, 2022, 16:26 -0800, Adrian Mariano <avm4@cornell.edu>, wrote: >>> > >>> > As stated in the manual, you can only round the "vertical(ish)" >>> edges. In order to do what you want, take a look at rounded_prism() in >>> rounding.scad. It can also be done with offset_sweep(), but that's a more >>> complex approach. >>> > >>> > On Mon, Mar 7, 2022 at 7:02 PM Joe Weinpert <joe.weinpert@gmail.com> >>> wrote: >>> >> >>> >> How can I add a 1/2" radius fillet to the bottom of the prismoid >>> object (including the bottom corners)? >>> >> >>> >> prismoid( >>> >> h = 20, >>> >> size1 = [80,70], >>> >> size2 = [100,90], >>> >> rounding1 = 5, >>> >> rounding2 = 5 >>> >> ); >>> >> >>> >> <prismoid.jpg> >>> >> >>> >> _______________________________________________ >>> >> OpenSCAD mailing list >>> >> To unsubscribe send an email to discuss-leave@lists.openscad.org >>> > >>> > _______________________________________________ >>> > OpenSCAD mailing list >>> > To unsubscribe send an email to discuss-leave@lists.openscad.org >>> > >>> > _______________________________________________ >>> > OpenSCAD mailing list >>> > To unsubscribe send an email to discuss-leave@lists.openscad.org >>> _______________________________________________ >>> OpenSCAD mailing list >>> To unsubscribe send an email to discuss-leave@lists.openscad.org >>> >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >