Categories
Uncategorized

3D (STL) to 2D (SVG)

Back in 2015 I used Rhino to convert 3D files into 2D vector files that could be used in illustrations, instructions, etc. You can see what I’m talking about in 2D to 3D to 2D. Sadly, Rhino is not cheap, and I do not have access to it. Instead I would often do fake versions of this technique in OpenSCAD, which you can see in Enclosure Prototyping.

Well, thanks to Trammell Hudson, I can throw all that away! Checkout this post plotter.vision – STL to SVG and then go to plotter.vision and give it a spin.

The code is available on GitHub, and my favorite part is in the README:

I’m not a javascript programmer, so this is probably not very well written.

And yet… It exists, and it works. It may not be perfect, but the great thing about open source is that it can be improved by others in the future.

I’ve included a few results in this posts of things I’ve modeled in OpenSCAD. I think they turned out well and I can see using this tool in the future. Thanks, Trammell!

Categories
Uncategorized

Hammer Ring

Sketch

We had a quick side project in our “Machines that Make” class which involved designing a piece of jewelry in Rhino. The piece was to be 3 dimensional, and entered into the “Rapid Jewelry 3D Printing Design Competition” put on by the Design Museum Foundation.

I’ve never really designed or made any jewelry before, but Frankie suggested I look at cosplay and wearable things for inspiration. Since I seem to have an (unhealthy?) obsession with hammers lately, I went right in that direction.

Prototypes

The hammer, like so many tools we use, is an extension of the human body, allowing us to do thing we couldn’t do with our bare hands. I wanted to celebrate the hammer as a tool and an object, and what better way than by wearing it on your finger?

Of course this hammer becomes somewhat non-functional, at least as a hammer. You can still move your fingers around to simulate the movement, but don’t expect to pound any nails with it. (There’s also a joke here about fingernails, but I’m still working on it.)

Paper Prototypes

Paper Prototypes

I did a quick sketch and then went to work doing some paper prototypes. The prototype fits well as a “mid ring” (a new term I learned) or as a pinky ring. The actual 3D modeled one should fit on my index finger.

Paper Prototypes

Imagine if you will, a whole bunch of these on one hand. Too many hammers to handle? I think not!

STL File

I learned a few new techniques in Rhino, which should come in handy. I really wish I had more time to dig into it this semester, especially the command line features. Here’s what the plain old STL file looks like. We’ve seen this view a million times before, but I also did some renderings using Keyshot which look rather nice… Check them out below!

Rendering

Rendering

Rendering

Rendering

Rendering

Obviously the 3D printed pieces won’t exactly look like this, but it was great to experiment with different materials and lighting in the rendering software. (Of course now I’m tempted to look at the open source 3D rendering applications out there!)

Categories
Uncategorized

2D plates from 3D objects

brocstl001

One of my, uh, “hobbies” is figuring out alternative workflows, or ways of solving a specific problem. I often do this with a bias towards open source or free software, because I like to know how to do things, and share how to do things, even when you don’t have expensive commercial software.

If you remember reading about Broc’s model in one of my Digital Fabrication posts, he mentioned using the “Unroll Developable Srf” function in Rhino to create flat pieces. Well, I have access to Rhino at UWM, but any piece of software on my own machines is preferable because I have easy and immediate access to it 24 hours a day, 7 days a week.

Broc's STL in 123D Make

With this in mind, I set about trying to do what Broc did, without using Rhino. I ended up using 123D Make from Autodesk. It’s not open source, but it’s (mostly) free if you’re willing to create an account and share your personal info.

Broc's STL in 123D Make

123D Make has a bunch of nice options for breaking 3D objects into “slices” that can be assembled using various methods. (Supposedly there’s a beta version that does finger joint boxes.) It took a bit of tweaking things, but I was able to create slices just like the ones Broc made in Rhino.

Broc's STL in pieces

The output from 123D Make was a vector-based PDF file with all the parts in 2D.

Broc's STL in pieces

The PDF was easily imported into Inkscape, where it can be set up for being cut by a CNC machine. There’s a minimal amount of clean-up needed to remove any attachment tabs that the application generates. Try as I might, it did not allow me to put a value of zero on some of the parameters. Maybe in the next version. :/

(Oh, you could always print out paper templates and cut things the old fashioned way if you’re not a CNC user.)

Here’s a great promo video 123D Make that shows some of the slicing capabilities.

Categories
Uncategorized

stlviewer canvas adjustment

STL Viewer

I use Gary Hodgson’s stlviewer quite a bit, as it allows for a quick view of an STL file in your browser, and since I’ve always got a browser running, it’s often easier than launching yet anther app just to view a 3D model.

But one of the things that’s always bugged me about it was the fact that the build plate appeared to be 100mm x 100mm, which would be fine in 2010 if using a MakerBot Cupcake, but my RepRap has a 200mm x 200mm build surface…

STL Viewer

This is much better! My models over 100mm long/wide actually fit on the build plate instead of spilling over into space. Obviously if you’re using Gary’s online version you can’t really make changes, but I just run it locally from my hard drive, so I can easily hack at it.

STL Viewer

Just go into the js folder and in there is the thingiview folder, and open thingiview.js in your favorite text editor. Line 711 should look like this.


plane = new THREE.Mesh(new Plane(100, 100, 10, 10), 
  new THREE.MeshBasicMaterial({color:0xafafaf,wireframe:true}));

(Note: It’s all one line, but it’s wrapped here for readability.)

For the part that says new Plane(100, 100, 10, 10) just change it to new Plane(200, 200, 10, 10) and you’ll get a 200mm x 200mm canvas with which you can display your lovely STL file on.

(Obviously if you’re using MegaMax you should go a bit larger, perhaps 300mm x 300mm would be appropriate.)

Categories
Uncategorized

Convert all the files!

Convert all the files!
Thanks Tom!

It seemed like a simple enough request… While at Milwaukee Makerspace we were discussing creating snowflakes on the Laser Cutter, and I mentioned that there should be some existing art on OpenClipArt.org, but it was down that night, so I jumped over to Thingiverse and found this snowflake.

As a bit of background, I’ve been pretty damn good at file conversions in the past. Audio, video, markup, raster images, anything 2D has been pretty simple. I mean, I’ve been using Photoshop since version 1.0.7. I know how to deal with that stuff… but 3D? It’s a whole new nightmare world!

Snowflake

The file was an STL, which is meant for 3D printing, but we needed more of a 2D vector file. I know how to load a DXF file into the Laser Cutter, so I figured I’m import this STL into Google Sketchup (via a plugin) and then export as a DXF (via another plugin) and that would be it.

Well, that didn’t work. (Oh, and by “didn’t work” I mean I was unable to open the DXF file in Inkscape. At this point I was still waiting to use the Laser Cutter so I didn’t get to try importing it on that machine. I figured that as long as I was waiting, I’d try to get a format I knew would work.) On to the next idea.

I exported the STL from Google Sketchup as a DAE file, and was able to open that in MeshLab. Once again I tried a DXF export, but that one wouldn’t open in Inkscape either. Argh!

Snowflake

So I made a radical decision… Since I could view the file in MeshLab, I just did a screen shot so I could get a nice, clean 2D version of it.

Snowflake

Of course if I had known I was going to do this, I probably could have just done it in Google Sketchup by altering the view… Still, the MeshLab method seemed solid.

Snowflake

I then took the screen shot and opened it in Photoshop, did a little editing, and converted it to black and white. (I considered creating paths, and exporting them, but at this point I wanted to go with what I knew (or thought) would work, and that meant getting a clean PNG file into Inkscape to convert it from a raster to a vector file via trace bitmap.

Snowflake

So finally, I had my SVG file! A vector file I could open in Inkscape and export as a clean DXF file that I was reasonable sure would open and work on the Laser Cutter…

Snowflake

Oh wait, at some point along the way I had created an OpenSCAD file, to test the other DXF files. They wouldn’t render due to some weirdness, but the new one I exported from Inkscape did. This made me feel a little more secure that this file would work.

So how did it turn out? I don’t know!

The Laser Cutter was in use making ornaments, and I couldn’t stay late enough to get a chance to use it.

And just to be clear… while there were many steps in the process above, the whole thing took about 20 minutes from the first file export to getting what seemed to be a good DXF file.

I’ve converted a lot of files in my time, but doing so for these CNC machine is proving to be a new challenge.

Of course half the fun is seeing if it will work, you know, on the machine… which I hope to test at some point. :)