discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Better Braille

FH
Father Horton
Sun, Aug 14, 2022 1:30 AM

I think also from a sheer mechanical point of view that rounded edges are
less likely to break off.

On Sat, Aug 13, 2022 at 8:28 PM Adrian Mariano avm4@cornell.edu wrote:

If you want to comply with ADA sign regulations, it appears that you
must use a hemisphere for your braille dots.

https://greendotsign.com/braille-signage/

"Braille shall have a domed or rounded shape, not flat or pointed."  And
their dimensional pictures show a hemispherical form.

On Sat, Aug 13, 2022 at 9:22 PM Michael Marx michael@marx.id.au wrote:

Johnnie,

You used:

cylinder (dotHeight, dotDiameter / 2, true);

which produces an inverse tapered cylinder, ie _/

From the wiki:

NOTES:

The 2nd & 3rd positional parameters are r1 & r2, if r, d, d1 or d2 are
used they must be named.

Using r1 & r2 or d1 & d2 with either value of zero will make a cone
shape, a non-zero non-equal value will produce a section of a cone (a Conical
Frustum https://en.wikipedia.org/wiki/Frustum).

r1 & d1 define the base width, at [0,0,0], and r2 & d2 define the top
width.

Basically the safe rule of thumb, use 'h=' & either 'r=' or 'd=' & if you
center always use 'center='

I think you wanted:

cylinder(h=dotHeight, d=dotDiameter, center=true);

Also note center=true makes half the cylinder below z=0, so the effective
height is halved.

That may be your intent to embed the cylinder into the base.

If not:

translate([floor(idx / 3) * dotSpacing, - ((idx % 3) * dotSpacing),
-0.01])  // make sure the cylinder is embedded INTO the base.

cylinder(h=dotHeight, d=dotDiameter);

If you want a sphere try:

scale([1,1,dotHeight/dotDiameter*2]) sphere(d=dotDiameter); // play with
the *2


From: John Heim [mailto:sconnie.johnnie@gmail.com]
Sent: Sun, 14 Aug 2022 09:04
To: OpenSCAD general discussion; Father Horton
Subject: [OpenSCAD] Re: Better Braille

Thanks. This is one of the main reasons I am posting here. I'll give it a
try (if I can figure out how).

But one of the more difficult aspects of reading braille is making out
the dots. Making them rounder might make it harder to read. Its worth a try
though.

On 8/13/22 17:16, Father Horton wrote:

From a practical aspect, you might be better off using spheres (distorted
if necessary) for the dots. I'd think the rough edges would be hard on
finger.

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

http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient Virus-free.
www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient
<#m_-3047707370975605191_m_-2788381951141441943_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>


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 think also from a sheer mechanical point of view that rounded edges are less likely to break off. On Sat, Aug 13, 2022 at 8:28 PM Adrian Mariano <avm4@cornell.edu> wrote: > If you want to comply with ADA sign regulations, it appears that you > *must* use a hemisphere for your braille dots. > > https://greendotsign.com/braille-signage/ > > "Braille shall have a domed or rounded shape, not flat or pointed." And > their dimensional pictures show a hemispherical form. > > > > On Sat, Aug 13, 2022 at 9:22 PM Michael Marx <michael@marx.id.au> wrote: > >> Johnnie, >> >> >> >> You used: >> >> cylinder (dotHeight, dotDiameter / 2, true); >> >> which produces an inverse tapered cylinder, ie \_/ >> >> >> >> From the wiki: >> >> >> >> NOTES: >> >> The 2nd & 3rd positional parameters are r1 & r2, if r, d, d1 or d2 are >> used they must be named. >> >> Using r1 & r2 or d1 & d2 with either value of zero will make a cone >> shape, a non-zero non-equal value will produce a section of a cone (a Conical >> Frustum <https://en.wikipedia.org/wiki/Frustum>). >> >> r1 & d1 define the base width, at [0,0,0], and r2 & d2 define the top >> width. >> >> >> >> Basically the safe rule of thumb, use 'h=' & either 'r=' or 'd=' & if you >> center always use 'center=' >> >> I think you wanted: >> >> cylinder(h=dotHeight, d=dotDiameter, center=true); >> >> >> >> Also note center=true makes half the cylinder below z=0, so the effective >> height is halved. >> >> That may be your intent to embed the cylinder into the base. >> >> If not: >> >> translate([floor(idx / 3) * dotSpacing, - ((idx % 3) * dotSpacing), >> -0.01]) // make sure the cylinder is embedded INTO the base. >> >> cylinder(h=dotHeight, d=dotDiameter); >> >> >> >> If you want a sphere try: >> >> scale([1,1,dotHeight/dotDiameter*2]) sphere(d=dotDiameter); // play with >> the *2 >> >> >> >> >> ------------------------------ >> >> *From:* John Heim [mailto:sconnie.johnnie@gmail.com] >> *Sent:* Sun, 14 Aug 2022 09:04 >> *To:* OpenSCAD general discussion; Father Horton >> *Subject:* [OpenSCAD] Re: Better Braille >> >> >> >> Thanks. This is one of the main reasons I am posting here. I'll give it a >> try (if I can figure out how). >> >> But one of the more difficult aspects of reading braille is making out >> the dots. Making them rounder might make it harder to read. Its worth a try >> though. >> >> >> >> On 8/13/22 17:16, Father Horton wrote: >> >> From a practical aspect, you might be better off using spheres (distorted >> if necessary) for the dots. I'd think the rough edges would be hard on >> finger. >> >> >> >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> >> >> >> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> Virus-free. >> www.avg.com >> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> >> <#m_-3047707370975605191_m_-2788381951141441943_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> >> _______________________________________________ >> 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 >
JB
Jordan Brown
Sun, Aug 14, 2022 3:54 PM

On 8/13/2022 6:21 PM, Michael Marx wrote:

You used:

cylinder (dotHeight, dotDiameter / 2, true);

which produces an inverse tapered cylinder, ie _/

It seems wrong that it isn't a type mismatch error to pass true as r2.

On 8/13/2022 6:21 PM, Michael Marx wrote: > You used: > > cylinder (dotHeight, dotDiameter / 2, true); > > which produces an inverse tapered cylinder, ie \_/ > It seems wrong that it isn't a type mismatch error to pass true as r2.
JH
John Heim
Mon, Aug 15, 2022 4:54 PM

After seeing your code, I was able to find this on Reddit:

https://www.reddit.com/r/openscad/comments/p6tpyu/braille_generator_in_openscad/

I cut/pasted that code into a file and it is attached.

So that takes a similar approach to yours using braille unicode chars.
And that is clearly the way to go as opposed to what I was doing,
generating braille chars by drawing dots.

But the author of that code also does something similar to what I did in
my code. He has a string of ASCII characters and he translates that to
the corresponding braille char. The way he does it is kind of strange 
though. He converts all letters to upper case for translation and then
returns the braille char which is always lower case. In fact, it doesn't
really generate valid braille. If you run that code, it is supposed to
generate the braille for "OpenSCAD" but in reality, it generates the
code for "openscad", all in lower case. It doesn't attempt to do any
braille transcription including even capitalization. You can, however,
pass his code output from my python program and it will generate valid
braille. The correct ASCII braille for "OpenSCAD" is ",op5,,scad". If
you pass that string to this code, you will get the right braille
characters.

So I am going to rewrite my code to follow this example wrt generating
the braille characters. The question of how to do the braille
transcription continues to loom large though.

On 8/13/22 18:08, David Phillip Oster wrote:

I posted about this, with source code:

https://old.reddit.com/r/3Dprinting/comments/tvkqs9/my_4th_grader_was_learning_about_braille_enter

and

https://old.reddit.com/r/3Dprinting/comments/tvkqs9/my_4th_grader_was_learning_about_braille_enter/i3dfqxk/

On Sat, Aug 13, 2022 at 4:04 PM John Heim sconnie.johnnie@gmail.com
wrote:

 Thanks. This is one of the main reasons I am posting here. I'll
 give it a try (if I can figure out how).

 But one of the more difficult aspects of reading braille is making
 out the dots. Making them rounder might make it harder to read.
 Its worth a try though.


 On 8/13/22 17:16, Father Horton wrote:
 From a practical aspect, you might be better off using spheres
 (distorted if necessary) for the dots. I'd think the rough edges
 would be hard on finger.

 On Sat, Aug 13, 2022 at 5:04 PM Father Horton
 <fatherhorton@gmail.com> wrote:

     What sort of feedback do you want? What you've written seems
     to work. I might have written it differently, but your style
     is your style.

     On Sat, Aug 13, 2022 at 2:04 PM John Heim
     <sconnie.johnnie@gmail.com> wrote:

         Hi, I have a goal of creating a system to generate 3D
         floor maps for the
         blind. I want to take a hotel floor plan and generate a
         3D version of it
         for conventions. To start, I just want to be able to put
         braille on a
         surface. There are several projects on github to generate
         braille but I
         found them inadequate mainly because they don't do the
         translation from
         plain text to braille well. I think I've written code to
         do that.

         I've attached a python script and a OpenScad file. The
         python program
         takes plain text, converts it to ASCII braille, and forks
         an OpenScad
         process to create a plaque with the braille on it. Well,
         that's what it
         is supposed to do.

         I am looking for feedback on what I've written so far.

         To try the system, download the 2 attached files and make
         the python
         script executable. You will need some standard python
         libraries most
         notably louis which is the ASCII braille translation
         library. "pip
         install louis" ought to do it.

         Then do this:


         $ brailleSign.py -t"Hello, world!"


         You can change the text to anything you want.

         The OpenScad code contains a function that converts an
         ASCII braille
         code to a number. That number represents the dots needed
         to generate the
         character in braille. The letter 'a' is just dot 1.
         Therefore, the
         function returns a 1 for the character 'a'.  The letter
         'c' is dots 1
         and 4. The function therefore returns the number 9 (1 +
         2^4) for the
         letter 'c'.

         Then there is another function that takes a number and
         generates dots
         based on that number.



         The python script doesn't really have any interesting
         code in it. But
         here is the function that takes an ASCII braille
         character and returns a
         number representing the dots required to generate it:


         function brailleCode(character) = search(character,"
         a1b'k2l@cif/msp\"e3h9o6r^djg>ntq,*5<-u8v.%[$+x!&;:4\\0z7(_?w]#y)=")[0];


         Note: The character string in the function came from the
         wikipedia page
         on ASCII braille, https://en.wikipedia.org/wiki/Braille_ASCII
         _______________________________________________
         OpenSCAD mailing list
         To unsubscribe send an email to
         discuss-leave@lists.openscad.org


 _______________________________________________
 OpenSCAD mailing list
 To unsubscribe send an email todiscuss-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 todiscuss-leave@lists.openscad.org

After seeing your code, I was able to find this on Reddit: https://www.reddit.com/r/openscad/comments/p6tpyu/braille_generator_in_openscad/ I cut/pasted that code into a file and it is attached. So that takes a similar approach to yours using braille unicode chars. And that is clearly the way to go as opposed to what I was doing, generating braille chars by drawing dots. But the author of that code also does something similar to what I did in my code. He has a string of ASCII characters and he translates that to the corresponding braille char. The way he does it is kind of strange  though. He converts all letters to upper case for translation and then returns the braille char which is always lower case. In fact, it doesn't really generate valid braille. If you run that code, it is supposed to generate the braille for "OpenSCAD" but in reality, it generates the code for "openscad", all in lower case. It doesn't attempt to do any braille transcription including even capitalization. You can, however, pass his code output from my python program and it will generate valid braille. The correct ASCII braille for "OpenSCAD" is ",op5,,scad". If you pass that string to this code, you will get the right braille characters. So I am going to rewrite my code to follow this example wrt generating the braille characters. The question of how to do the braille transcription continues to loom large though. On 8/13/22 18:08, David Phillip Oster wrote: > I posted about this, with source code: > > https://old.reddit.com/r/3Dprinting/comments/tvkqs9/my_4th_grader_was_learning_about_braille_enter > > and > > https://old.reddit.com/r/3Dprinting/comments/tvkqs9/my_4th_grader_was_learning_about_braille_enter/i3dfqxk/ > > > On Sat, Aug 13, 2022 at 4:04 PM John Heim <sconnie.johnnie@gmail.com> > wrote: > > Thanks. This is one of the main reasons I am posting here. I'll > give it a try (if I can figure out how). > > But one of the more difficult aspects of reading braille is making > out the dots. Making them rounder might make it harder to read. > Its worth a try though. > > > On 8/13/22 17:16, Father Horton wrote: >> From a practical aspect, you might be better off using spheres >> (distorted if necessary) for the dots. I'd think the rough edges >> would be hard on finger. >> >> On Sat, Aug 13, 2022 at 5:04 PM Father Horton >> <fatherhorton@gmail.com> wrote: >> >> What sort of feedback do you want? What you've written seems >> to work. I might have written it differently, but your style >> is your style. >> >> On Sat, Aug 13, 2022 at 2:04 PM John Heim >> <sconnie.johnnie@gmail.com> wrote: >> >> Hi, I have a goal of creating a system to generate 3D >> floor maps for the >> blind. I want to take a hotel floor plan and generate a >> 3D version of it >> for conventions. To start, I just want to be able to put >> braille on a >> surface. There are several projects on github to generate >> braille but I >> found them inadequate mainly because they don't do the >> translation from >> plain text to braille well. I think I've written code to >> do that. >> >> I've attached a python script and a OpenScad file. The >> python program >> takes plain text, converts it to ASCII braille, and forks >> an OpenScad >> process to create a plaque with the braille on it. Well, >> that's what it >> is supposed to do. >> >> I am looking for feedback on what I've written so far. >> >> To try the system, download the 2 attached files and make >> the python >> script executable. You will need some standard python >> libraries most >> notably louis which is the ASCII braille translation >> library. "pip >> install louis" ought to do it. >> >> Then do this: >> >> >> $ brailleSign.py -t"Hello, world!" >> >> >> You can change the text to anything you want. >> >> The OpenScad code contains a function that converts an >> ASCII braille >> code to a number. That number represents the dots needed >> to generate the >> character in braille. The letter 'a' is just dot 1. >> Therefore, the >> function returns a 1 for the character 'a'.  The letter >> 'c' is dots 1 >> and 4. The function therefore returns the number 9 (1 + >> 2^4) for the >> letter 'c'. >> >> Then there is another function that takes a number and >> generates dots >> based on that number. >> >> >> >> The python script doesn't really have any interesting >> code in it. But >> here is the function that takes an ASCII braille >> character and returns a >> number representing the dots required to generate it: >> >> >> function brailleCode(character) = search(character," >> a1b'k2l@cif/msp\"e3h9o6r^djg>ntq,*5<-u8v.%[$+x!&;:4\\0z7(_?w]#y)=")[0]; >> >> >> Note: The character string in the function came from the >> wikipedia page >> on ASCII braille, https://en.wikipedia.org/wiki/Braille_ASCII >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to >> discuss-leave@lists.openscad.org >> >> >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email todiscuss-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 todiscuss-leave@lists.openscad.org