7

I work on communication devices for people with disabilities that prevent them from speaking. This can be anything from a board with symbols on, to a relatively sophisticated app.

Some potential users also have sight issues and have to distinguish symbols by feel (these particular users have cognitive disabilities and so braile isn't useful) . Currently the solution is to, by hand, stick items onto the buttons. Like this:

enter image description here

This is effective, but takes a very long time.

There exists open symbol libraries like this, that include nice svg images like this one (not uploaded, because SO doesn't like svg, but here's the screenshot:

enter image description here

A friend converted some of these images into 3d prints like so:

enter image description here

This was amazing, and useful, but I understand quite time-intensive for him - and there are thousands of these symbols.

Here's what I want to know: given that SVG is a relatively simple structure and the symbols are very simple, what are the steps for writing the script that says: "Take the svg, map it to a plane, raise everything that is black by 2mm, everything that is gray by 1mm and add height for the rest of the colours according to this table" ?

Bonus points for something that I can reasonably get going on a set of 10000 svg files and come back to later...

Trish
  • 20,169
  • 10
  • 43
  • 92
Joe
  • 171
  • 4
  • My thoughts would be something like openscad might simplify this. It has a polygon basic operation and an extrude. First map the svg to a polygon then extrude the polygon. So the question then becomes how to map the svg to a set of points that are close enough to represent the shape. You could do this multiple times for each colour and then extrude by different heights. – Ross Dec 05 '17 at 10:38

2 Answers2

2

If you install inkscape, pstoedit and ghostscript version 9.21 (not the latest as pstoedit is incompatible) you can get the file into a format that openscad can import using two commands in a cmd file

"C:\Program Files\Inkscape\inkscape" -E "traffic lights.eps" "traffic lights.svg"
"C:\Program Files\pstoedit\pstoedit" -dt -f dxf:-polyaslines "traffic lights.eps" "traffic lights.dxf"

then in openscad

linear_extrude(3) import ("traffic lights.dxf");

will import gives me

openscad

With a thickness of 3mm - you can see the model needs some scaling but its seems possible although - I can't see an option to scale based on color -

Ross
  • 205
  • 2
  • 10
  • That's looking solid! – Joe Dec 12 '17 at 08:42
  • 1
    Much more difficult to get different heights automatically based to different colors , I've got an algorithm of how to do it - get a files for each layer based on the colors - eg extract White, Green, Red, Blue and import - this all seems to work - but I have no way to automate the layer extraction – Ross Jan 10 '18 at 06:44
0

Nothing thats works via scripting BUT is really simple and easy.

  1. register on tinkercad.com (I know register is a bummer but its a great tool)
  2. open a new design
  3. import *.svg file
  4. adjust height or size of the converted object
  5. download .stl

Thats going to take a while for 1000 files but its so simple, printing the stuff will take forever, so you´ve got some time :P

Edit: Maybe edit the topic to something like "SVG to STL conversion" which would make the thread more likely to be found.

Nautis
  • 1