Archive for May 26th, 2011

Script for Rounded Corners for OpenSCAD by WarrantyVoider

Round corners for Openscad - Library by WarrantyVoider

Round corners for Openscad - Library by WarrantyVoider

Long ago, before “Web 2.0” and the Dot Com crash, the world wide web was kinda ugly.  Most pages were built in HTML using tables, which necessarily meant everything was blocky and boxy looking. 1  Sure, they were functional, but they weren’t exactly pretty.  After a time new scripts in javascript and cascading stylesheet techniques came into use that allowed web developers to round the corners off square boxes.  Eventually these complicated scripts and piles of nested CSS gave way to more simple and elegant ways to create rounded corners.

That’s what it feels like today, with the release of the OpenSCAD library for rounded corners by WarrantyVoider.  WarrantyVoider has made making a box with rounded corners almost as easy as making a regular box.  Remember this little tidbit from a certain blogger:

  1. cube([4,8,16]);

Well, making a rounded cube using this library is as easy as:

  1. include <roundCornersCube.scad>
  2. roundCornersCube(4,8,16,1);

I think WarrantyVoider has actually gone a long way to helping people make better looking objects that use less plastic.  What’s not to like?!

  1. Kinda like a Volvo. []
Tagged with , , , , , 2 comments
 

3D Printing with Kinect

 

80 mm tall scan, printed with a Thing-O-Matic

I’ve been working with 3d scanning for over two years now, building my own 3d scanners and writing code to work with commercial scanners like the Kinect. When I started my artist residency at MakerBot, I knew I had to combine 3d scanning and 3d printing. One of the first ideas we had was to set up a 3d photo booth at MakerBot to scan visitors. So I wrote an app called KinectToStl which first launched at the MakerBot NY user group. I modified it a bit based on feedback from that event, and it’s since been fired up for the 3rd Ward Make-A-Thon and Maker Faire Bay Area 2011. Other artists and hackers are exploring the app, like 4nchor5 la6.

I’ve been maintaining a GitHub repository of all the code I write while at MakerBot, and the source is available for download there. If you don’t want to deal with compiling it, there’s also an OSX app available. The project has a few external dependencies that make it slightly difficult to compile right now, primarily because openFrameworks is nearing a release and hasn’t stabilized yet. The source would be most useful for someone interested in recreating this in Processing or another environment.

Once you’ve downloaded the app, plug in your Kinect and start the app, you’ll see three tabs and four sliders.

 

Screenshot from KinectToStl

The first tab is where the relevant options are:

  • zCutoff controls how far away your cutoff plane is, in centimeters. Anything farther than this will disappear into the “background” (flat area).
  • fovWidth and fovHeight control the field of view (or angle of view) multiplier in each axis. This acts like a “zoom” function, and lets you zoom into the center of the scan.
  • stlSize controls the width of the STL file, in millimeters. I generally stick between 60 and 80 mm.
  • useRandomExport is an experimental export option that only works when fovWidth and fovHeight are set to 1. It will attempt to do a more natural triangulation of the model.

Once you’ve framed the subject and have your settings right, click on “exportStl”. This will save an STL file to the /data folder next to the .app. They’re named like screenshots, “Kinect Export 2011-05-25 at 18.21.13.stl” These files are ready to be 3D printed. They’re scaled properly, and sitting flat on the bed. Because they have a high triangle count, they can take anywhere from 10-20 minutes to run through Skeinforge.

The second tab (click in the the second rectangle) is for lighting options if you’re having trouble seeing the live preview. The third tab is for more advanced options. I’ll mention a few:

  • temporalBlur is what causes the 3d model to fade over time, and helps with the accuracy of the scan. It’s like the “exposure time” setting on a camera: shorter exposure is noisier, longer is more sensitive to motion but less noisy.
  • smoothingAmount controls the level of blurring on the model. This can make a visually more appealing or better skeined model at the expense of loss of detail.
  • backOffset controls the size of the backing plane. If you want more layers of backing, turn this up.

I’ve found that the best parameters for printing these models are with 3-4 shells and almost 0 infill. They’ll print quickly like this, and should be fairly structurally sound.

I also recommend playing with the “OSX Kinect Application” posted by CidVilas to Thingiverse, it has a lot more options and a prettier interface.

If you’re interested in scanning an object in a more complete way, I recommend taking multiple STL exports from KinectToStl and doing boolean joins on them after cutting off the backing plane with an intersection operator. If someone tries this out, I’d love to see the results!

All the scans we (myself and MakerBot) have been taking with this app are being posted to the 3dphotobooth Thingiverse account. So if you’ve been to any of the recent events mentioned above, check it out!

Tagged with , , , , , 7 comments
 

Volumetric Tentacle Key Hook by schmarty

Of course you need a tentacle on your wall!  What else would hold your keys for you?  I mean, what do you have, hands?

We aren’t Cthulu-followers or anything, but we do find our intelligent, ocean-dwelling neighbors, the octopi (and other cephalopods) quite charming, so this derivative work by our own schmarty just seems like the perfect thing to have next to your door.

Print eight of them today!

Teennntacllles... coming out of the waaaaallll. amyhurst was asking for a key hook by our front door and decided upon a tentacled theme. guru's awesome volumetric tentacle seemed like a great choice, so I pulled it into OpenSCAD and made space for a 1" roofing nail to slide-and-lock into the back of the tentacle. (thanks to cibomahto for the tagline up top).
This thing brought to you by Thingiverse.com
In the tradition of barrel of monkey's these guys are meant to link together en masse. They can form chains or even checkered sheets by connecting on all four corners. This thing was originally conceived and designed by MakerBot's own Matthew Griffin (http://thingiverse.com/mifga). Enjoy and please send comments, we're still working on it! Check out v16 for our latest and greatest version! the sc55 version is the version that they are printing at MakerBot lately....
This thing brought to you by Thingiverse.com

[thingiverse thing=

Tagged with Leave a comment
 

3D Printing is for the birds

Apple Skewer for Birdcages 1.0

3D Printing is for the birds

Karsten needed something to hold his apple pieces to his bird cage and Thingiverse citizen webghost was ready with his 3D printer to help out.  Now Karsten does not need to evolve and webghost is a MakerBot hero!

The distribution of animal assistance devices on Thingiverse is quite interesting:

  1. Apple slice holder by webghost http://www.thingiverse.com/thing:8784
  2. Birdfeeder by araspitfire http://www.thingiverse.com/thing:4847
  3. Automatic dog feeder by 2robotguy http://www.thingiverse.com/thing:5512
  4. Automatic cat feeder by damonkohler http://www.thingiverse.com/thing:4782
  5. Cat food ball by mirk http://www.thingiverse.com/thing:8311
  6. Cat toy by flintols http://www.thingiverse.com/thing:5911
  7. Cat food divider by shutterbug http://www.thingiverse.com/thing:8411
  8. Cat waste scooper by gadgetguydk http://www.thingiverse.com/thing:340
  9. Ferret hammock bracket by chooch http://www.thingiverse.com/thing:5892
  10. Pet treat dispenser (for cats) by ScribbleJ http://www.thingiverse.com/thing:7837
  11. Hamster food dish by smwombat http://www.thingiverse.com/thing:2313

For those keeping score at home, that’s six for cats, two for birds, one for dogs, one for ferrets, and one for hamsters.  What’s your explanation for this distribution?

This is a little tool that makes it easier to attach apple pieces to your bidcage. Special thanks to Karsten for needing something that holds his apple pieces! :)
This thing brought to you by Thingiverse.com

Turn a water bottle into a bird-feeder.
This thing brought to you by Thingiverse.com

This design is still under development. The idea is to be able to buy a 5in PCV pipe from your local hardware store, print some parts, and assembly a dry dog food dispenser. This idea could also be tweaked for a cat feeder or Some how mount a stepper motor for an automatic animal feeder!
This thing brought to you by Thingiverse.com

This is my Android-powered, automated cat feeder. A Python script runs via SL4A on the phone serving up a webcam feed and taking care of triggering the feeder on schedule. For more details, video, and code, see my blog entry here:damonkohler.com/2010/11/android-automated-cat-feeder.html
This thing brought to you by Thingiverse.com

This ball is intended to give your cat exercise as they eat their food. I saw a ball like this at the pet store and, as I have extremely strong makerbot goggles, decided to design and print one. It's taken her a while, but my cat is starting to learn to use it.
This thing brought to you by Thingiverse.com

I saw a cat toy and thought why should I pay $3 for that...so I went home and made something similar. It is also a good print capability test.
This thing brought to you by Thingiverse.com

Our two cats love their wet food every morning. So much in fact, that they wake me up at 4:30 a.m. when they are ready to eat. But if they eat too much, they get too fat. So I divide each can of Friskies wet cat food into 3 servings. But I don't always divide it correctly at 4:30 a.m., so I decided to make this cat food serving guide. Print on Makerbot, and then press this into a freshly-opened can of cat food to help make the servings even.
This thing brought to you by Thingiverse.com

Taking care of two cats sooner or later involves some very nasty "sorting". Sorting litter from poop normally involves some sort of cheap plastic scoop, but since the shops were closed before I realised I needed one, I quickly threw one together in Illustrator. It's not very ergonomic, it's not very durable, but it takes 2 minutes to cut and fold and gets the job done. This is version 2.0 scaled up about 20%...
This thing brought to you by Thingiverse.com

After my ferrets' hammock fell a few times, I decided to create a mount that I could screw in securely, while also easily clip on and off the hammock clips. The bracket has been in service for almost a year and the hammock has not fallen since. The bracket can easily hold ~10lbs of ferrets when they decide to all stuff into the one hammock.
This thing brought to you by Thingiverse.com

(click on the thumbnail for the full-length photo) This is an internet-controlled pet treat dispenser. The model pictured has dual chutes and canholders so it will dispense two treats simultaneously, since we have two cats. That's not a necessary component, you can use a single shaft and canholder. The idea here is to put a webcam where it can view the dispenser, possibly something to make a noise to attract the cats, and then give them a treat. In our case, the 'webcam' and noise will be provided by a Rovio. The electronics are arduino-based and can be attached directly to a PC via USB or controlled more remotely with a bluetooth dongle. There is a (very) simple Perl CGI that will activate the pet feeder over the internet. For the record, the plastic used in my photos is: Blue and Green PLA from: diamondage.co.nz/pla.html Natural PLA from: makergear.com/products/filament Printed on my Thing-O-Matic. WIP WHY: * Not completely tested, but it WILL be complete by the end of the day, with more photos and demo videos!! * The joiners I was experimenting with in the STLs below are not really good, especially the part with 4 is basically impossible to get together, although it may work a little nicer in more flexible ABS; these prints of mine are all PLA. * My initial tests show the treats I'm using are tend to jam up in the canister instead of falling into the hopper. My initial plan to fix this is to chop up the treats into smaller bits by hand and load them in the canisters. If that does not work, I may have to resort to printing the entire mechanism somewhat larger, and/or designing some kind of agitator for the canisters. * Documentation below obviously WIP. * Software to be (written and then) provided! QUICK UPDATE: Testing various treats, sizes, shaking the cans, and stuff... we're stuck with the problem that the treats bind up in the can instead of falling into the holes. The next step in solving the problem will be to add some kind of better agitation to the treats that are still in the can. This will require redesigning some of the parts, unfortunately, which I'm doing now. UPDATE (2011-04-18): I've got a new design for the gears, gearbox, and canholders that might help alleviate the jamming problem. I'll post them after a test. - supplemental: I posted the parts, although they are untested and still printing here. UPDATE (2011-04-20): New parts tested and they work MUCH better. I think it could still be improved somewhat, and there's a bit too much room in some places, but I can probably run with this design as-is.
This thing brought to you by Thingiverse.com

This is a replacement food dish for our hamster, Chester. It is designed to fit into the hole in the plastic shelf. The upper lip keeps the bowl from falling through the hole in the shelf.
This thing brought to you by Thingiverse.com

Tagged with , , , , , , , , One comment
 

OpenSCAD Screw Libraries by syvwlch and aubenc

Poor Man's OpenSCAD Screw Library by aubenc

Screw Library by syvwlch

This morning, you are waking up to two OpenSCAD screw libraries, released within hours of each other. While they were created for slightly different purposes – aubenc‘s focused on traditional 3D printed hardware and syvwlch offering a tool that works for generating threaded rods or lead screws with custom threading angles — we are the richer for having both of them available to us.

If you haven’t yet dived into this parametric design application yet via the OpenSCAD Institute of MakerBlock tutorial series, then this is a great time. These new libraries, and a host of other recent innovations by WilliamAAdams, offer some pretty broad shoulders to stand on to unlock the mysteries of OpenSCAD.

Or you can simply take advantage of the work they’ve done and simply 3D print that bolt you’ve been needing!

This is the Thing page for the Screw Library I am working on. I could be talked into releasing it as Public Domain, but have left it as CC-BY-SA for now, at least until it's fully stabilized. The latest code is available on GitHub here:github.com/syvwlch/Thingiverse-Projects/tree/master/Threaded%20Library Currently, the library allows you to create a threaded rod with a trapezoidal profile, like the Acme or metric lead screws that are so common in CNC machines. The trapezoidThread module creates the rod along Z, centered in X and Y, but not in Z. Same logic as cylinders with center=false. The parameters are the following: length // axial length of the threaded rod // used to calculate how many turns to create // the rod is NOT trimmed to this length!!! pitch // axial distance from crest to crest pitchRadius // radial distance from center to mid-profile threadHeightToPitch // ratio between profile height and pitch // default value is 0.5 profileRatio // ratio between raised profile and pitch // default value is 0.5 threadAngle // angle between the two faces of the thread, in degrees // std value for Acme is 29 or for metric lead screw is 30 // default value is 30 RH // true if thread winds clockwise along shaft // i.e.follows the Right Hand Rule // default value is true clearance // radial clearance, normalized to thread height // default value is 0.1 backlash // axial clearance, normalized to pitch // default value is 0.1 stepsPerTurn // number of facets to create per turn // default value is 24 You can create a triangular profile thread by setting profileRatio to zero, but that is cumbersome. I will create a separate module for that and add it to this page, later. UPDATE: I have added a trapezoidThreadNegativeSpace module to create a negative space of a thread with the proper clearances to screw on, as long as you give it the same parameters. It can add two chamfered holes at the entries. It takes the following parameters on top of the ones needed for trapezoidThread: length // thickness of the part to be drilled out by this object countersunk // depth of the 45 degree chamfers, normalized to pitch // default value is zero, no chamfer I have also added a trapezoidNut module which uses the above negative space module to create a hexagonal lead nut with the right clearances to screw onto any thread that shares the same parameters. It takes the following additional parameters: radius // outer radius of the nut
This thing brought to you by Thingiverse.com
This is my humble take on a screw library to be used in your OpenSCAD scripts. If you are serious, please be, you'll better use thingiverse.com/thing:8793 syvwlch. Anyway, I had this thing for months in the lost projects folder suffering from some serious issues, well some of them remain (it doesn't render) and once the dust has been shaken it compiles quite nice and printable things. Instead of functions, this thing uses loops. Instead of rotate polyhedrons, this thing draws the polyhedron in a new set of points. Just a couple of comments to help using this thing: - I've found that a resolution of something like 1.5mm (PI/2 is what I use the most) works very well for threads that will be used with nuts made with a resolution of 0.5mm. - I've printed the threads with a very low infill (0.2) but for the nuts, setting up this value (I've used 0.45) helped a lot with the overhang issue. More pics @ aubenc.imgur.com/screws_threads_an_other_polyhedron_games
This thing brought to you by Thingiverse.com
Tagged with , , , , , , Leave a comment