discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

simple method for creating fillets in openSCAD

SP
Sanjeev Prabhakar
Sun, Mar 16, 2025 12:05 PM

I have posted a video for creating fillets in openscad.
Although this is done through python but same could be done in pure
openSCAD for even very complex shapes.

https://youtu.be/KIE_zOc7cug

I have posted a video for creating fillets in openscad. Although this is done through python but same could be done in pure openSCAD for even very complex shapes. https://youtu.be/KIE_zOc7cug
P
pca006132
Sun, Mar 16, 2025 1:43 PM

Hi Sanjeev,

Do you have a write-up instead of a video? I am interested in ways to
create a fillet because we want to support it in manifold, but video is
just not information dense enough.

And how does your method compares against mesh offset (using minkowski or
other methods) and union with cylinders for each edge and spheres for each
vertex?

Best,
John

On Sun, Mar 16, 2025, 8:06 PM Sanjeev Prabhakar via Discuss <
discuss@lists.openscad.org> wrote:

I have posted a video for creating fillets in openscad.
Although this is done through python but same could be done in pure
openSCAD for even very complex shapes.

https://youtu.be/KIE_zOc7cug


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

Hi Sanjeev, Do you have a write-up instead of a video? I am interested in ways to create a fillet because we want to support it in manifold, but video is just not information dense enough. And how does your method compares against mesh offset (using minkowski or other methods) and union with cylinders for each edge and spheres for each vertex? Best, John On Sun, Mar 16, 2025, 8:06 PM Sanjeev Prabhakar via Discuss < discuss@lists.openscad.org> wrote: > I have posted a video for creating fillets in openscad. > Although this is done through python but same could be done in pure > openSCAD for even very complex shapes. > > https://youtu.be/KIE_zOc7cug > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
SP
Sanjeev Prabhakar
Sun, Mar 16, 2025 3:44 PM

Hi John,

I need to write the method in detail and will post it here.

Minkowski is much slower I suppose and also it increases the original solid
(Frankly I don't have much experience with it recently).

The key method or module which is required is to offset the original solids.

I have written the function in python, but I think it would not be too
difficult to do this purely in openSCAD.

Another idea is to draw a 2d arc which starts at 180 deg and ends at 270
deg. for example if the radius of the arc is 3 mm, the starting point of
the arc should be [0,3] and the end point of the arc should be [3,0].
Here x-coordinates of every point in this arc should be the offset values
for one of the solid and y-coordinates for the other solid.

So, therefore for each point on the arc there are 2 offset solids for which
intersections should be created. I have found the intersection in openscad
is quite quick.

And this will create the fillet effect in the end, but these would be
stepped. A chain hull approach can remove the stepped fillet, but this
would only be possible in convex shaped fillets.

In the case of concave type fillets, increasing the number of steps can
help to some extent.

On Sun, 16 Mar 2025 at 19:13, pca006132 john.lck40@gmail.com wrote:

Hi Sanjeev,

Do you have a write-up instead of a video? I am interested in ways to
create a fillet because we want to support it in manifold, but video is
just not information dense enough.

And how does your method compares against mesh offset (using minkowski or
other methods) and union with cylinders for each edge and spheres for each
vertex?

Best,
John

On Sun, Mar 16, 2025, 8:06 PM Sanjeev Prabhakar via Discuss <
discuss@lists.openscad.org> wrote:

I have posted a video for creating fillets in openscad.
Although this is done through python but same could be done in pure
openSCAD for even very complex shapes.

https://youtu.be/KIE_zOc7cug


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

Hi John, I need to write the method in detail and will post it here. Minkowski is much slower I suppose and also it increases the original solid (Frankly I don't have much experience with it recently). The key method or module which is required is to offset the original solids. I have written the function in python, but I think it would not be too difficult to do this purely in openSCAD. Another idea is to draw a 2d arc which starts at 180 deg and ends at 270 deg. for example if the radius of the arc is 3 mm, the starting point of the arc should be [0,3] and the end point of the arc should be [3,0]. Here x-coordinates of every point in this arc should be the offset values for one of the solid and y-coordinates for the other solid. So, therefore for each point on the arc there are 2 offset solids for which intersections should be created. I have found the intersection in openscad is quite quick. And this will create the fillet effect in the end, but these would be stepped. A chain hull approach can remove the stepped fillet, but this would only be possible in convex shaped fillets. In the case of concave type fillets, increasing the number of steps can help to some extent. On Sun, 16 Mar 2025 at 19:13, pca006132 <john.lck40@gmail.com> wrote: > Hi Sanjeev, > > Do you have a write-up instead of a video? I am interested in ways to > create a fillet because we want to support it in manifold, but video is > just not information dense enough. > > And how does your method compares against mesh offset (using minkowski or > other methods) and union with cylinders for each edge and spheres for each > vertex? > > Best, > John > > On Sun, Mar 16, 2025, 8:06 PM Sanjeev Prabhakar via Discuss < > discuss@lists.openscad.org> wrote: > >> I have posted a video for creating fillets in openscad. >> Although this is done through python but same could be done in pure >> openSCAD for even very complex shapes. >> >> https://youtu.be/KIE_zOc7cug >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> >
SP
Sanjeev Prabhakar
Mon, Mar 17, 2025 7:45 AM

attached is the explanation of the process

On Sun, 16 Mar 2025 at 21:14, Sanjeev Prabhakar sprabhakar2006@gmail.com
wrote:

Hi John,

I need to write the method in detail and will post it here.

Minkowski is much slower I suppose and also it increases the original
solid (Frankly I don't have much experience with it recently).

The key method or module which is required is to offset the original
solids.

I have written the function in python, but I think it would not be too
difficult to do this purely in openSCAD.

Another idea is to draw a 2d arc which starts at 180 deg and ends at 270
deg. for example if the radius of the arc is 3 mm, the starting point of
the arc should be [0,3] and the end point of the arc should be [3,0].
Here x-coordinates of every point in this arc should be the offset values
for one of the solid and y-coordinates for the other solid.

So, therefore for each point on the arc there are 2 offset solids for
which intersections should be created. I have found the intersection in
openscad is quite quick.

And this will create the fillet effect in the end, but these would be
stepped. A chain hull approach can remove the stepped fillet, but this
would only be possible in convex shaped fillets.

In the case of concave type fillets, increasing the number of steps can
help to some extent.

On Sun, 16 Mar 2025 at 19:13, pca006132 john.lck40@gmail.com wrote:

Hi Sanjeev,

Do you have a write-up instead of a video? I am interested in ways to
create a fillet because we want to support it in manifold, but video is
just not information dense enough.

And how does your method compares against mesh offset (using minkowski or
other methods) and union with cylinders for each edge and spheres for each
vertex?

Best,
John

On Sun, Mar 16, 2025, 8:06 PM Sanjeev Prabhakar via Discuss <
discuss@lists.openscad.org> wrote:

I have posted a video for creating fillets in openscad.
Although this is done through python but same could be done in pure
openSCAD for even very complex shapes.

https://youtu.be/KIE_zOc7cug


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

attached is the explanation of the process On Sun, 16 Mar 2025 at 21:14, Sanjeev Prabhakar <sprabhakar2006@gmail.com> wrote: > Hi John, > > I need to write the method in detail and will post it here. > > Minkowski is much slower I suppose and also it increases the original > solid (Frankly I don't have much experience with it recently). > > The key method or module which is required is to offset the original > solids. > > I have written the function in python, but I think it would not be too > difficult to do this purely in openSCAD. > > Another idea is to draw a 2d arc which starts at 180 deg and ends at 270 > deg. for example if the radius of the arc is 3 mm, the starting point of > the arc should be [0,3] and the end point of the arc should be [3,0]. > Here x-coordinates of every point in this arc should be the offset values > for one of the solid and y-coordinates for the other solid. > > So, therefore for each point on the arc there are 2 offset solids for > which intersections should be created. I have found the intersection in > openscad is quite quick. > > And this will create the fillet effect in the end, but these would be > stepped. A chain hull approach can remove the stepped fillet, but this > would only be possible in convex shaped fillets. > > In the case of concave type fillets, increasing the number of steps can > help to some extent. > > > > > On Sun, 16 Mar 2025 at 19:13, pca006132 <john.lck40@gmail.com> wrote: > >> Hi Sanjeev, >> >> Do you have a write-up instead of a video? I am interested in ways to >> create a fillet because we want to support it in manifold, but video is >> just not information dense enough. >> >> And how does your method compares against mesh offset (using minkowski or >> other methods) and union with cylinders for each edge and spheres for each >> vertex? >> >> Best, >> John >> >> On Sun, Mar 16, 2025, 8:06 PM Sanjeev Prabhakar via Discuss < >> discuss@lists.openscad.org> wrote: >> >>> I have posted a video for creating fillets in openscad. >>> Although this is done through python but same could be done in pure >>> openSCAD for even very complex shapes. >>> >>> https://youtu.be/KIE_zOc7cug >>> _______________________________________________ >>> OpenSCAD mailing list >>> To unsubscribe send an email to discuss-leave@lists.openscad.org >>> >>
SP
Sanjeev Prabhakar
Mon, Mar 17, 2025 3:26 PM

There is another method called the marching cube method.

I recently read about this and copied a function from the internet (frankly
I don't understand this, but it works), but don't know how to refine it. If
this can be refined, it can provide a very good alternative for creating
fillets.

Workflow can be:

  • Create intersection points/ vertices by intersecting the 2 solids by the
    method described in my earlier mail.
  • Then use these vertices to convert to the surface with the marching cube
    method.

few pics of the fillet created with this:
[image: Screenshot 2025-03-17 at 8.38.33 PM.png]

[image: Screenshot 2025-03-17 at 8.39.22 PM.png]

[image: Screenshot 2025-03-17 at 8.40.19 PM.png]

There is another method called the marching cube method. I recently read about this and copied a function from the internet (frankly I don't understand this, but it works), but don't know how to refine it. If this can be refined, it can provide a very good alternative for creating fillets. Workflow can be: - Create intersection points/ vertices by intersecting the 2 solids by the method described in my earlier mail. - Then use these vertices to convert to the surface with the marching cube method. few pics of the fillet created with this: [image: Screenshot 2025-03-17 at 8.38.33 PM.png] [image: Screenshot 2025-03-17 at 8.39.22 PM.png] [image: Screenshot 2025-03-17 at 8.40.19 PM.png]
SP
Sanjeev Prabhakar
Tue, Mar 18, 2025 12:38 AM

and this is my regular way of creating fillets, but this method does not
work in 100% of the cases.
In this an intersection line is found and then it is offset on both the
surfaces of sol1 and sol2. A bezier curve is then formed (if I remember
correctly) to give an appearance of a fillet.
This method is the most cleaner wherever it is possible

[image: Screenshot 2025-03-18 at 6.00.51 AM.png]

and this is my regular way of creating fillets, but this method does not work in 100% of the cases. In this an intersection line is found and then it is offset on both the surfaces of sol1 and sol2. A bezier curve is then formed (if I remember correctly) to give an appearance of a fillet. This method is the most cleaner wherever it is possible [image: Screenshot 2025-03-18 at 6.00.51 AM.png]