discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Tentative basic documentation for gear()

T
TimM
Sun, Jul 12, 2015 11:22 AM

I am a hobbyist wanting to print gears for gizmos.  The involute_gears
library is fantastic, but for someone with no engineering background the
calling parameters are cryptic.  In searching forums for hints I found MANY
people in the same boat, and even a few people using it professionally
without understanding what they were specifying.  So I put what I've learned
into a short text document.  My hope is that an expert can review what I
wrote for correctness and then, after any needed edits, a moderator can post
it somewhere for use by other hapless newbies.  I think I uploaded the text
file correctly, but this forum format is new to me, so please let me know if
I have to do something differently.

InvoluteGearsDoc.txt
http://forum.openscad.org/file/n13121/InvoluteGearsDoc.txt

--
View this message in context: http://forum.openscad.org/Tentative-basic-documentation-for-gear-tp13121.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

I am a hobbyist wanting to print gears for gizmos. The involute_gears library is fantastic, but for someone with no engineering background the calling parameters are cryptic. In searching forums for hints I found MANY people in the same boat, and even a few people using it professionally without understanding what they were specifying. So I put what I've learned into a short text document. My hope is that an expert can review what I wrote for correctness and then, after any needed edits, a moderator can post it somewhere for use by other hapless newbies. I think I uploaded the text file correctly, but this forum format is new to me, so please let me know if I have to do something differently. ------------------------------------ InvoluteGearsDoc.txt <http://forum.openscad.org/file/n13121/InvoluteGearsDoc.txt> -- View this message in context: http://forum.openscad.org/Tentative-basic-documentation-for-gear-tp13121.html Sent from the OpenSCAD mailing list archive at Nabble.com.
DM
doug moen
Sun, Jul 12, 2015 12:54 PM

Thanks for writing this documentation, it was educational for me.

One comment so far:

   Standard practice is circular_pitch = pi / diametral_pitch (See

the next parameter).
But for murky historical reasons,  the gear() code defines
circular_pitch = 180 / diametral_pitch.

Note that pi radians == 180 degrees, and that OpenSCAD uses degrees,
instead of radians, in its trigonometric functions.

I think this documentation should be placed in involute_gears.scad itself.
The source code on github is
https://github.com/openscad/MCAD/blob/master/involute_gears.scad

On 12 July 2015 at 07:22, TimM TimothyMasters@compuserve.com wrote:

I am a hobbyist wanting to print gears for gizmos.  The involute_gears
library is fantastic, but for someone with no engineering background the
calling parameters are cryptic.  In searching forums for hints I found MANY
people in the same boat, and even a few people using it professionally
without understanding what they were specifying.  So I put what I've
learned
into a short text document.  My hope is that an expert can review what I
wrote for correctness and then, after any needed edits, a moderator can
post
it somewhere for use by other hapless newbies.  I think I uploaded the text
file correctly, but this forum format is new to me, so please let me know
if
I have to do something differently.

InvoluteGearsDoc.txt
http://forum.openscad.org/file/n13121/InvoluteGearsDoc.txt

--
View this message in context:
http://forum.openscad.org/Tentative-basic-documentation-for-gear-tp13121.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Thanks for writing this documentation, it was educational for me. One comment so far: Standard practice is circular_pitch = pi / diametral_pitch (See the next parameter). But for murky historical reasons, the gear() code defines circular_pitch = 180 / diametral_pitch. Note that pi radians == 180 degrees, and that OpenSCAD uses degrees, instead of radians, in its trigonometric functions. I think this documentation should be placed in involute_gears.scad itself. The source code on github is https://github.com/openscad/MCAD/blob/master/involute_gears.scad On 12 July 2015 at 07:22, TimM <TimothyMasters@compuserve.com> wrote: > I am a hobbyist wanting to print gears for gizmos. The involute_gears > library is fantastic, but for someone with no engineering background the > calling parameters are cryptic. In searching forums for hints I found MANY > people in the same boat, and even a few people using it professionally > without understanding what they were specifying. So I put what I've > learned > into a short text document. My hope is that an expert can review what I > wrote for correctness and then, after any needed edits, a moderator can > post > it somewhere for use by other hapless newbies. I think I uploaded the text > file correctly, but this forum format is new to me, so please let me know > if > I have to do something differently. > ------------------------------------ > > InvoluteGearsDoc.txt > <http://forum.openscad.org/file/n13121/InvoluteGearsDoc.txt> > > > > -- > View this message in context: > http://forum.openscad.org/Tentative-basic-documentation-for-gear-tp13121.html > Sent from the OpenSCAD mailing list archive at Nabble.com. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > >
JD
Jerry Davis
Sun, Jul 12, 2015 12:57 PM

great doc. I wonder if it could be put in a libre office document, with
pictures to show what the various parts are; visuals are so much more
effective.

thanks.
jerry

Jerry

--
Extra Ham Operator: K7AZJ
Registered Linux User: 275424
Raspberry Pi and Arduino developer

The most exciting phrase to hear in science - the one that heralds new
discoveries - is not "Eureka!" but "That's funny...".
- Isaac. Asimov

I
*f you give someone a program, you will frustrate them for a day; if you
teach them how to program, you will frustrate them for a lifetime. *-
Anonymous

If writing good code requires very little comments, then writing really
excellent code requires no comments at all!
- Ken Thompson

On Sun, Jul 12, 2015 at 7:54 AM, doug moen doug@moens.org wrote:

Thanks for writing this documentation, it was educational for me.

One comment so far:

   Standard practice is circular_pitch = pi / diametral_pitch (See the next parameter).
   But for murky historical reasons,  the gear() code defines circular_pitch = 180 / diametral_pitch.

Note that pi radians == 180 degrees, and that OpenSCAD uses degrees,
instead of radians, in its trigonometric functions.

I think this documentation should be placed in involute_gears.scad itself.
The source code on github is
https://github.com/openscad/MCAD/blob/master/involute_gears.scad

On 12 July 2015 at 07:22, TimM TimothyMasters@compuserve.com wrote:

I am a hobbyist wanting to print gears for gizmos.  The involute_gears
library is fantastic, but for someone with no engineering background the
calling parameters are cryptic.  In searching forums for hints I found
MANY
people in the same boat, and even a few people using it professionally
without understanding what they were specifying.  So I put what I've
learned
into a short text document.  My hope is that an expert can review what I
wrote for correctness and then, after any needed edits, a moderator can
post
it somewhere for use by other hapless newbies.  I think I uploaded the
text
file correctly, but this forum format is new to me, so please let me know
if
I have to do something differently.

InvoluteGearsDoc.txt
http://forum.openscad.org/file/n13121/InvoluteGearsDoc.txt

--
View this message in context:
http://forum.openscad.org/Tentative-basic-documentation-for-gear-tp13121.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

great doc. I wonder if it could be put in a libre office document, with pictures to show what the various parts are; visuals are so much more effective. thanks. jerry Jerry -- Extra Ham Operator: K7AZJ Registered Linux User: 275424 Raspberry Pi and Arduino developer *The most exciting phrase to hear in science - the one that heralds new discoveries - is not "Eureka!" but "That's funny...".*- Isaac. Asimov *I* *f you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime. *- Anonymous *If writing good code requires very little comments, then writing really excellent code requires no comments at all!*- Ken Thompson On Sun, Jul 12, 2015 at 7:54 AM, doug moen <doug@moens.org> wrote: > Thanks for writing this documentation, it was educational for me. > > One comment so far: > > Standard practice is circular_pitch = pi / diametral_pitch (See the next parameter). > But for murky historical reasons, the gear() code defines circular_pitch = 180 / diametral_pitch. > > Note that pi radians == 180 degrees, and that OpenSCAD uses degrees, > instead of radians, in its trigonometric functions. > > I think this documentation should be placed in involute_gears.scad itself. > The source code on github is > https://github.com/openscad/MCAD/blob/master/involute_gears.scad > > On 12 July 2015 at 07:22, TimM <TimothyMasters@compuserve.com> wrote: > >> I am a hobbyist wanting to print gears for gizmos. The involute_gears >> library is fantastic, but for someone with no engineering background the >> calling parameters are cryptic. In searching forums for hints I found >> MANY >> people in the same boat, and even a few people using it professionally >> without understanding what they were specifying. So I put what I've >> learned >> into a short text document. My hope is that an expert can review what I >> wrote for correctness and then, after any needed edits, a moderator can >> post >> it somewhere for use by other hapless newbies. I think I uploaded the >> text >> file correctly, but this forum format is new to me, so please let me know >> if >> I have to do something differently. >> ------------------------------------ >> >> InvoluteGearsDoc.txt >> <http://forum.openscad.org/file/n13121/InvoluteGearsDoc.txt> >> >> >> >> -- >> View this message in context: >> http://forum.openscad.org/Tentative-basic-documentation-for-gear-tp13121.html >> Sent from the OpenSCAD mailing list archive at Nabble.com. >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> >> > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > >
TP
Torsten Paul
Sun, Jul 12, 2015 1:16 PM

I'd like to ask if it could be added to the MCAD page on the Wiki.
This page is really in need of some love and it looks like the
gear scripts are likely the most used part of MCAD.

https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/MCAD

Or, maybe even better as Doug suggested it could be added to the
script itself.

Loong Jin, what do you think?

ciao,
Torsten.

I'd like to ask if it could be added to the MCAD page on the Wiki. This page is really in need of some love and it looks like the gear scripts are likely the most used part of MCAD. https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/MCAD Or, maybe even better as Doug suggested it could be added to the script itself. Loong Jin, what do you think? ciao, Torsten.
PF
Peter Falke
Sun, Jul 12, 2015 1:36 PM

Lets first put it on the wiki, so we all can make miner correction easily,
and expand it a little.

2015-07-12 15:16 GMT+02:00 Torsten Paul Torsten.Paul@gmx.de:

I'd like to ask if it could be added to the MCAD page on the Wiki.
This page is really in need of some love and it looks like the
gear scripts are likely the most used part of MCAD.

https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/MCAD

Or, maybe even better as Doug suggested it could be added to the
script itself.

Loong Jin, what do you think?

ciao,
Torsten.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

--
stempeldergeschichte@googlemail.com karsten@rohrbach.de

P.S. Falls meine E-Mail kürzer ausfällt als Dir angenehm ist:
Ich probiere gerade aus kurze Antworten statt gar keine Antworten zu
schreiben.
Wenn Du gerne mehr lesen möchtest, dann lass es mich bitte wissen.

P.S. In case my e-mail is shorter than you enjoy:
I am currently trying short replies instead of no replies at all.
Please let me know, if you like to read more.

Enjoy!

Lets first put it on the wiki, so we all can make miner correction easily, and expand it a little. 2015-07-12 15:16 GMT+02:00 Torsten Paul <Torsten.Paul@gmx.de>: > I'd like to ask if it could be added to the MCAD page on the Wiki. > This page is really in need of some love and it looks like the > gear scripts are likely the most used part of MCAD. > > https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/MCAD > > Or, maybe even better as Doug suggested it could be added to the > script itself. > > Loong Jin, what do you think? > > ciao, > Torsten. > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > -- stempeldergeschichte@googlemail.com <karsten@rohrbach.de> P.S. Falls meine E-Mail kürzer ausfällt als Dir angenehm ist: Ich probiere gerade aus kurze Antworten statt gar keine Antworten zu schreiben. Wenn Du gerne mehr lesen möchtest, dann lass es mich bitte wissen. P.S. In case my e-mail is shorter than you enjoy: I am currently trying short replies instead of no replies at all. Please let me know, if you like to read more. Enjoy!
CL
Chow Loong Jin
Tue, Jul 14, 2015 6:23 AM

On Sun, Jul 12, 2015 at 03:16:22PM +0200, Torsten Paul wrote:

I'd like to ask if it could be added to the MCAD page on the Wiki.
This page is really in need of some love and it looks like the
gear scripts are likely the most used part of MCAD.

https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/MCAD

Or, maybe even better as Doug suggested it could be added to the
script itself.

Loong Jin, what do you think?

Hmm, a couple of the descriptions are a bit off, and I'm hoping to eventually
get Doxygen documentation on the entire library, but first comes tidying up the
messy interfaces.

Like some have noticed, circular_pitch in the gear module uses broken units
(something to do with radians that I don't quite understand, but have worked out
a formula to convert circular pitch from length units to whatever gear()
requires. I've provided a function for this called convertcp(). You use it like
this for a 2D gear with a circular pitch (distance along the pitch circle's
perimeter between teeth) of 5 and 10 teeth:

gear (number_of_teeth = 10, circular_pitch = convertcp (5), flat = true);

I'd like to change this so that it no longer needs convertcp() which I see as a
kludge, but this requires breaking the MCAD API and, as a result, older designs
using this library.

As such, there is an ongoing effort to unify the naming conventions of all MCAD
modules and functions into mcad_foo_bar_baz() format (we currently have
lowerCamelCase, UpperCamelCase and bare_underscores all in the same tree and
it's quite a clusterfuck), while providing compat shims with the API of the
current master branch so that older designs will work. The doxygen comments will
also be added along the way.

--
Kind regards,
Loong Jin

On Sun, Jul 12, 2015 at 03:16:22PM +0200, Torsten Paul wrote: > I'd like to ask if it could be added to the MCAD page on the Wiki. > This page is really in need of some love and it looks like the > gear scripts are likely the most used part of MCAD. > > https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/MCAD > > Or, maybe even better as Doug suggested it could be added to the > script itself. > > Loong Jin, what do you think? Hmm, a couple of the descriptions are a bit off, and I'm hoping to eventually get Doxygen documentation on the entire library, but first comes tidying up the messy interfaces. Like some have noticed, circular_pitch in the gear module uses broken units (something to do with radians that I don't quite understand, but have worked out a formula to convert circular pitch from length units to whatever gear() requires. I've provided a function for this called convertcp(). You use it like this for a 2D gear with a circular pitch (distance along the pitch circle's perimeter between teeth) of 5 and 10 teeth: gear (number_of_teeth = 10, circular_pitch = convertcp (5), flat = true); I'd like to change this so that it no longer needs convertcp() which I see as a kludge, but this requires breaking the MCAD API and, as a result, older designs using this library. As such, there is an ongoing effort to unify the naming conventions of all MCAD modules and functions into mcad_foo_bar_baz() format (we currently have lowerCamelCase, UpperCamelCase and bare_underscores all in the same tree and it's quite a clusterfuck), while providing compat shims with the API of the current master branch so that older designs will work. The doxygen comments will also be added along the way. -- Kind regards, Loong Jin
MS
Mark Schafer
Tue, Jul 14, 2015 7:37 AM
Good references on what these gear calcs mean and a good ref for them on this page(at bottom):  

On 7/14/2015 6:23 PM, Chow Loong Jin wrote:

<pre wrap="">On Sun, Jul 12, 2015 at 03:16:22PM +0200, Torsten Paul wrote:
<pre wrap="">I'd like to ask if it could be added to the MCAD page on the Wiki.
This page is really in need of some love and it looks like the
gear scripts are likely the most used part of MCAD.

<a class="moz-txt-link-freetext" href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/MCAD">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/MCAD</a>

Or, maybe even better as Doug suggested it could be added to the
script itself.

Loong Jin, what do you think?
<pre wrap="">
Hmm, a couple of the descriptions are a bit off, and I'm hoping to eventually
get Doxygen documentation on the entire library, but first comes tidying up the
messy interfaces.

Like some have noticed, circular_pitch in the gear module uses broken units
(something to do with radians that I don't quite understand, but have worked out
a formula to convert circular pitch from length units to whatever gear()
requires. I've provided a function for this called convertcp(). You use it like
this for a 2D gear with a circular pitch (distance along the pitch circle's
perimeter between teeth) of 5 and 10 teeth:

 gear (number_of_teeth = 10, circular_pitch = convertcp (5), flat = true);

I'd like to change this so that it no longer needs convertcp() which I see as a
kludge, but this requires breaking the MCAD API and, as a result, older designs
using this library.

As such, there is an ongoing effort to unify the naming conventions of all MCAD
modules and functions into mcad_foo_bar_baz() format (we currently have
lowerCamelCase, UpperCamelCase and bare_underscores all in the same tree and
it's quite a clusterfuck), while providing compat shims with the API of the
current master branch so that older designs will work. The doxygen comments will
also be added along the way.

<pre wrap="">_______________________________________________
OpenSCAD mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Discuss@lists.openscad.org">Discuss@lists.openscad.org</a>
<a class="moz-txt-link-freetext" href="http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org">http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org</a>
<pre wrap="">-----
No virus found in this message.
Checked by AVG - <a class="moz-txt-link-abbreviated" href="http://www.avg.com">www.avg.com</a>
Version: 2015.0.6081 / Virus Database: 4392/10223 - Release Date: 07/13/15
CL
Chow Loong Jin
Tue, Jul 14, 2015 8:14 AM

On Tue, Jul 14, 2015 at 07:37:21PM +1200, Mark Schafer wrote:

Good references on what these gear calcs mean and a good ref for them on this
page(at bottom):
    - https://github.com/jnweiger/inkscape-gears-dev
    - http://www.gizmology.net/gears.htm
    - http://www.micro-machine-shop.com/gear_theory.pdf
along with a python module that performs same - if you want to check
anything....

Yeah, I looked through all of that while dissecting the gear module, and
everywhere I looked, circular pitch is defined as distance between the same spot
of adjacent teeth along the circumference of the pitch circle.

Distance should be measured in mm or inches (let's just designate this as
$length_unit for the time being), but for whatever reason, the original gear()
module used circular pitch values measured in units of
"(PI / 180) $length_unit".

In order to preserve backward compatibility with old designs that use this
module, we have to accept values specified in terms of that odd unit.

--
Kind regards,
Loong Jin

On Tue, Jul 14, 2015 at 07:37:21PM +1200, Mark Schafer wrote: > Good references on what these gear calcs mean and a good ref for them on this > page(at bottom): >     - https://github.com/jnweiger/inkscape-gears-dev >     - http://www.gizmology.net/gears.htm >     - http://www.micro-machine-shop.com/gear_theory.pdf > along with a python module that performs same - if you want to check > anything.... Yeah, I looked through all of that while dissecting the gear module, and everywhere I looked, circular pitch is defined as distance between the same spot of adjacent teeth along the circumference of the pitch circle. Distance *should* be measured in mm or inches (let's just designate this as $length_unit for the time being), but for whatever reason, the original gear() module used circular pitch values measured in units of "(PI / 180) $length_unit". In order to preserve backward compatibility with old designs that use this module, we have to accept values specified in terms of that odd unit. -- Kind regards, Loong Jin
T
TimM
Tue, Jul 14, 2015 5:44 PM

a couple of the descriptions are a bit off <<

I'm not surprised, as I'm not an expert, although I did research these
things a lot.  So that I can update my own documentation, as well as for the
sake of others, can you say which descriptions are off, and how?  Thanks!

I have worked out a formula to convert circular pitch from length units
to whatever gear()requires. I've provided a function for this called
convertcp(). <<

You don't need a function.  Just multiply the circular pitch you want by
57.29578, which is 180/pi.

TimM

--
View this message in context: http://forum.openscad.org/Tentative-basic-documentation-for-gear-tp13121p13148.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

>> a couple of the descriptions are a bit off << I'm not surprised, as I'm not an expert, although I did research these things a lot. So that I can update my own documentation, as well as for the sake of others, can you say which descriptions are off, and how? Thanks! >> I have worked out a formula to convert circular pitch from length units >> to whatever gear()requires. I've provided a function for this called >> convertcp(). << You don't need a function. Just multiply the circular pitch you want by 57.29578, which is 180/pi. TimM -- View this message in context: http://forum.openscad.org/Tentative-basic-documentation-for-gear-tp13121p13148.html Sent from the OpenSCAD mailing list archive at Nabble.com.
DM
doug moen
Tue, Jul 14, 2015 5:59 PM

I have worked out a formula to convert circular pitch from length units
to whatever gear()requires. I've provided a function for this called
convertcp(). <<

You don't need a function.  Just multiply the circular pitch you want by
57.29578, which is 180/pi.

You can also use the deg(x) function from <MCAD/math.scad>, which performs
a radians to degrees conversion.
It's the same function.

OpenSCAD is different from every other programming language I know, in that
the trig functions take arguments measured in degrees instead of radians.
If you are porting software from another language into OpenSCAD, you should
take this into account. I suspect that gear() was ported from another
language, but without converting radians to degrees in the calls to sin(),
cos() etc.

On 14 July 2015 at 13:44, TimM TimothyMasters@compuserve.com wrote:

a couple of the descriptions are a bit off <<

I'm not surprised, as I'm not an expert, although I did research these
things a lot.  So that I can update my own documentation, as well as for
the
sake of others, can you say which descriptions are off, and how?  Thanks!

I have worked out a formula to convert circular pitch from length units
to whatever gear()requires. I've provided a function for this called
convertcp(). <<

You don't need a function.  Just multiply the circular pitch you want by
57.29578, which is 180/pi.

TimM

--
View this message in context:
http://forum.openscad.org/Tentative-basic-documentation-for-gear-tp13121p13148.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

>> I have worked out a formula to convert circular pitch from length units >> to whatever gear()requires. I've provided a function for this called >> convertcp(). << > You don't need a function. Just multiply the circular pitch you want by > 57.29578, which is 180/pi. You can also use the deg(x) function from <MCAD/math.scad>, which performs a radians to degrees conversion. It's the same function. OpenSCAD is different from every other programming language I know, in that the trig functions take arguments measured in degrees instead of radians. If you are porting software from another language into OpenSCAD, you should take this into account. I suspect that gear() was ported from another language, but without converting radians to degrees in the calls to sin(), cos() etc. On 14 July 2015 at 13:44, TimM <TimothyMasters@compuserve.com> wrote: > >> a couple of the descriptions are a bit off << > > I'm not surprised, as I'm not an expert, although I did research these > things a lot. So that I can update my own documentation, as well as for > the > sake of others, can you say which descriptions are off, and how? Thanks! > > > >> I have worked out a formula to convert circular pitch from length units > >> to whatever gear()requires. I've provided a function for this called > >> convertcp(). << > > You don't need a function. Just multiply the circular pitch you want by > 57.29578, which is 180/pi. > > TimM > > > > -- > View this message in context: > http://forum.openscad.org/Tentative-basic-documentation-for-gear-tp13121p13148.html > Sent from the OpenSCAD mailing list archive at Nabble.com. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > >