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
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)
- 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.
- 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
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
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
derivative. Once you obtain the intersection of the prism with the
cylinder, say, how do you use that intersection to build the fillet?
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
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)
- 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.
- with these 3 points, both fillet and chamfer can be drawn.
On Sun, 23 Jan 2022 at 19:01, Adrian Mariano avm4@cornell.edu
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
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
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
The jagged lines don't go away, exactly. They move somewhere
They seem to be related to having two intersection points very
to each other. I thought some about how to design a fillet
cylinder and arbitrary prism and it's not obvious to me how to do
Such a fillet would naturally be created by offsetting the prism
cross section, but it seems like it needs to offset different
in different directions if the fillet is supposed to have a
derivative. Once you obtain the intersection of the prism with
cylinder, say, how do you use that intersection to build the
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:
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:
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:
There may be some way to know all the points in the prism near the half
If this could be done the processing time can be reduced
BOSL2 has a couple functions that may be useful:
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).
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
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:
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
>