discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Re: Fillet

RW
Raymond West
Thu, Jan 16, 2025 2:02 PM

Here's a smooth internal transition. I think the angled pipe join may be
a bit tricky.

Here's a smooth internal transition. I think the angled pipe join may be a bit tricky.
RW
Raymond West
Fri, Jan 17, 2025 6:51 PM

I've attached an stl, showing four variations. The script is now altered
to  produce fillets on any style and size of tube. I'm fairly certain
the same principle could be applied to filleting other shapes, provided
paths can be defined.

I've attached an stl, showing four variations. The script is now altered to  produce fillets on any style and size of tube. I'm fairly certain the same principle could be applied to filleting other shapes, provided paths can be defined.
JJ
jon jonbondy.com
Tue, Jan 21, 2025 9:31 PM

Excellent explanation!  Thank you!

Jon

On 1/15/2025 11:13 PM, Jordan Brown wrote:
I wasn't really sure how this worked, so I deconstructed it and made sort of an exploded diagram showing the components of the result.

One thing that makes it a bit hard to follow is the fact that it works with tubes rather than cylinders.  Some of the shapes being manipulated are very very small and rely on hull to turn them back into full shapes.  I switched it over to cylinders and that made it easier to see.

I also changed it over to being a cross-shaped intersection, because making everything be centered got rid of some translates that were confusing me, and made some aspects of the diagram below easier.

Here's the diagram.  Each column (0, 30, 60, 90) is one component of the final curve; each row (A, B, C, D) is a step in the process.  This is a very low-resolution version so that you have more of a chance of seeing how the results fit into the final product; the original model had many more columns so as to produce a smoother curve.
[cid:part1.LhLSIoF3.adg0kxAT@jonbondy.com]

Row A1 is the combination of a horizontal cylinder with the diameter of the object's horizontal cylinder, and a vertical cylinder that varies in diameter from the total length of the bevel down to the diameter of the object's original vertical cylinder.
Row A2 is sort of the transposition of A1; the vertical cylinder is the diameter of the object's vertical cylinder, and the horizontal cylinder grows in diameter from the diameter of the horizontal cylinder to the total vertical length of the bevel.

Row B1 is the intersection of the two shapes in row A1, so it is a segment of horizontal cylinder that varies in length from the total horizontal length of the bevel down to the diameter of the vertical cylinder.
Row B2 is similarly the intersection of the two shapes in row A2.

Row C is the union of the shapes in B1 and B2.

Row D is the hull of the shape in C.

Finally, the shapes in row D are unioned to produce the final shape to the left.

It's a clever technique.

Excellent explanation! Thank you! Jon On 1/15/2025 11:13 PM, Jordan Brown wrote: I wasn't really sure how this worked, so I deconstructed it and made sort of an exploded diagram showing the components of the result. One thing that makes it a bit hard to follow is the fact that it works with tubes rather than cylinders. Some of the shapes being manipulated are very very small and rely on hull to turn them back into full shapes. I switched it over to cylinders and that made it easier to see. I also changed it over to being a cross-shaped intersection, because making everything be centered got rid of some translates that were confusing me, and made some aspects of the diagram below easier. Here's the diagram. Each column (0, 30, 60, 90) is one component of the final curve; each row (A, B, C, D) is a step in the process. This is a very low-resolution version so that you have more of a chance of seeing how the results fit into the final product; the original model had many more columns so as to produce a smoother curve. [cid:part1.LhLSIoF3.adg0kxAT@jonbondy.com] Row A1 is the combination of a horizontal cylinder with the diameter of the object's horizontal cylinder, and a vertical cylinder that varies in diameter from the total length of the bevel down to the diameter of the object's original vertical cylinder. Row A2 is sort of the transposition of A1; the vertical cylinder is the diameter of the object's vertical cylinder, and the horizontal cylinder grows in diameter from the diameter of the horizontal cylinder to the total vertical length of the bevel. Row B1 is the intersection of the two shapes in row A1, so it is a segment of horizontal cylinder that varies in length from the total horizontal length of the bevel down to the diameter of the vertical cylinder. Row B2 is similarly the intersection of the two shapes in row A2. Row C is the union of the shapes in B1 and B2. Row D is the hull of the shape in C. Finally, the shapes in row D are unioned to produce the final shape to the left. It's a clever technique.