Now that my students are wrapping up their summer research activities, it’s time to share some of my new designs. This one is inspired by my students – they wanted to design and 3D print keychains – and Rozenn’s request to have name tags for our plants.

Read on to see how I designed these, which involved a little bit of magic for the swash ornament.

Yep, I had to search for the definition of swash ornament myself, but more on that in a minute. The plant tag is a fairly simple design consisting of an oval plate with a hole in it, some text and the swash ornament. I’m a fan of OpenSCAD for designing my 3D prints and making shapes is pretty straightforward.

1 2 3 4 |
difference(){ linear_extrude(1.0)scale([1,0.65])circle(30); translate([0,14,-1])scale([1,.5,1])cylinder(d=10,h=10); } |

In the code block above, `linear_extrude`

is used to convert a 2D object (the circle) into a 3D object. I used `scale`

to squish the circle into an oval. To cut out a hole in this plate, the `difference`

operation is used. Text can also be added in the same fashion; the `text`

function creates a 2D text object which can be converted into a 3D object via `linear_extrude`

. I used Kalam as the font for my plant tags.

The swash ornament was a bit trickier. I suspect someone has figured this out, but I know of know mathematical or geometrical representation of swash elements to make them using the tools available in OpenSCAD. Therefore, I found one that I liked and saved a screenshot of the image.

OpenSCAD does have the ability to import an image via `surface`

but the image needs to be processed and it is a bit clunky, so I decided to take a different route, which is arguably *more clunky* than doing it in OpenSCAD: *Mathematica!*

Once the image is imported into Mathematica, it needs to be converted into a binary, black and white image. Some of the edges need to be cleaned up as well. I do this by performing a morphological dilation using a disk matrix kernel with radius r. What? You don’t know what that means? Neither do I; I just searched the documentation, cut and pasted some example code, and liked the result:

The next step is to convert the binary image into a 3D object which involves two steps. First,`ImageMesh`

is used to create a 2D object (along the lines of `circle`

and `text`

in OpenSCAD) and then the Mathematica version of `linear_extrude`

is called `RegionProduct`

. Confusing? Yep. Higher level programming languages are very powerful, but the learning curve is steep. I’ve been working with meshes and regions in Mathematica for another project which I hope to share in the coming weeks, and I can only say that I am not nearly as proficient in these features as one would expect for having spent many hours working with them. That said, we can make a fairly nice object with
1 2 3 4 |
ImageMesh[ Dilation[Binarize[ImageResize[img, 600]] // DeleteSmallComponents, DiskMatrix[2]]]; o = RegionProduct[%, Line[{{0.}, {3.0}}]] |

Finally, we have an object that can be saved as an STL file and imported into OpenSCAD.

The last part, which I won’t bore you with, is to make what amounts to a 3D printed swizzle stick in order to hang the tag in the pot. It’s a few cylinders at right angles, and is not exciting at all (and you’ve just witnessed what I think is exciting, so imagine my threshold for boring).

Hmm, maybe I need my students to come back in to the lab so I stop sharing.