discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

example of fillets

AM
Adrian Mariano
Sun, Jan 23, 2022 2:39 PM

I am having trouble understanding which are the "nearby" points and
which intersection point exactly you take, and how you then get the
axis.  Maybe you could post a drawing?

On Sun, Jan 23, 2022 at 9:01 AM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

Thanks for pointing out.
In the new version, extra comma at the end of let() statement doesnt show an error, so mostly miss  to correct it.
gap at the end can be filled and will do that.

Is there a way to improve the smoothness of fillets.
The logic for fillets followed here is as follows:
1- find the intersection points between 2 prisms
2- for each intersecting point take all the nearby points. also add a new point in the same vector, which is intersecting the first prism by any random distance, here it is considered as fillet radius
3- now make an axis of rotation by joining the intersecting point and the next intersecting point.
4- create a half circle with starting point added in step 2, with axis of rotation created in step 3 (option=0 is cw semi-circle, option=1 is ccw)
5. find the intersection of this circle created with the first prism.
6 Now there are 3 points (original intersection point, point added in step 2 and intersection point added in step 5.
7. with these 3 points, both fillet and chamfer can be drawn.

On Sun, 23 Jan 2022 at 19:01, Adrian Mariano avm4@cornell.edu wrote:

Your latest version refers to dependencies in some directory.  You
might want to treat your dependencies file as a library and put it on
the OpenSCAD library path.  Then you can just write
include<dependencies.scad> from any file and the dependencies will be
found.  You may not be aware that your revised code requires a recent
dev snapshot, which is perhaps not ideal for code you're going to
distribute.  But you should let people know about it so the syntax
errors aren't mysterious.  (The new feature you're using is trailing
commas in let statements.)  This fits right in with the thread I
started about required versions.

I was studying the fillet and noticed that it has some places where it
pulls away from the mating shape.  Yet somehow it renders.  I don't
understand how this renders, unless the fillet is an entire
self-contained polyhedron?  But it certainly seems undesirable to have
that gap.

On Sun, Jan 23, 2022 at 3:35 AM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

written most of the functions again.
no warnings
this is much faster now

On Sun, 23 Jan 2022 at 07:47, Adrian Mariano avm4@cornell.edu wrote:

The jagged lines don't go away, exactly.  They move somewhere else.
They seem to be related to having two intersection points very close
to each other.  I thought some about how to design a fillet between a
cylinder and arbitrary prism and it's not obvious to me how to do it,
Such a fillet would naturally be created by offsetting the prism
cross section, but it seems like it needs to offset different amount
in different directions if the fillet is supposed to have a continuous
derivative.  Once you obtain the intersection of the prism with the
cylinder, say, how do you use that intersection to build the fillet?


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

I am having trouble understanding which are the "nearby" points and which intersection point exactly you take, and how you then get the axis. Maybe you could post a drawing? On Sun, Jan 23, 2022 at 9:01 AM Sanjeev Prabhakar <sprabhakar2006@gmail.com> wrote: > > Thanks for pointing out. > In the new version, extra comma at the end of let() statement doesnt show an error, so mostly miss to correct it. > gap at the end can be filled and will do that. > > Is there a way to improve the smoothness of fillets. > The logic for fillets followed here is as follows: > 1- find the intersection points between 2 prisms > 2- for each intersecting point take all the nearby points. also add a new point in the same vector, which is intersecting the first prism by any random distance, here it is considered as fillet radius > 3- now make an axis of rotation by joining the intersecting point and the next intersecting point. > 4- create a half circle with starting point added in step 2, with axis of rotation created in step 3 (option=0 is cw semi-circle, option=1 is ccw) > 5. find the intersection of this circle created with the first prism. > 6 Now there are 3 points (original intersection point, point added in step 2 and intersection point added in step 5. > 7. with these 3 points, both fillet and chamfer can be drawn. > > - > > On Sun, 23 Jan 2022 at 19:01, Adrian Mariano <avm4@cornell.edu> wrote: >> >> Your latest version refers to dependencies in some directory. You >> might want to treat your dependencies file as a library and put it on >> the OpenSCAD library path. Then you can just write >> include<dependencies.scad> from any file and the dependencies will be >> found. You may not be aware that your revised code requires a recent >> dev snapshot, which is perhaps not ideal for code you're going to >> distribute. But you should let people know about it so the syntax >> errors aren't mysterious. (The new feature you're using is trailing >> commas in let statements.) This fits right in with the thread I >> started about required versions. >> >> I was studying the fillet and noticed that it has some places where it >> pulls away from the mating shape. Yet somehow it renders. I don't >> understand how this renders, unless the fillet is an entire >> self-contained polyhedron? But it certainly seems undesirable to have >> that gap. >> >> >> On Sun, Jan 23, 2022 at 3:35 AM Sanjeev Prabhakar >> <sprabhakar2006@gmail.com> wrote: >> > >> > written most of the functions again. >> > no warnings >> > this is much faster now >> > >> > On Sun, 23 Jan 2022 at 07:47, Adrian Mariano <avm4@cornell.edu> wrote: >> >> >> >> The jagged lines don't go away, exactly. They move somewhere else. >> >> They seem to be related to having two intersection points very close >> >> to each other. I thought some about how to design a fillet between a >> >> cylinder and arbitrary prism and it's not obvious to me how to do it, >> >> Such a fillet would naturally be created by offsetting the prism >> >> cross section, but it seems like it needs to offset different amount >> >> in different directions if the fillet is supposed to have a continuous >> >> derivative. Once you obtain the intersection of the prism with the >> >> cylinder, say, how do you use that intersection to build the fillet? >> >> >> >> >> >> >> > _______________________________________________ >> > 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
SP
Sanjeev Prabhakar
Sun, Jan 23, 2022 3:35 PM

tried to sketch something for explanation

https://github.com/sprabhakar2006/openSCAD/blob/main/logic%20note%20fillet%20.pdf

On Sun, 23 Jan 2022 at 20:09, Adrian Mariano avm4@cornell.edu wrote:

I am having trouble understanding which are the "nearby" points and
which intersection point exactly you take, and how you then get the
axis.  Maybe you could post a drawing?

On Sun, Jan 23, 2022 at 9:01 AM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

Thanks for pointing out.
In the new version, extra comma at the end of let() statement doesnt

show an error, so mostly miss  to correct it.

gap at the end can be filled and will do that.

Is there a way to improve the smoothness of fillets.
The logic for fillets followed here is as follows:
1- find the intersection points between 2 prisms
2- for each intersecting point take all the nearby points. also add a

new point in the same vector, which is intersecting the first prism by any
random distance, here it is considered as fillet radius

3- now make an axis of rotation by joining the intersecting point and

the next intersecting point.

4- create a half circle with starting point added in step 2, with axis

of rotation created in step 3 (option=0 is cw semi-circle, option=1 is ccw)

  1. find the intersection of this circle created with the first prism.
    6 Now there are 3 points (original intersection point, point added in

step 2 and intersection point added in step 5.

  1. with these 3 points, both fillet and chamfer can be drawn.

On Sun, 23 Jan 2022 at 19:01, Adrian Mariano avm4@cornell.edu wrote:

Your latest version refers to dependencies in some directory.  You
might want to treat your dependencies file as a library and put it on
the OpenSCAD library path.  Then you can just write
include<dependencies.scad> from any file and the dependencies will be
found.  You may not be aware that your revised code requires a recent
dev snapshot, which is perhaps not ideal for code you're going to
distribute.  But you should let people know about it so the syntax
errors aren't mysterious.  (The new feature you're using is trailing
commas in let statements.)  This fits right in with the thread I
started about required versions.

I was studying the fillet and noticed that it has some places where it
pulls away from the mating shape.  Yet somehow it renders.  I don't
understand how this renders, unless the fillet is an entire
self-contained polyhedron?  But it certainly seems undesirable to have
that gap.

On Sun, Jan 23, 2022 at 3:35 AM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

written most of the functions again.
no warnings
this is much faster now

On Sun, 23 Jan 2022 at 07:47, Adrian Mariano avm4@cornell.edu

wrote:

The jagged lines don't go away, exactly.  They move somewhere else.
They seem to be related to having two intersection points very close
to each other.  I thought some about how to design a fillet between

a

cylinder and arbitrary prism and it's not obvious to me how to do it,
Such a fillet would naturally be created by offsetting the prism
cross section, but it seems like it needs to offset different amount
in different directions if the fillet is supposed to have a

continuous

derivative.  Once you obtain the intersection of the prism with the
cylinder, say, how do you use that intersection to build the fillet?


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

tried to sketch something for explanation https://github.com/sprabhakar2006/openSCAD/blob/main/logic%20note%20fillet%20.pdf On Sun, 23 Jan 2022 at 20:09, Adrian Mariano <avm4@cornell.edu> wrote: > I am having trouble understanding which are the "nearby" points and > which intersection point exactly you take, and how you then get the > axis. Maybe you could post a drawing? > > On Sun, Jan 23, 2022 at 9:01 AM Sanjeev Prabhakar > <sprabhakar2006@gmail.com> wrote: > > > > Thanks for pointing out. > > In the new version, extra comma at the end of let() statement doesnt > show an error, so mostly miss to correct it. > > gap at the end can be filled and will do that. > > > > Is there a way to improve the smoothness of fillets. > > The logic for fillets followed here is as follows: > > 1- find the intersection points between 2 prisms > > 2- for each intersecting point take all the nearby points. also add a > new point in the same vector, which is intersecting the first prism by any > random distance, here it is considered as fillet radius > > 3- now make an axis of rotation by joining the intersecting point and > the next intersecting point. > > 4- create a half circle with starting point added in step 2, with axis > of rotation created in step 3 (option=0 is cw semi-circle, option=1 is ccw) > > 5. find the intersection of this circle created with the first prism. > > 6 Now there are 3 points (original intersection point, point added in > step 2 and intersection point added in step 5. > > 7. with these 3 points, both fillet and chamfer can be drawn. > > > > - > > > > On Sun, 23 Jan 2022 at 19:01, Adrian Mariano <avm4@cornell.edu> wrote: > >> > >> Your latest version refers to dependencies in some directory. You > >> might want to treat your dependencies file as a library and put it on > >> the OpenSCAD library path. Then you can just write > >> include<dependencies.scad> from any file and the dependencies will be > >> found. You may not be aware that your revised code requires a recent > >> dev snapshot, which is perhaps not ideal for code you're going to > >> distribute. But you should let people know about it so the syntax > >> errors aren't mysterious. (The new feature you're using is trailing > >> commas in let statements.) This fits right in with the thread I > >> started about required versions. > >> > >> I was studying the fillet and noticed that it has some places where it > >> pulls away from the mating shape. Yet somehow it renders. I don't > >> understand how this renders, unless the fillet is an entire > >> self-contained polyhedron? But it certainly seems undesirable to have > >> that gap. > >> > >> > >> On Sun, Jan 23, 2022 at 3:35 AM Sanjeev Prabhakar > >> <sprabhakar2006@gmail.com> wrote: > >> > > >> > written most of the functions again. > >> > no warnings > >> > this is much faster now > >> > > >> > On Sun, 23 Jan 2022 at 07:47, Adrian Mariano <avm4@cornell.edu> > wrote: > >> >> > >> >> The jagged lines don't go away, exactly. They move somewhere else. > >> >> They seem to be related to having two intersection points very close > >> >> to each other. I thought some about how to design a fillet between > a > >> >> cylinder and arbitrary prism and it's not obvious to me how to do it, > >> >> Such a fillet would naturally be created by offsetting the prism > >> >> cross section, but it seems like it needs to offset different amount > >> >> in different directions if the fillet is supposed to have a > continuous > >> >> derivative. Once you obtain the intersection of the prism with the > >> >> cylinder, say, how do you use that intersection to build the fillet? > >> >> > >> >> > >> >> > >> > _______________________________________________ > >> > 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
Sun, Jan 23, 2022 4:15 PM

I took a look at your diagram and I think I understand your approach.
(I was thinking about the problem in a very different way.)  One
apparent failure case is when p2 does not lie strictly on the
quadrilateral [Pa,Pb,Pd,Pc].  If you are simply finding p2 on the
plane defined by those points then the result will be wrong perhaps
quite often, if the intersection with the surface is on a different
facet of prism1.  I also do not understand why the code that showed
intersection points was showing very close doubled points---that
seemed to be connected with irregularities in the fillet.  But you
might see how the fillet looks if you connect "prism" to a very simple
base like a cube, where the base is all one face.  Then do you get a
beautiful, clean fillet?  Or still no?

On Sun, Jan 23, 2022 at 10:35 AM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

tried to sketch something for explanation

https://github.com/sprabhakar2006/openSCAD/blob/main/logic%20note%20fillet%20.pdf

On Sun, 23 Jan 2022 at 20:09, Adrian Mariano avm4@cornell.edu wrote:

I am having trouble understanding which are the "nearby" points and
which intersection point exactly you take, and how you then get the
axis.  Maybe you could post a drawing?

On Sun, Jan 23, 2022 at 9:01 AM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

Thanks for pointing out.
In the new version, extra comma at the end of let() statement doesnt show an error, so mostly miss  to correct it.
gap at the end can be filled and will do that.

Is there a way to improve the smoothness of fillets.
The logic for fillets followed here is as follows:
1- find the intersection points between 2 prisms
2- for each intersecting point take all the nearby points. also add a new point in the same vector, which is intersecting the first prism by any random distance, here it is considered as fillet radius
3- now make an axis of rotation by joining the intersecting point and the next intersecting point.
4- create a half circle with starting point added in step 2, with axis of rotation created in step 3 (option=0 is cw semi-circle, option=1 is ccw)
5. find the intersection of this circle created with the first prism.
6 Now there are 3 points (original intersection point, point added in step 2 and intersection point added in step 5.
7. with these 3 points, both fillet and chamfer can be drawn.

On Sun, 23 Jan 2022 at 19:01, Adrian Mariano avm4@cornell.edu wrote:

Your latest version refers to dependencies in some directory.  You
might want to treat your dependencies file as a library and put it on
the OpenSCAD library path.  Then you can just write
include<dependencies.scad> from any file and the dependencies will be
found.  You may not be aware that your revised code requires a recent
dev snapshot, which is perhaps not ideal for code you're going to
distribute.  But you should let people know about it so the syntax
errors aren't mysterious.  (The new feature you're using is trailing
commas in let statements.)  This fits right in with the thread I
started about required versions.

I was studying the fillet and noticed that it has some places where it
pulls away from the mating shape.  Yet somehow it renders.  I don't
understand how this renders, unless the fillet is an entire
self-contained polyhedron?  But it certainly seems undesirable to have
that gap.

On Sun, Jan 23, 2022 at 3:35 AM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

written most of the functions again.
no warnings
this is much faster now

On Sun, 23 Jan 2022 at 07:47, Adrian Mariano avm4@cornell.edu wrote:

The jagged lines don't go away, exactly.  They move somewhere else.
They seem to be related to having two intersection points very close
to each other.  I thought some about how to design a fillet between a
cylinder and arbitrary prism and it's not obvious to me how to do it,
Such a fillet would naturally be created by offsetting the prism
cross section, but it seems like it needs to offset different amount
in different directions if the fillet is supposed to have a continuous
derivative.  Once you obtain the intersection of the prism with the
cylinder, say, how do you use that intersection to build the fillet?


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

I took a look at your diagram and I think I understand your approach. (I was thinking about the problem in a very different way.) One apparent failure case is when p2 does not lie strictly on the quadrilateral [Pa,Pb,Pd,Pc]. If you are simply finding p2 on the plane defined by those points then the result will be wrong perhaps quite often, if the intersection with the surface is on a different facet of prism1. I also do not understand why the code that showed intersection points was showing very close doubled points---that seemed to be connected with irregularities in the fillet. But you might see how the fillet looks if you connect "prism" to a very simple base like a cube, where the base is all one face. Then do you get a beautiful, clean fillet? Or still no? On Sun, Jan 23, 2022 at 10:35 AM Sanjeev Prabhakar <sprabhakar2006@gmail.com> wrote: > > tried to sketch something for explanation > > https://github.com/sprabhakar2006/openSCAD/blob/main/logic%20note%20fillet%20.pdf > > > On Sun, 23 Jan 2022 at 20:09, Adrian Mariano <avm4@cornell.edu> wrote: >> >> I am having trouble understanding which are the "nearby" points and >> which intersection point exactly you take, and how you then get the >> axis. Maybe you could post a drawing? >> >> On Sun, Jan 23, 2022 at 9:01 AM Sanjeev Prabhakar >> <sprabhakar2006@gmail.com> wrote: >> > >> > Thanks for pointing out. >> > In the new version, extra comma at the end of let() statement doesnt show an error, so mostly miss to correct it. >> > gap at the end can be filled and will do that. >> > >> > Is there a way to improve the smoothness of fillets. >> > The logic for fillets followed here is as follows: >> > 1- find the intersection points between 2 prisms >> > 2- for each intersecting point take all the nearby points. also add a new point in the same vector, which is intersecting the first prism by any random distance, here it is considered as fillet radius >> > 3- now make an axis of rotation by joining the intersecting point and the next intersecting point. >> > 4- create a half circle with starting point added in step 2, with axis of rotation created in step 3 (option=0 is cw semi-circle, option=1 is ccw) >> > 5. find the intersection of this circle created with the first prism. >> > 6 Now there are 3 points (original intersection point, point added in step 2 and intersection point added in step 5. >> > 7. with these 3 points, both fillet and chamfer can be drawn. >> > >> > - >> > >> > On Sun, 23 Jan 2022 at 19:01, Adrian Mariano <avm4@cornell.edu> wrote: >> >> >> >> Your latest version refers to dependencies in some directory. You >> >> might want to treat your dependencies file as a library and put it on >> >> the OpenSCAD library path. Then you can just write >> >> include<dependencies.scad> from any file and the dependencies will be >> >> found. You may not be aware that your revised code requires a recent >> >> dev snapshot, which is perhaps not ideal for code you're going to >> >> distribute. But you should let people know about it so the syntax >> >> errors aren't mysterious. (The new feature you're using is trailing >> >> commas in let statements.) This fits right in with the thread I >> >> started about required versions. >> >> >> >> I was studying the fillet and noticed that it has some places where it >> >> pulls away from the mating shape. Yet somehow it renders. I don't >> >> understand how this renders, unless the fillet is an entire >> >> self-contained polyhedron? But it certainly seems undesirable to have >> >> that gap. >> >> >> >> >> >> On Sun, Jan 23, 2022 at 3:35 AM Sanjeev Prabhakar >> >> <sprabhakar2006@gmail.com> wrote: >> >> > >> >> > written most of the functions again. >> >> > no warnings >> >> > this is much faster now >> >> > >> >> > On Sun, 23 Jan 2022 at 07:47, Adrian Mariano <avm4@cornell.edu> wrote: >> >> >> >> >> >> The jagged lines don't go away, exactly. They move somewhere else. >> >> >> They seem to be related to having two intersection points very close >> >> >> to each other. I thought some about how to design a fillet between a >> >> >> cylinder and arbitrary prism and it's not obvious to me how to do it, >> >> >> Such a fillet would naturally be created by offsetting the prism >> >> >> cross section, but it seems like it needs to offset different amount >> >> >> in different directions if the fillet is supposed to have a continuous >> >> >> derivative. Once you obtain the intersection of the prism with the >> >> >> cylinder, say, how do you use that intersection to build the fillet? >> >> >> >> >> >> >> >> >> >> >> > _______________________________________________ >> >> > 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
SP
Sanjeev Prabhakar
Sun, Jan 23, 2022 5:13 PM

There may be some way to know all the points in the prism near the half
circle with radius r,
If this could be done the processing time can be reduced

On Sun, 23 Jan 2022, 21:46 Adrian Mariano, avm4@cornell.edu wrote:

I took a look at your diagram and I think I understand your approach.
(I was thinking about the problem in a very different way.)  One
apparent failure case is when p2 does not lie strictly on the
quadrilateral [Pa,Pb,Pd,Pc].  If you are simply finding p2 on the
plane defined by those points then the result will be wrong perhaps
quite often, if the intersection with the surface is on a different
facet of prism1.  I also do not understand why the code that showed
intersection points was showing very close doubled points---that
seemed to be connected with irregularities in the fillet.  But you
might see how the fillet looks if you connect "prism" to a very simple
base like a cube, where the base is all one face.  Then do you get a
beautiful, clean fillet?  Or still no?

On Sun, Jan 23, 2022 at 10:35 AM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

tried to sketch something for explanation

On Sun, 23 Jan 2022 at 20:09, Adrian Mariano avm4@cornell.edu wrote:

I am having trouble understanding which are the "nearby" points and
which intersection point exactly you take, and how you then get the
axis.  Maybe you could post a drawing?

On Sun, Jan 23, 2022 at 9:01 AM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

Thanks for pointing out.
In the new version, extra comma at the end of let() statement doesnt

show an error, so mostly miss  to correct it.

gap at the end can be filled and will do that.

Is there a way to improve the smoothness of fillets.
The logic for fillets followed here is as follows:
1- find the intersection points between 2 prisms
2- for each intersecting point take all the nearby points. also add a

new point in the same vector, which is intersecting the first prism by any
random distance, here it is considered as fillet radius

3- now make an axis of rotation by joining the intersecting point and

the next intersecting point.

4- create a half circle with starting point added in step 2, with

axis of rotation created in step 3 (option=0 is cw semi-circle, option=1 is
ccw)

  1. find the intersection of this circle created with the first prism.
    6 Now there are 3 points (original intersection point, point added in

step 2 and intersection point added in step 5.

  1. with these 3 points, both fillet and chamfer can be drawn.

On Sun, 23 Jan 2022 at 19:01, Adrian Mariano avm4@cornell.edu

wrote:

Your latest version refers to dependencies in some directory.  You
might want to treat your dependencies file as a library and put it on
the OpenSCAD library path.  Then you can just write
include<dependencies.scad> from any file and the dependencies will be
found.  You may not be aware that your revised code requires a recent
dev snapshot, which is perhaps not ideal for code you're going to
distribute.  But you should let people know about it so the syntax
errors aren't mysterious.  (The new feature you're using is trailing
commas in let statements.)  This fits right in with the thread I
started about required versions.

I was studying the fillet and noticed that it has some places where

it

pulls away from the mating shape.  Yet somehow it renders.  I don't
understand how this renders, unless the fillet is an entire
self-contained polyhedron?  But it certainly seems undesirable to

have

that gap.

On Sun, Jan 23, 2022 at 3:35 AM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

written most of the functions again.
no warnings
this is much faster now

On Sun, 23 Jan 2022 at 07:47, Adrian Mariano avm4@cornell.edu

wrote:

The jagged lines don't go away, exactly.  They move somewhere

else.

They seem to be related to having two intersection points very

close

to each other.  I thought some about how to design a fillet

between a

cylinder and arbitrary prism and it's not obvious to me how to do

it,

Such a fillet would naturally be created by offsetting the prism
cross section, but it seems like it needs to offset different

amount

in different directions if the fillet is supposed to have a

continuous

derivative.  Once you obtain the intersection of the prism with

the

cylinder, say, how do you use that intersection to build the

fillet?


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

There may be some way to know all the points in the prism near the half circle with radius r, If this could be done the processing time can be reduced On Sun, 23 Jan 2022, 21:46 Adrian Mariano, <avm4@cornell.edu> wrote: > I took a look at your diagram and I think I understand your approach. > (I was thinking about the problem in a very different way.) One > apparent failure case is when p2 does not lie strictly on the > quadrilateral [Pa,Pb,Pd,Pc]. If you are simply finding p2 on the > plane defined by those points then the result will be wrong perhaps > quite often, if the intersection with the surface is on a different > facet of prism1. I also do not understand why the code that showed > intersection points was showing very close doubled points---that > seemed to be connected with irregularities in the fillet. But you > might see how the fillet looks if you connect "prism" to a very simple > base like a cube, where the base is all one face. Then do you get a > beautiful, clean fillet? Or still no? > > On Sun, Jan 23, 2022 at 10:35 AM Sanjeev Prabhakar > <sprabhakar2006@gmail.com> wrote: > > > > tried to sketch something for explanation > > > > > https://github.com/sprabhakar2006/openSCAD/blob/main/logic%20note%20fillet%20.pdf > > > > > > On Sun, 23 Jan 2022 at 20:09, Adrian Mariano <avm4@cornell.edu> wrote: > >> > >> I am having trouble understanding which are the "nearby" points and > >> which intersection point exactly you take, and how you then get the > >> axis. Maybe you could post a drawing? > >> > >> On Sun, Jan 23, 2022 at 9:01 AM Sanjeev Prabhakar > >> <sprabhakar2006@gmail.com> wrote: > >> > > >> > Thanks for pointing out. > >> > In the new version, extra comma at the end of let() statement doesnt > show an error, so mostly miss to correct it. > >> > gap at the end can be filled and will do that. > >> > > >> > Is there a way to improve the smoothness of fillets. > >> > The logic for fillets followed here is as follows: > >> > 1- find the intersection points between 2 prisms > >> > 2- for each intersecting point take all the nearby points. also add a > new point in the same vector, which is intersecting the first prism by any > random distance, here it is considered as fillet radius > >> > 3- now make an axis of rotation by joining the intersecting point and > the next intersecting point. > >> > 4- create a half circle with starting point added in step 2, with > axis of rotation created in step 3 (option=0 is cw semi-circle, option=1 is > ccw) > >> > 5. find the intersection of this circle created with the first prism. > >> > 6 Now there are 3 points (original intersection point, point added in > step 2 and intersection point added in step 5. > >> > 7. with these 3 points, both fillet and chamfer can be drawn. > >> > > >> > - > >> > > >> > On Sun, 23 Jan 2022 at 19:01, Adrian Mariano <avm4@cornell.edu> > wrote: > >> >> > >> >> Your latest version refers to dependencies in some directory. You > >> >> might want to treat your dependencies file as a library and put it on > >> >> the OpenSCAD library path. Then you can just write > >> >> include<dependencies.scad> from any file and the dependencies will be > >> >> found. You may not be aware that your revised code requires a recent > >> >> dev snapshot, which is perhaps not ideal for code you're going to > >> >> distribute. But you should let people know about it so the syntax > >> >> errors aren't mysterious. (The new feature you're using is trailing > >> >> commas in let statements.) This fits right in with the thread I > >> >> started about required versions. > >> >> > >> >> I was studying the fillet and noticed that it has some places where > it > >> >> pulls away from the mating shape. Yet somehow it renders. I don't > >> >> understand how this renders, unless the fillet is an entire > >> >> self-contained polyhedron? But it certainly seems undesirable to > have > >> >> that gap. > >> >> > >> >> > >> >> On Sun, Jan 23, 2022 at 3:35 AM Sanjeev Prabhakar > >> >> <sprabhakar2006@gmail.com> wrote: > >> >> > > >> >> > written most of the functions again. > >> >> > no warnings > >> >> > this is much faster now > >> >> > > >> >> > On Sun, 23 Jan 2022 at 07:47, Adrian Mariano <avm4@cornell.edu> > wrote: > >> >> >> > >> >> >> The jagged lines don't go away, exactly. They move somewhere > else. > >> >> >> They seem to be related to having two intersection points very > close > >> >> >> to each other. I thought some about how to design a fillet > between a > >> >> >> cylinder and arbitrary prism and it's not obvious to me how to do > it, > >> >> >> Such a fillet would naturally be created by offsetting the prism > >> >> >> cross section, but it seems like it needs to offset different > amount > >> >> >> in different directions if the fillet is supposed to have a > continuous > >> >> >> derivative. Once you obtain the intersection of the prism with > the > >> >> >> cylinder, say, how do you use that intersection to build the > fillet? > >> >> >> > >> >> >> > >> >> >> > >> >> > _______________________________________________ > >> >> > 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 >
RD
Revar Desmera
Sun, Jan 23, 2022 5:57 PM

On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar sprabhakar2006@gmail.com wrote:


There may be some way to know all the points in the prism near the half circle with radius r,
If this could be done the processing time can be reduced

> On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar <sprabhakar2006@gmail.com> wrote: > >  > There may be some way to know all the points in the prism near the half circle with radius r, > If this could be done the processing time can be reduced > BOSL2 has a couple functions that may be useful: https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search_tree -Revar
AM
Adrian Mariano
Sun, Jan 23, 2022 6:10 PM

I think the prisms are both defined by polygons, so determining
adjacency doesn't require working so hard.  You can probably check if
the intersection point lies in the quadrilateral, and if not,
construct the next quadrilateral from the prism's polygon, and then
continue.  Of course, the case of intersection with cylinder or sphere
can presumably be done directly.  But I still think that step 1 is to
make sure that everything actually works with a planar base, before
worrying about ways to optimize.

On Sun, Jan 23, 2022 at 12:58 PM Revar Desmera revarbat@gmail.com wrote:

On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar sprabhakar2006@gmail.com wrote:


There may be some way to know all the points in the prism near the half circle with radius r,
If this could be done the processing time can be reduced

BOSL2 has a couple functions that may be useful:

https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search

https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search_tree

-Revar


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

I think the prisms are both defined by polygons, so determining adjacency doesn't require working so hard. You can probably check if the intersection point lies in the quadrilateral, and if not, construct the next quadrilateral from the prism's polygon, and then continue. Of course, the case of intersection with cylinder or sphere can presumably be done directly. But I still think that step 1 is to make sure that everything actually works with a planar base, before worrying about ways to optimize. On Sun, Jan 23, 2022 at 12:58 PM Revar Desmera <revarbat@gmail.com> wrote: > > > On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar <sprabhakar2006@gmail.com> wrote: > >  > There may be some way to know all the points in the prism near the half circle with radius r, > If this could be done the processing time can be reduced > > > BOSL2 has a couple functions that may be useful: > > https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search > > https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search_tree > > -Revar > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
SP
Sanjeev Prabhakar
Mon, Jan 24, 2022 1:26 AM

Thank you
will check this

On Sun, 23 Jan 2022 at 23:28, Revar Desmera revarbat@gmail.com wrote:

On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar sprabhakar2006@gmail.com
wrote:


There may be some way to know all the points in the prism near the half
circle with radius r,
If this could be done the processing time can be reduced

BOSL2 has a couple functions that may be useful:

https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search

https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search_tree
https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search

-Revar


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

Thank you will check this On Sun, 23 Jan 2022 at 23:28, Revar Desmera <revarbat@gmail.com> wrote: > > On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar <sprabhakar2006@gmail.com> > wrote: > >  > There may be some way to know all the points in the prism near the half > circle with radius r, > If this could be done the processing time can be reduced > > > BOSL2 has a couple functions that may be useful: > > https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search > > > https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search_tree > <https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search> > > -Revar > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
SP
Sanjeev Prabhakar
Mon, Jan 24, 2022 1:33 AM

Thank you
On a plane surface the fillet will be smooth.
will think about how to find all the nearby parallelograms.
One way is to find all the intersections and choose the suitable one, but
that would be too slow (presumably).

On Sun, 23 Jan 2022 at 23:41, Adrian Mariano avm4@cornell.edu wrote:

I think the prisms are both defined by polygons, so determining
adjacency doesn't require working so hard.  You can probably check if
the intersection point lies in the quadrilateral, and if not,
construct the next quadrilateral from the prism's polygon, and then
continue.  Of course, the case of intersection with cylinder or sphere
can presumably be done directly.  But I still think that step 1 is to
make sure that everything actually works with a planar base, before
worrying about ways to optimize.

On Sun, Jan 23, 2022 at 12:58 PM Revar Desmera revarbat@gmail.com wrote:

On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar sprabhakar2006@gmail.com

wrote:


There may be some way to know all the points in the prism near the half

circle with radius r,

If this could be done the processing time can be reduced

BOSL2 has a couple functions that may be useful:

-Revar


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

Thank you On a plane surface the fillet will be smooth. will think about how to find all the nearby parallelograms. One way is to find all the intersections and choose the suitable one, but that would be too slow (presumably). On Sun, 23 Jan 2022 at 23:41, Adrian Mariano <avm4@cornell.edu> wrote: > I think the prisms are both defined by polygons, so determining > adjacency doesn't require working so hard. You can probably check if > the intersection point lies in the quadrilateral, and if not, > construct the next quadrilateral from the prism's polygon, and then > continue. Of course, the case of intersection with cylinder or sphere > can presumably be done directly. But I still think that step 1 is to > make sure that everything actually works with a planar base, before > worrying about ways to optimize. > > On Sun, Jan 23, 2022 at 12:58 PM Revar Desmera <revarbat@gmail.com> wrote: > > > > > > On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar <sprabhakar2006@gmail.com> > wrote: > > > >  > > There may be some way to know all the points in the prism near the half > circle with radius r, > > If this could be done the processing time can be reduced > > > > > > BOSL2 has a couple functions that may be useful: > > > > > https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search > > > > > https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search_tree > > > > -Revar > > _______________________________________________ > > 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
Mon, Jan 24, 2022 1:45 AM

With a prism connecting to a plane, we expect your method to produce a
smooth fillet.  But you need to confirm that it actually is working as
expected.

It seems like if you know the surface is a prism you should be able to
crawl across the prism from adjacent facet to adjacent facet, checking
the intersection of each, until you find one that intersects.  That
shouldn't be terribly slow.  If you're trying to connect to a sphere,
or arbitrary shape, it becomes more difficult to do something like
that.  You can build a data structure that encodes adjacency in the
polyhedron and then traverse it.  If you do the brute force approach,
you can filter out lots of the cases by testing if their coordinates
are near the line---that is, you don't have to do the full
intersection calculation.  Determining that a point is inside a
polygon adds a further computational burden, so it's definitely a
concern.

My thinking is that you should try easier cases.  Once you are certain
that it works to connect a prism to a plane, then try prism to
cylinder.  You know the formula for a cylinder so the intersection can
be computed exactly, and using the inner diameter of the cylinder
ensures that the fillet doesn't set above the approximate cylinder
anywhere.  Same thing for sphere---you know it's formula so you can
compute intersections exactly.

On Sun, Jan 23, 2022 at 8:34 PM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

Thank you
On a plane surface the fillet will be smooth.
will think about how to find all the nearby parallelograms.
One way is to find all the intersections and choose the suitable one, but that would be too slow (presumably).

On Sun, 23 Jan 2022 at 23:41, Adrian Mariano avm4@cornell.edu wrote:

I think the prisms are both defined by polygons, so determining
adjacency doesn't require working so hard.  You can probably check if
the intersection point lies in the quadrilateral, and if not,
construct the next quadrilateral from the prism's polygon, and then
continue.  Of course, the case of intersection with cylinder or sphere
can presumably be done directly.  But I still think that step 1 is to
make sure that everything actually works with a planar base, before
worrying about ways to optimize.

On Sun, Jan 23, 2022 at 12:58 PM Revar Desmera revarbat@gmail.com wrote:

On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar sprabhakar2006@gmail.com wrote:


There may be some way to know all the points in the prism near the half circle with radius r,
If this could be done the processing time can be reduced

BOSL2 has a couple functions that may be useful:

https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search

https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search_tree

-Revar


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

With a prism connecting to a plane, we expect your method to produce a smooth fillet. But you need to confirm that it actually is working as expected. It seems like if you know the surface is a prism you should be able to crawl across the prism from adjacent facet to adjacent facet, checking the intersection of each, until you find one that intersects. That shouldn't be terribly slow. If you're trying to connect to a sphere, or arbitrary shape, it becomes more difficult to do something like that. You can build a data structure that encodes adjacency in the polyhedron and then traverse it. If you do the brute force approach, you can filter out lots of the cases by testing if their coordinates are near the line---that is, you don't have to do the full intersection calculation. Determining that a point is inside a polygon adds a further computational burden, so it's definitely a concern. My thinking is that you should try easier cases. Once you are certain that it works to connect a prism to a plane, then try prism to cylinder. You know the formula for a cylinder so the intersection can be computed exactly, and using the inner diameter of the cylinder ensures that the fillet doesn't set above the approximate cylinder anywhere. Same thing for sphere---you know it's formula so you can compute intersections exactly. On Sun, Jan 23, 2022 at 8:34 PM Sanjeev Prabhakar <sprabhakar2006@gmail.com> wrote: > > Thank you > On a plane surface the fillet will be smooth. > will think about how to find all the nearby parallelograms. > One way is to find all the intersections and choose the suitable one, but that would be too slow (presumably). > > > On Sun, 23 Jan 2022 at 23:41, Adrian Mariano <avm4@cornell.edu> wrote: >> >> I think the prisms are both defined by polygons, so determining >> adjacency doesn't require working so hard. You can probably check if >> the intersection point lies in the quadrilateral, and if not, >> construct the next quadrilateral from the prism's polygon, and then >> continue. Of course, the case of intersection with cylinder or sphere >> can presumably be done directly. But I still think that step 1 is to >> make sure that everything actually works with a planar base, before >> worrying about ways to optimize. >> >> On Sun, Jan 23, 2022 at 12:58 PM Revar Desmera <revarbat@gmail.com> wrote: >> > >> > >> > On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar <sprabhakar2006@gmail.com> wrote: >> > >> >  >> > There may be some way to know all the points in the prism near the half circle with radius r, >> > If this could be done the processing time can be reduced >> > >> > >> > BOSL2 has a couple functions that may be useful: >> > >> > https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search >> > >> > https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search_tree >> > >> > -Revar >> > _______________________________________________ >> > 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
SP
Sanjeev Prabhakar
Mon, Jan 24, 2022 2:36 AM

Sure will check that once I have some time
You can replace the sphere with a cube and check as well.
Cube should be made of points , 4 points 2 layers and perpendicular to the
direction of u shape

On Mon, 24 Jan 2022, 07:16 Adrian Mariano, avm4@cornell.edu wrote:

With a prism connecting to a plane, we expect your method to produce a
smooth fillet.  But you need to confirm that it actually is working as
expected.

It seems like if you know the surface is a prism you should be able to
crawl across the prism from adjacent facet to adjacent facet, checking
the intersection of each, until you find one that intersects.  That
shouldn't be terribly slow.  If you're trying to connect to a sphere,
or arbitrary shape, it becomes more difficult to do something like
that.  You can build a data structure that encodes adjacency in the
polyhedron and then traverse it.  If you do the brute force approach,
you can filter out lots of the cases by testing if their coordinates
are near the line---that is, you don't have to do the full
intersection calculation.  Determining that a point is inside a
polygon adds a further computational burden, so it's definitely a
concern.

My thinking is that you should try easier cases.  Once you are certain
that it works to connect a prism to a plane, then try prism to
cylinder.  You know the formula for a cylinder so the intersection can
be computed exactly, and using the inner diameter of the cylinder
ensures that the fillet doesn't set above the approximate cylinder
anywhere.  Same thing for sphere---you know it's formula so you can
compute intersections exactly.

On Sun, Jan 23, 2022 at 8:34 PM Sanjeev Prabhakar
sprabhakar2006@gmail.com wrote:

Thank you
On a plane surface the fillet will be smooth.
will think about how to find all the nearby parallelograms.
One way is to find all the intersections and choose the suitable one,

but that would be too slow (presumably).

On Sun, 23 Jan 2022 at 23:41, Adrian Mariano avm4@cornell.edu wrote:

I think the prisms are both defined by polygons, so determining
adjacency doesn't require working so hard.  You can probably check if
the intersection point lies in the quadrilateral, and if not,
construct the next quadrilateral from the prism's polygon, and then
continue.  Of course, the case of intersection with cylinder or sphere
can presumably be done directly.  But I still think that step 1 is to
make sure that everything actually works with a planar base, before
worrying about ways to optimize.

On Sun, Jan 23, 2022 at 12:58 PM Revar Desmera revarbat@gmail.com

wrote:

On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar <


There may be some way to know all the points in the prism near the

half circle with radius r,

If this could be done the processing time can be reduced

BOSL2 has a couple functions that may be useful:

-Revar


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

Sure will check that once I have some time You can replace the sphere with a cube and check as well. Cube should be made of points , 4 points 2 layers and perpendicular to the direction of u shape On Mon, 24 Jan 2022, 07:16 Adrian Mariano, <avm4@cornell.edu> wrote: > With a prism connecting to a plane, we expect your method to produce a > smooth fillet. But you need to confirm that it actually is working as > expected. > > It seems like if you know the surface is a prism you should be able to > crawl across the prism from adjacent facet to adjacent facet, checking > the intersection of each, until you find one that intersects. That > shouldn't be terribly slow. If you're trying to connect to a sphere, > or arbitrary shape, it becomes more difficult to do something like > that. You can build a data structure that encodes adjacency in the > polyhedron and then traverse it. If you do the brute force approach, > you can filter out lots of the cases by testing if their coordinates > are near the line---that is, you don't have to do the full > intersection calculation. Determining that a point is inside a > polygon adds a further computational burden, so it's definitely a > concern. > > My thinking is that you should try easier cases. Once you are certain > that it works to connect a prism to a plane, then try prism to > cylinder. You know the formula for a cylinder so the intersection can > be computed exactly, and using the inner diameter of the cylinder > ensures that the fillet doesn't set above the approximate cylinder > anywhere. Same thing for sphere---you know it's formula so you can > compute intersections exactly. > > On Sun, Jan 23, 2022 at 8:34 PM Sanjeev Prabhakar > <sprabhakar2006@gmail.com> wrote: > > > > Thank you > > On a plane surface the fillet will be smooth. > > will think about how to find all the nearby parallelograms. > > One way is to find all the intersections and choose the suitable one, > but that would be too slow (presumably). > > > > > > On Sun, 23 Jan 2022 at 23:41, Adrian Mariano <avm4@cornell.edu> wrote: > >> > >> I think the prisms are both defined by polygons, so determining > >> adjacency doesn't require working so hard. You can probably check if > >> the intersection point lies in the quadrilateral, and if not, > >> construct the next quadrilateral from the prism's polygon, and then > >> continue. Of course, the case of intersection with cylinder or sphere > >> can presumably be done directly. But I still think that step 1 is to > >> make sure that everything actually works with a planar base, before > >> worrying about ways to optimize. > >> > >> On Sun, Jan 23, 2022 at 12:58 PM Revar Desmera <revarbat@gmail.com> > wrote: > >> > > >> > > >> > On Jan 23, 2022, at 9:13 AM, Sanjeev Prabhakar < > sprabhakar2006@gmail.com> wrote: > >> > > >> >  > >> > There may be some way to know all the points in the prism near the > half circle with radius r, > >> > If this could be done the processing time can be reduced > >> > > >> > > >> > BOSL2 has a couple functions that may be useful: > >> > > >> > > https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search > >> > > >> > > https://github.com/revarbat/BOSL2/wiki/vectors.scad#function-vector_search_tree > >> > > >> > -Revar > >> > _______________________________________________ > >> > 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 >