discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

new harmonic drive v2.xxxxxx

PB
Patrick Bruske
Fri, May 7, 2021 7:49 PM

I did this and it seems to have worked.

Clicked on line 40 to highlight. Then clicked on Edit -> Comment. Clicked
on line 41 to highlight. Clicked Edit -> Comment. Clicked Design -> Render

I can now see an image. Trying to edit dimensions now.

On Fri, May 7, 2021 at 3:40 PM Gene Heskett gheskett@shentel.net wrote:

On Friday 07 May 2021 14:33:05 lar3ry wrote:

You need a semicolon at the the end of this statement

rounded_path=round_corners(cut=0.5) // worx w/o this line
should be
rounded_path=round_corners(cut=0.5); // worx w/o this line

Made no difference. Same exact error.  Besides the semi-colon is the end
of the chain marker for all the other keywords. AIUI of course.

Gene Heskett wrote

I guess you will have to teach me how to use a library function from
BOSL2.
I am getting a render abort blaming line 29, but the red dot is on
line 28 for this code:

for($fr=[ 0: 6 : 359 ]){
rotate([0, 0, $fr]) translate([toothcirc, 0, 0])
// now lets try BOSL2. this comment Is line 28. has RED dot
rounded_path=round_corners(cut=0.5) // worx w/o this line
cylinder(d=toothdia, h=height, $fn=3, center=true);
// make tall triangle
};

Cheers, Gene Heskett

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.


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

I did this and it seems to have worked. Clicked on line 40 to highlight. Then clicked on Edit -> Comment. Clicked on line 41 to highlight. Clicked Edit -> Comment. Clicked Design -> Render I can now see an image. Trying to edit dimensions now. On Fri, May 7, 2021 at 3:40 PM Gene Heskett <gheskett@shentel.net> wrote: > On Friday 07 May 2021 14:33:05 lar3ry wrote: > > > You need a semicolon at the the end of this statement > > > > rounded_path=round_corners(cut=0.5) // worx w/o this line > > should be > > rounded_path=round_corners(cut=0.5); // worx w/o this line > > > Made no difference. Same exact error. Besides the semi-colon is the end > of the chain marker for all the other keywords. AIUI of course. > > > > > Gene Heskett wrote > > > > > I guess you will have to teach me how to use a library function from > > > BOSL2. > > > I am getting a render abort blaming line 29, but the red dot is on > > > line 28 for this code: > > > > > > for($fr=[ 0: 6 : 359 ]){ > > > rotate([0, 0, $fr]) translate([toothcirc, 0, 0]) > > > // now lets try BOSL2. this comment Is line 28. has RED dot > > > rounded_path=round_corners(cut=0.5) // worx w/o this line > > > cylinder(d=toothdia, h=height, $fn=3, center=true); > > > // make tall triangle > > > }; > > > > -- > > Sent from: http://forum.openscad.org/ > > > Cheers, Gene Heskett > -- > "There are four boxes to be used in defense of liberty: > soap, ballot, jury, and ammo. Please use in that order." > -Ed Howdershelt (Author) > If we desire respect for the law, we must first make the law respectable. > - Louis D. Brandeis > Genes Web page <http://geneslinuxbox.net:6309/gene> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
GH
Gene Heskett
Fri, May 7, 2021 8:16 PM

On Friday 07 May 2021 14:33:05 lar3ry wrote:

You need a semicolon at the the end of this statement

rounded_path=round_corners(cut=0.5) // worx w/o this line
should be
rounded_path=round_corners(cut=0.5); // worx w/o this line

in the docs, the shorthand example says:
rounded_path = round_corners(path, <method>, <radius=>, <cut=>, <joint=>,
<closed=>, <verbose=>);

and "path" is not surrounded by a set of <>, what does that mean?
Everything else is an option and has a default? I don't see where path
is defined by an example. A list of corners to round? Possibly in xyz
order?, also tried and failed.

Gene Heskett wrote

I guess you will have to teach me how to use a library function from
BOSL2.
I am getting a render abort blaming line 29, but the red dot is on
line 28 for this code:

for($fr=[ 0: 6 : 359 ]){
rotate([0, 0, $fr]) translate([toothcirc, 0, 0])
// now lets try BOSL2. this comment Is line 28. has RED dot
rounded_path=round_corners(cut=0.5) // worx w/o this line
cylinder(d=toothdia, h=height, $fn=3, center=true);
// make tall triangle
};

Cheers, Gene Heskett

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.

On Friday 07 May 2021 14:33:05 lar3ry wrote: > You need a semicolon at the the end of this statement > > rounded_path=round_corners(cut=0.5) // worx w/o this line > should be > rounded_path=round_corners(cut=0.5); // worx w/o this line > in the docs, the shorthand example says: rounded_path = round_corners(path, <method>, <radius=>, <cut=>, <joint=>, <closed=>, <verbose=>); and "path" is not surrounded by a set of <>, what does that mean? Everything else is an option and has a default? I don't see where path is defined by an example. A list of corners to round? Possibly in xyz order?, also tried and failed. > > Gene Heskett wrote > > > I guess you will have to teach me how to use a library function from > > BOSL2. > > I am getting a render abort blaming line 29, but the red dot is on > > line 28 for this code: > > > > for($fr=[ 0: 6 : 359 ]){ > > rotate([0, 0, $fr]) translate([toothcirc, 0, 0]) > > // now lets try BOSL2. this comment Is line 28. has RED dot > > rounded_path=round_corners(cut=0.5) // worx w/o this line > > cylinder(d=toothdia, h=height, $fn=3, center=true); > > // make tall triangle > > }; > > -- > Sent from: http://forum.openscad.org/ Cheers, Gene Heskett -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) If we desire respect for the law, we must first make the law respectable. - Louis D. Brandeis Genes Web page <http://geneslinuxbox.net:6309/gene>
A
adrianv
Fri, May 7, 2021 8:42 PM

Yes, the argument not in <> is required.  Arguments in <> are optional,
though in the case of round_corners you have to give one of radius, cut or
joint to tell it how much to round.

Note that because OpenSCAD doesn't give user code access to geometry, user
code (libraries) have to work differently, meaning you have to supply a list
of points you want to round, as shown in the examples in the wiki. Path is
the first argument to round_corners, so if you write
round_corners([[3,4],[5,6],...],...) that gives the path.

include <BOSL2/std.scad>
include <BOSL2/rounding.scad>
$fn=36;
shape = [[0,0], [10,0], [15,12], [6,6], [6, 12], [-3,7]];  // List of points
here !!!
polygon(round_corners(shape, cut=1));  // shape is the first arg to round
corners, so it is the "path"

I think that the person who suggested BOSL2 thought you should use it for
gears.scad which has implementations of gears already done.

Gene Heskett wrote

On Friday 07 May 2021 14:33:05 lar3ry wrote:

You need a semicolon at the the end of this statement

rounded_path=round_corners(cut=0.5) // worx w/o this line
should be
rounded_path=round_corners(cut=0.5); // worx w/o this line

in the docs, the shorthand example says:
rounded_path = round_corners(path,
<method>
, <radius=>, <cut=>, <joint=>,
<closed=>, <verbose=>);

and "path" is not surrounded by a set of <>, what does that mean?
Everything else is an option and has a default? I don't see where path
is defined by an example. A list of corners to round? Possibly in xyz
order?, also tried and failed.

Gene Heskett wrote

I guess you will have to teach me how to use a library function from
BOSL2.
I am getting a render abort blaming line 29, but the red dot is on
line 28 for this code:

for($fr=[ 0: 6 : 359 ]){
rotate([0, 0, $fr]) translate([toothcirc, 0, 0])
// now lets try BOSL2. this comment Is line 28. has RED dot
rounded_path=round_corners(cut=0.5) // worx w/o this line
cylinder(d=toothdia, h=height, $fn=3, center=true);
// make tall triangle
};

Cheers, Gene Heskett

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.

  • Louis D. Brandeis
    Genes Web page <http://geneslinuxbox.net:6309/gene>

OpenSCAD mailing list
To unsubscribe send an email to

discuss-leave@.openscad

Yes, the argument not in <> is required. Arguments in <> are optional, though in the case of round_corners you have to give one of radius, cut or joint to tell it how much to round. Note that because OpenSCAD doesn't give user code access to geometry, user code (libraries) have to work differently, meaning you have to supply a list of points you want to round, as shown in the examples in the wiki. Path is the first argument to round_corners, so if you write round_corners([[3,4],[5,6],...],...) that gives the path. include <BOSL2/std.scad> include <BOSL2/rounding.scad> $fn=36; shape = [[0,0], [10,0], [15,12], [6,6], [6, 12], [-3,7]]; // List of points here !!! polygon(round_corners(shape, cut=1)); // shape is the first arg to round corners, so it is the "path" I think that the person who suggested BOSL2 thought you should use it for gears.scad which has implementations of gears already done. Gene Heskett wrote > On Friday 07 May 2021 14:33:05 lar3ry wrote: > >> You need a semicolon at the the end of this statement >> >> rounded_path=round_corners(cut=0.5) // worx w/o this line >> should be >> rounded_path=round_corners(cut=0.5); // worx w/o this line >> > in the docs, the shorthand example says: > rounded_path = round_corners(path, > <method> > , &lt;radius=&gt;, &lt;cut=&gt;, &lt;joint=&gt;, > &lt;closed=&gt;, &lt;verbose=&gt;); > > and "path" is not surrounded by a set of <>, what does that mean? > Everything else is an option and has a default? I don't see where path > is defined by an example. A list of corners to round? Possibly in xyz > order?, also tried and failed. >> >> Gene Heskett wrote >> >> > I guess you will have to teach me how to use a library function from >> > BOSL2. >> > I am getting a render abort blaming line 29, but the red dot is on >> > line 28 for this code: >> > >> > for($fr=[ 0: 6 : 359 ]){ >> > rotate([0, 0, $fr]) translate([toothcirc, 0, 0]) >> > // now lets try BOSL2. this comment Is line 28. has RED dot >> > rounded_path=round_corners(cut=0.5) // worx w/o this line >> > cylinder(d=toothdia, h=height, $fn=3, center=true); >> > // make tall triangle >> > }; >> >> -- >> Sent from: http://forum.openscad.org/ > > > Cheers, Gene Heskett > -- > "There are four boxes to be used in defense of liberty: > soap, ballot, jury, and ammo. Please use in that order." > -Ed Howdershelt (Author) > If we desire respect for the law, we must first make the law respectable. > - Louis D. Brandeis > Genes Web page &lt;http://geneslinuxbox.net:6309/gene&gt; > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to > discuss-leave@.openscad -- Sent from: http://forum.openscad.org/
GH
Gene Heskett
Fri, May 7, 2021 11:53 PM

On Friday 07 May 2021 16:42:00 adrianv wrote:

Yes, the argument not in <> is required.  Arguments in <> are
optional, though in the case of round_corners you have to give one of
radius, cut or joint to tell it how much to round.

Note that because OpenSCAD doesn't give user code access to geometry,
user code (libraries) have to work differently, meaning you have to
supply a list of points you want to round, as shown in the examples in
the wiki. Path is the first argument to round_corners, so if you write
round_corners([[3,4],[5,6],...],...) that gives the path.

include <BOSL2/std.scad>
include <BOSL2/rounding.scad>
$fn=36;
shape = [[0,0], [10,0], [15,12], [6,6], [6, 12], [-3,7]];  // List of
points here !!!
polygon(round_corners(shape, cut=1));  // shape is the first arg to
round corners, so it is the "path"

Aha!

That clarifies that but leave me learning how to spec a polygon.
Is there a tut for that?

I think that the person who suggested BOSL2 thought you should use it
for gears.scad which has implementations of gears already done.

but gears has nothing for splines that I could find.

Making lots of duff plastic but getting closer all the time. :)

Thank you folks. Take care and stay well now.

Gene Heskett wrote

On Friday 07 May 2021 14:33:05 lar3ry wrote:

You need a semicolon at the the end of this statement

rounded_path=round_corners(cut=0.5) // worx w/o this line
should be
rounded_path=round_corners(cut=0.5); // worx w/o this line

in the docs, the shorthand example says:
rounded_path = round_corners(path,
<method>
, <radius=>, <cut=>, <joint=>,
<closed=>, <verbose=>);

and "path" is not surrounded by a set of <>, what does that mean?
Everything else is an option and has a default? I don't see where
path is defined by an example. A list of corners to round? Possibly
in xyz order?, also tried and failed.

Gene Heskett wrote

I guess you will have to teach me how to use a library function
from BOSL2.
I am getting a render abort blaming line 29, but the red dot is
on line 28 for this code:

for($fr=[ 0: 6 : 359 ]){
rotate([0, 0, $fr]) translate([toothcirc, 0, 0])
// now lets try BOSL2. this comment Is line 28. has RED dot
rounded_path=round_corners(cut=0.5) // worx w/o this line
cylinder(d=toothdia, h=height, $fn=3, center=true);
// make tall triangle
};

Cheers, Gene Heskett

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law
respectable. - Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>


OpenSCAD mailing list
To unsubscribe send an email to

discuss-leave@.openscad

Cheers, Gene Heskett

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.

On Friday 07 May 2021 16:42:00 adrianv wrote: > Yes, the argument not in <> is required. Arguments in <> are > optional, though in the case of round_corners you have to give one of > radius, cut or joint to tell it how much to round. > > Note that because OpenSCAD doesn't give user code access to geometry, > user code (libraries) have to work differently, meaning you have to > supply a list of points you want to round, as shown in the examples in > the wiki. Path is the first argument to round_corners, so if you write > round_corners([[3,4],[5,6],...],...) that gives the path. > > include <BOSL2/std.scad> > include <BOSL2/rounding.scad> > $fn=36; > shape = [[0,0], [10,0], [15,12], [6,6], [6, 12], [-3,7]]; // List of > points here !!! > polygon(round_corners(shape, cut=1)); // shape is the first arg to > round corners, so it is the "path" Aha! That clarifies that but leave me learning how to spec a polygon. Is there a tut for that? > I think that the person who suggested BOSL2 thought you should use it > for gears.scad which has implementations of gears already done. but gears has nothing for splines that I could find. Making lots of duff plastic but getting closer all the time. :) > Thank you folks. Take care and stay well now. > Gene Heskett wrote > > > On Friday 07 May 2021 14:33:05 lar3ry wrote: > >> You need a semicolon at the the end of this statement > >> > >> rounded_path=round_corners(cut=0.5) // worx w/o this line > >> should be > >> rounded_path=round_corners(cut=0.5); // worx w/o this line > > > > in the docs, the shorthand example says: > > rounded_path = round_corners(path, > > <method> > > , &lt;radius=&gt;, &lt;cut=&gt;, &lt;joint=&gt;, > > &lt;closed=&gt;, &lt;verbose=&gt;); > > > > and "path" is not surrounded by a set of <>, what does that mean? > > Everything else is an option and has a default? I don't see where > > path is defined by an example. A list of corners to round? Possibly > > in xyz order?, also tried and failed. > > > >> Gene Heskett wrote > >> > >> > I guess you will have to teach me how to use a library function > >> > from BOSL2. > >> > I am getting a render abort blaming line 29, but the red dot is > >> > on line 28 for this code: > >> > > >> > for($fr=[ 0: 6 : 359 ]){ > >> > rotate([0, 0, $fr]) translate([toothcirc, 0, 0]) > >> > // now lets try BOSL2. this comment Is line 28. has RED dot > >> > rounded_path=round_corners(cut=0.5) // worx w/o this line > >> > cylinder(d=toothdia, h=height, $fn=3, center=true); > >> > // make tall triangle > >> > }; > >> > >> -- > >> Sent from: http://forum.openscad.org/ > > > > Cheers, Gene Heskett > > -- > > "There are four boxes to be used in defense of liberty: > > soap, ballot, jury, and ammo. Please use in that order." > > -Ed Howdershelt (Author) > > If we desire respect for the law, we must first make the law > > respectable. - Louis D. Brandeis > > Genes Web page &lt;http://geneslinuxbox.net:6309/gene&gt; > > _______________________________________________ > > OpenSCAD mailing list > > To unsubscribe send an email to > > > > discuss-leave@.openscad > > -- > Sent from: http://forum.openscad.org/ Cheers, Gene Heskett -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) If we desire respect for the law, we must first make the law respectable. - Louis D. Brandeis Genes Web page <http://geneslinuxbox.net:6309/gene>
A
adrianv
Sat, May 8, 2021 2:52 AM

A polygon is just a list of [x,y] points that gives its vertices.  The input
to the "polygon" module is a polygon.

There's plenty of ways to come up with the specification.  You can just work
out the coordinates and list them, or calculate them, or use the BOSL2
turtle() function, or use primitives like BOSL2 rect() which will give you a
list of points if you call it as a function.  I think gears.scad has a tooth
profile, but I don't know if it applies to splines.  (I don't really know
anything about gears.)

Gene Heskett wrote

On Friday 07 May 2021 16:42:00 adrianv wrote:

Yes, the argument not in <> is required.  Arguments in <> are
optional, though in the case of round_corners you have to give one of
radius, cut or joint to tell it how much to round.

Note that because OpenSCAD doesn't give user code access to geometry,
user code (libraries) have to work differently, meaning you have to
supply a list of points you want to round, as shown in the examples in
the wiki. Path is the first argument to round_corners, so if you write
round_corners([[3,4],[5,6],...],...) that gives the path.

include <BOSL2/std.scad>
include <BOSL2/rounding.scad>
$fn=36;
shape = [[0,0], [10,0], [15,12], [6,6], [6, 12], [-3,7]];  // List of
points here !!!
polygon(round_corners(shape, cut=1));  // shape is the first arg to
round corners, so it is the "path"

Aha!

That clarifies that but leave me learning how to spec a polygon.
Is there a tut for that?

A polygon is just a list of [x,y] points that gives its vertices. The input to the "polygon" module is a polygon. There's plenty of ways to come up with the specification. You can just work out the coordinates and list them, or calculate them, or use the BOSL2 turtle() function, or use primitives like BOSL2 rect() which will give you a list of points if you call it as a function. I think gears.scad has a tooth profile, but I don't know if it applies to splines. (I don't really know anything about gears.) Gene Heskett wrote > On Friday 07 May 2021 16:42:00 adrianv wrote: > >> Yes, the argument not in <> is required. Arguments in <> are >> optional, though in the case of round_corners you have to give one of >> radius, cut or joint to tell it how much to round. >> >> Note that because OpenSCAD doesn't give user code access to geometry, >> user code (libraries) have to work differently, meaning you have to >> supply a list of points you want to round, as shown in the examples in >> the wiki. Path is the first argument to round_corners, so if you write >> round_corners([[3,4],[5,6],...],...) that gives the path. >> >> include &lt;BOSL2/std.scad&gt; >> include &lt;BOSL2/rounding.scad&gt; >> $fn=36; >> shape = [[0,0], [10,0], [15,12], [6,6], [6, 12], [-3,7]]; // List of >> points here !!! >> polygon(round_corners(shape, cut=1)); // shape is the first arg to >> round corners, so it is the "path" > > Aha! > > That clarifies that but leave me learning how to spec a polygon. > Is there a tut for that? -- Sent from: http://forum.openscad.org/
GH
Gene Heskett
Sat, May 8, 2021 4:47 AM

On Friday 07 May 2021 22:52:00 adrianv wrote:

A polygon is just a list of [x,y] points that gives its vertices.  The
input to the "polygon" module is a polygon.

There's plenty of ways to come up with the specification.  You can
just work out the coordinates and list them, or calculate them, or use
the BOSL2 turtle() function, or use primitives like BOSL2 rect() which
will give you a list of points if you call it as a function.  I think
gears.scad has a tooth profile, but I don't know if it applies to
splines.  (I don't really know anything about gears.)

Well, I have a working, parametric demo of that in the code Michael M.
sent me. So it would be easy to do, and I'll learn about it at the same
time.

And, I occasionally let my imagination out to play without a chaperone,
and the thinking goes something like this:

  1. Assuming a 60 spline flex "gear" with the teeth facing out at the
    maximum outward flex, those teeth at that point, will have a tip spacing
    slightly farther apart physically that at the root of the teeth. This
    because the splines are rotated 6 degrees from the next door neighbor.

2 this spline is locked to a stationary 60 "tooth" whose splines are
reversed, pointing inward by rotating the identical tooth 180 degrees
and this spline is half as tall as the driven, flexing piece.

  1. Covering the other half of that width is a moving spline coupled to
    the output shaft, usally with 2 more "teeth". So the output is then
    rotated 1/30th of a turn for every full turn of the central elipsis
    driveing the floating flex gear.

But it strikes me that the wider spacing of a 58 tooth for the second
spline, would more closely match the stretched 60 tooth AT THE POINT OF
ENGAGEMENT, than would a 62 tooth. It would also reverse the output
motion, and probably make the gear ratio 29/1, both of which are, in
stepper driven stuff easy to fix in the wiring or software.

The end result being that I will make both a 62 tooth, and a 58 tooth,
and see which one fits better. Properly lubed, it should also last
longer, depending on the loading might even last as long as the $2000
steel versions. Loading for me would be resisting the cutting forces of
a quarter inch solid carbide milling tool for long enough to make a
miniature hypoid gear rear end for an rc race car. That will require it
to be in motion while resisting the cutting forces exerted by the
cutting tool as it works.

Thats the plan anyway. ;-)

Take care and stay well everybody.

Gene Heskett wrote

On Friday 07 May 2021 16:42:00 adrianv wrote:

Yes, the argument not in <> is required.  Arguments in <> are
optional, though in the case of round_corners you have to give one
of radius, cut or joint to tell it how much to round.

And experiment I'll undertake in the next days.

Note that because OpenSCAD doesn't give user code access to
geometry, user code (libraries) have to work differently, meaning
you have to supply a list of points you want to round, as shown in
the examples in the wiki. Path is the first argument to
round_corners, so if you write round_corners([[3,4],[5,6],...],...)
that gives the path.

include <BOSL2/std.scad>
include <BOSL2/rounding.scad>
$fn=36;
shape = [[0,0], [10,0], [15,12], [6,6], [6, 12], [-3,7]];  // List
of points here !!!
polygon(round_corners(shape, cut=1));  // shape is the first arg
to round corners, so it is the "path"

Aha!

That clarifies that but leave me learning how to spec a polygon.
Is there a tut for that?

Michael M.'s code seems to be exactly that, now that I understand what
going on.

Cheers, Gene Heskett

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.

On Friday 07 May 2021 22:52:00 adrianv wrote: > A polygon is just a list of [x,y] points that gives its vertices. The > input to the "polygon" module is a polygon. > > There's plenty of ways to come up with the specification. You can > just work out the coordinates and list them, or calculate them, or use > the BOSL2 turtle() function, or use primitives like BOSL2 rect() which > will give you a list of points if you call it as a function. I think > gears.scad has a tooth profile, but I don't know if it applies to > splines. (I don't really know anything about gears.) > Well, I have a working, parametric demo of that in the code Michael M. sent me. So it would be easy to do, and I'll learn about it at the same time. And, I occasionally let my imagination out to play without a chaperone, and the thinking goes something like this: 1. Assuming a 60 spline flex "gear" with the teeth facing out at the maximum outward flex, those teeth at that point, will have a tip spacing slightly farther apart physically that at the root of the teeth. This because the splines are rotated 6 degrees from the next door neighbor. 2 this spline is locked to a stationary 60 "tooth" whose splines are reversed, pointing inward by rotating the identical tooth 180 degrees and this spline is half as tall as the driven, flexing piece. 3. Covering the other half of that width is a moving spline coupled to the output shaft, usally with 2 more "teeth". So the output is then rotated 1/30th of a turn for every full turn of the central elipsis driveing the floating flex gear. But it strikes me that the wider spacing of a 58 tooth for the second spline, would more closely match the stretched 60 tooth AT THE POINT OF ENGAGEMENT, than would a 62 tooth. It would also reverse the output motion, and probably make the gear ratio 29/1, both of which are, in stepper driven stuff easy to fix in the wiring or software. The end result being that I will make both a 62 tooth, and a 58 tooth, and see which one fits better. Properly lubed, it should also last longer, depending on the loading might even last as long as the $2000 steel versions. Loading for me would be resisting the cutting forces of a quarter inch solid carbide milling tool for long enough to make a miniature hypoid gear rear end for an rc race car. That will require it to be in motion while resisting the cutting forces exerted by the cutting tool as it works. Thats the plan anyway. ;-) Take care and stay well everybody. > > Gene Heskett wrote > > > On Friday 07 May 2021 16:42:00 adrianv wrote: > >> Yes, the argument not in <> is required. Arguments in <> are > >> optional, though in the case of round_corners you have to give one > >> of radius, cut or joint to tell it how much to round. And experiment I'll undertake in the next days. > >> Note that because OpenSCAD doesn't give user code access to > >> geometry, user code (libraries) have to work differently, meaning > >> you have to supply a list of points you want to round, as shown in > >> the examples in the wiki. Path is the first argument to > >> round_corners, so if you write round_corners([[3,4],[5,6],...],...) > >> that gives the path. > >> > >> include &lt;BOSL2/std.scad&gt; > >> include &lt;BOSL2/rounding.scad&gt; > >> $fn=36; > >> shape = [[0,0], [10,0], [15,12], [6,6], [6, 12], [-3,7]]; // List > >> of points here !!! > >> polygon(round_corners(shape, cut=1)); // shape is the first arg > >> to round corners, so it is the "path" > > > > Aha! > > > > That clarifies that but leave me learning how to spec a polygon. > > Is there a tut for that? Michael M.'s code seems to be exactly that, now that I understand what going on. > -- > Sent from: http://forum.openscad.org/ Cheers, Gene Heskett -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) If we desire respect for the law, we must first make the law respectable. - Louis D. Brandeis Genes Web page <http://geneslinuxbox.net:6309/gene>
GH
Gene Heskett
Sat, May 8, 2021 12:23 PM

On Saturday 08 May 2021 00:47:33 Gene Heskett wrote:

On Friday 07 May 2021 22:52:00 adrianv wrote:

A polygon is just a list of [x,y] points that gives its vertices.
The input to the "polygon" module is a polygon.

There's plenty of ways to come up with the specification.  You can
just work out the coordinates and list them, or calculate them, or
use the BOSL2 turtle() function, or use primitives like BOSL2 rect()
which will give you a list of points if you call it as a function.
I think gears.scad has a tooth profile, but I don't know if it
applies to splines.  (I don't really know anything about gears.)

Well, I have a working, parametric demo of that in the code Michael M.
sent me. So it would be easy to do, and I'll learn about it at the
same time.

And, I occasionally let my imagination out to play without a
chaperone, and the thinking goes something like this:

  1. Assuming a 60 spline flex "gear" with the teeth facing out at the
    maximum outward flex, those teeth at that point, will have a tip
    spacing slightly farther apart physically that at the root of the
    teeth. This because the splines are rotated 6 degrees from the next
    door neighbor.

2 this spline is locked to a stationary 60 "tooth" whose splines are
reversed, pointing inward by rotating the identical tooth 180 degrees
and this spline is half as tall as the driven, flexing piece.

  1. Covering the other half of that width is a moving spline coupled to
    the output shaft, usally with 2 more "teeth". So the output is then
    rotated 1/30th of a turn for every full turn of the central elipsis
    driveing the floating flex gear.

But it strikes me that the wider spacing of a 58 tooth for the second
spline, would more closely match the stretched 60 tooth AT THE POINT
OF ENGAGEMENT, than would a 62 tooth. It would also reverse the output
motion, and probably make the gear ratio 29/1, both of which are, in
stepper driven stuff easy to fix in the wiring or software.

The end result being that I will make both a 62 tooth, and a 58 tooth,
and see which one fits better. Properly lubed, it should also last
longer, depending on the loading might even last as long as the $2000
steel versions. Loading for me would be resisting the cutting forces
of a quarter inch solid carbide milling tool for long enough to make a
miniature hypoid gear rear end for an rc race car. That will require
it to be in motion while resisting the cutting forces exerted by the
cutting tool as it works.

Thats the plan anyway. ;-)

And in answer to that question, its not no, but hell no. The 58 tooth is
enough wider spaced that it rides quite high on the center pieces
splines at 15 to 25 degrees away from the peak of the elipses push, so
that idea is dead in the water. So the only data I got from version A
was that the outer smooth surface, sitting in the output ring, is
finally the right size for a good press fit in the output ring.

Onward we march.

Take care and stay well everybody.

Cheers, Gene Heskett

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.

On Saturday 08 May 2021 00:47:33 Gene Heskett wrote: > On Friday 07 May 2021 22:52:00 adrianv wrote: > > A polygon is just a list of [x,y] points that gives its vertices. > > The input to the "polygon" module is a polygon. > > > > There's plenty of ways to come up with the specification. You can > > just work out the coordinates and list them, or calculate them, or > > use the BOSL2 turtle() function, or use primitives like BOSL2 rect() > > which will give you a list of points if you call it as a function. > > I think gears.scad has a tooth profile, but I don't know if it > > applies to splines. (I don't really know anything about gears.) > > Well, I have a working, parametric demo of that in the code Michael M. > sent me. So it would be easy to do, and I'll learn about it at the > same time. > > And, I occasionally let my imagination out to play without a > chaperone, and the thinking goes something like this: > > 1. Assuming a 60 spline flex "gear" with the teeth facing out at the > maximum outward flex, those teeth at that point, will have a tip > spacing slightly farther apart physically that at the root of the > teeth. This because the splines are rotated 6 degrees from the next > door neighbor. > > 2 this spline is locked to a stationary 60 "tooth" whose splines are > reversed, pointing inward by rotating the identical tooth 180 degrees > and this spline is half as tall as the driven, flexing piece. > > 3. Covering the other half of that width is a moving spline coupled to > the output shaft, usally with 2 more "teeth". So the output is then > rotated 1/30th of a turn for every full turn of the central elipsis > driveing the floating flex gear. > > But it strikes me that the wider spacing of a 58 tooth for the second > spline, would more closely match the stretched 60 tooth AT THE POINT > OF ENGAGEMENT, than would a 62 tooth. It would also reverse the output > motion, and probably make the gear ratio 29/1, both of which are, in > stepper driven stuff easy to fix in the wiring or software. > > The end result being that I will make both a 62 tooth, and a 58 tooth, > and see which one fits better. Properly lubed, it should also last > longer, depending on the loading might even last as long as the $2000 > steel versions. Loading for me would be resisting the cutting forces > of a quarter inch solid carbide milling tool for long enough to make a > miniature hypoid gear rear end for an rc race car. That will require > it to be in motion while resisting the cutting forces exerted by the > cutting tool as it works. > > Thats the plan anyway. ;-) And in answer to that question, its not no, but hell no. The 58 tooth is enough wider spaced that it rides quite high on the center pieces splines at 15 to 25 degrees away from the peak of the elipses push, so that idea is dead in the water. So the only data I got from version A was that the outer smooth surface, sitting in the output ring, is finally the right size for a good press fit in the output ring. Onward we march. Take care and stay well everybody. Cheers, Gene Heskett -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) If we desire respect for the law, we must first make the law respectable. - Louis D. Brandeis Genes Web page <http://geneslinuxbox.net:6309/gene>