OpenSCAD Intermediates: How to Make Complex Organic Shapes

Cyborg Beast OpenSCAD prototype

Cyborg Beast OpenSCAD prototype

OpenSCAD tutorials for the MakerBot blog.  In that OpenSCAD tutorial series I covered the basics of the OpenSCAD interface, how to make 2D forms, how to make some basic 3D forms, how to position those forms in 3D space, the different ways to combine forms, how to create mashups of one or more existing STL’s and OpenSCAD forms, how to use modules to reuse your code to make your life easier, how to extrude flat 2D forms into 3D forms, and how to fix design problems.  One of the last tutorials was on how to make organic looking shapes using OpenSCAD.1  However, I have a few design tricks left to share.  A little over 18 months ago I left off the series suggesting as new topics.2 There’s one particular “trick” I am using a lot as I work on designing a printable parametric prosthetic. This trick is somewhat easier to explain using pictures.  Suppose you wanted to make a shape that looked something like a “jack,” but you wanted it to have curved surfaces at the center.  Let’s see what happens when we try to use the “hull()” command.  Do do this, we’ll make a sphere at the center and put eight more spheres around it.  The code for this example is basically irrelevant, but I’ll provide it anyhow.

sphere(r=10);
rotate([0,0,0]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,0,90]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,0,180]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,0,270]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,180,0]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,180,90]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,180,180]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,180,270]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);

There’s a much easier way to create the 8 “orbiting” spheres, but that’s another post unto itself.  :)  Here’s what the above code will create:

Nine little spheres (I named one of them Pluto!)

Nine little spheres (I named one of them Pluto!)

Now, let’s use the “hull()” command to wrap around these spheres.

hull()
{
sphere(r=10);
rotate([0,0,0]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,0,90]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,0,180]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,0,270]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,180,0]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,180,90]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,180,180]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
rotate([0,180,270]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10);
)

That code will make this:

Nine spheres to... a box?

Nine spheres to… a box?

The result looks nothing like a jack! It looks more like a box with rounded edges. The limitation with the “hull()” command3 is that it connects all the outside points from the various shapes.  The result is more like what the objects would look like if you covered them in plastic wrap – but not what they would look like if you tried to use shrink wrap.4 However, our goal is to get a jack.  How should we go about this?  The same way we eat an elephant.56 We need to use “hull()” multiple times7 to connect the central sphere to the eight surrounding spheres.

hull() { sphere(r=10);
rotate([0,0,0]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10); }
hull() { sphere(r=10);
rotate([0,0,90]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10); }
hull() { sphere(r=10);
rotate([0,0,180]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10); }
hull() { sphere(r=10);
rotate([0,0,270]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10); }
hull() { sphere(r=10);
rotate([0,180,0]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10); }
hull() { sphere(r=10);
rotate([0,180,90]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10); }
hull() { sphere(r=10);
rotate([0,180,180]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10); }
hull() { sphere(r=10);
rotate([0,180,270]) translate([100,100,100*pow(2,0.5)/1.5]) sphere(r=10); }

The result would look like:

Much better!

Much better!

By breaking the overall design into pieces, you can use the “hull()” command to connect pieces of the design to one another in a seemingly organic fashion.  Here’s a set of pictures of my most recent work that uses these design tricks.

This slideshow requires JavaScript.

  1. Full list here:

    1. OpenSCAD Basics: The Setup
    2. OpenSCAD Basics: 2D Forms
    3. OpenSCAD Basics: 3D Forms
    4. OpenSCAD Basics: Manipulating Forms
    5. OpenSCAD Intermediates: Combining Forms
    6. OpenSCAD Intermediates: Mashups
    7. OpenSCAD Intermediates: Modularity
    8. OpenSCAD Intermediates: Extruding 2D Objects
    9. OpenSCAD Intermediates: Fixing Design Problems
    10. OpenSCAD Intermediates: How to Make Organic Shapes
    11. OpenSCAD Design Tips
    12. OpenSCAD Design Tips: How to Make a Customizable Thing

    []

  2. These are, in no particular order:

    • How to sketch an object with OpenSCAD
    • How to easily make regular solids – other than cubes and cylinders, like hexagons, pentagons, octagons, etc
    • How to easily make symmetrical solids
    • How to easily make irregular, but symmetrical solids

    []

  3. I almost typed “problem,” but in this case it probably is just a feature []
  4. That’s the best analogy I can come up with []
  5. One bite at a time. []
  6. It’s such a damn shame when a cool domain name is taken – and there’s nothing there.  Such as eatanelephant.com []
  7. 8 times []
March 30, 2014 | Comments Closed

How to Make Awesome Cardboard Paper Mache Anything

Awesome Paper Mache Hats

Awesome Paper Mache Hats

A few weeks ago a friend of mine had a “bad movie night” where he was showing the film1Sharknado.”  Inspired by the theme for the party, I decided I had to wear a shark hat for the event.  After making my hat, my daughter requested a monkey hat.  This was not a request I could refuse.

I took pictures of the process to show you how you can make your own.  I haven’t ever tried to make paper mache hats before, so this was not only a lot of fun – but a great learning experience.  While I own the really great paper mache monster books by Dan Reeder, I only used them for inspiration and tried out a few new things on my own.

Even though I used this process to make hats, the directions here could easily be adapted to making anything out of paper mache.

1. Step 1: Gather Materials and Tools

All the things you need to make your own awesome paper mache anything

All the things you need to make your own awesome paper mache anything

Here’s what you need to get started:

  1. Cardboard Boxes.  Cardboard forms the “skeleton” of the structure.  It’s cheap, ubiquitous, sturdy, and easy to cut and form.
  2. Masking Tape.  Once the cardboard has been cut, liberal use of masking tape will keep your creation together until it can be covered with paper mache.
  3. Scissors and Utility Knife.  Scissors can be very helpful in cutting cardboard or paper.  While scissors can be helpful, and appropriate for kids, I find a utility knife gets the job done faster.
  4. Measuring Tape.  If you’re not making a hat (or other apparel or armor) you won’t need this.  But it is helpful when making measurements.  ((In a pinch, you could just use a piece of yarn or string to mark lengths, and then put the yarn on the cardboard for reference.))
  5. Plastic Wrap.  Whether you’re working with gluey paper or paint, the process is messy.  I would recommend covering the work surface with plastic wrap.  I happened to have a really large plastic bag, which I taped directly to the table.
  6. Glue.  I just used a big bottle of Elmer’s white glue from the hardware store, but I’m pretty sure wood glue would have worked as well, if not better.  It’s also more versatile and sturdy.
  7. Plastic Tray.  The next time you get take-out or have a plastic liner from inside some packaging, save it.  It makes a great wide tray for mixing water and glue or when your project is dry, it is also great for mixing paints.
  8. Paper Grocery Bags.  The “twist” with this process is that I used torn up grocery bags, rather than the traditional newspaper.  It turned out this was a really good idea for a number of reasons.  Paper bags are a cheap and plentiful material.  When thoroughly wet strips of paper bags are easy to place, mold and shape. However, the most important features of paper bags is that they hold glue and water really well and then dry quickly into a sturdy hard shell.  In fact, they form such a sturdy surface that I only had to do a single layer of paper mache around the entire hat.  This means that you can quickly put down a single layer of paper bag strips all over your cardboard form, wait a few hours for it to dry, and then get to work finishing the project.
  9. Paper or Newspaper.  While grocery bags work really well to cover your cardboard form, they can leave some small gaps where they overlap.  When I found gaps in the project, I simply used a few thin strips of the newsprint style paper to cover the holes and smooth out spots on the rough paper bag layer.
  10. Cup of Water and Paintbrushes.  An old mug is best and pile of cheap dollar store brushes is probably fine.
  11. Paints.  I prefer acrylic paints.  They are cheap, can be diluted with water, easy to mix, they stay wet long enough for you to blend, but not so long that you have to wait days for it to dry.  They also clean up well with water.

2. Step 2: Create Cardboard Form

Process for creating awesome hat

Process for creating awesome hat

The process I used to create the cardboard forms for the hats was pretty quick and easy.  I measured the circumference of my daughter’s head and then the distance from her ears to the top of her head.  Using these measurements, I cut out a strip of cardboard as tall as the distance from her ears to the top of her head and as wide as the circumference of her head – with a little extra to allow for overlap.

This slideshow requires JavaScript.

In the pictures above you can see the strip of cardboard cut out and then taped into a cylinder with the masking tape.

This slideshow requires JavaScript.

Cut strips into the cardboard cylinder, fold them down, and add enough masking tape to mold it into a hat-shape.

3. Step 3: Add Embellishments

This slideshow requires JavaScript.

A paper mache hat is way more interesting with some kind of embellishment, like ears, shark fins, wings, or whatever else.  Here I cut ear shapes out of cardboard, curved them slightly, taped them to hold the curve, and then taped them to the hat.  When I made the shark hat, I cut a long slit into the hat through the tape and inserted the shark fin through the underside of the hat.  Don’t be afraid to use a lot of tape.

4. Step 4: Prepare the Work Surface, Paper Strips, and Glue Mixture

This slideshow requires JavaScript.

Cover the work surface with plastic sheeting.  I used a big plastic bag from a helium balloon order from my daughter’s birthday.  However, a big garbage bag or plastic wrap would also work well.  Paper bags from the grocery store work really well – but there are too thick in places.  Tear off the handles and pull the paper bag apart at the seams.  You’ll probably need to discard some of the sections where the the paper bag is too thick to use.

Add some glue (I used about a tablespoon) and warm water (about a half cup or so) to the plastic pan.  It should look like milk or heavy cream once you’ve mixed it up.

This slideshow requires JavaScript.

Completely soak the strips of paper bag in the glue mixture.  They should be completely soaked all the way through until they’re nearly translucent.  Unlike paper mache with thin pieces of newspaper, you won’t need to put layers and layers of paper on the form – just one layer where the pieces overlap a little should work fine.  The excess glue from the strips of paper will soak into the cardboard and help make the entire structure sturdy.

5. Step 5: Set Model to Dry, Patch Holes with Paper

This slideshow requires JavaScript.

Since the cardboard helps soak up the water, the entire structure should dry relatively quickly.  I put the shark hat outside in the sun for a few hours and it was ready for painting.  Once the hat is dry (or dry enough), you’ll probably notice some holes and gaps from the paper bag strips.  Tear up some newsprint paper, soak those in the gluey mixture, and cover and smooth out any defects.  Once these pieces dry, the project will be ready to paint!

6. Step 6: Paint to Suit

This slideshow requires JavaScript.

The great thing about acrylic paints is that they are so easy to work with.  They dry really quickly, so you can paint one side of the model, work on the other side, and then come back to the first side to add details.  In any case, just paint the project to suit and you’re done!

Each hat went together really quickly.  I put the cardboard form together in about 15 minutes, covered it with the gluey paper bag strips over maybe 30 minutes, let it dry for several hours, and then paint it over the course of maybe an hour.

If you make your own paper mache hat (or other sculpture), let me know in the comments!

  1. And I use the word “film” loosely here []

Mechanical Movements and Design Inspirations

Mechanical Movement #36

Mechanical Movement #36

I’ve been working on a few different mechanical projects for a while now.  On the one hand, I’m severely limited by my complete and utter lack of mechanical engineering knowledge.  On the other hand, I’ve got a 3D printer so I can always arrive at a decent approximation through enough trial and error.

Of course, it’s not like it would kill me to actually learn something about the basics of mechanical engineering.  With a bit of googling, I found a page named, “Kinematic Models for Design” which links to a large number of historical texts relating to mechanical engineering – including works from Charles Babbage and Leonardo da Vinci.  I found two to be particularly useful – Mechanisms for Intermittent Motion, by John Bickford, 1972, and Five Hundred and Seven Mechanical Movements, by Henry Brown, 1871.

Last, but not least, I want to mention that a friend of mine, Rob Gisebert, told me about the website 507movements.com which is an online repository of the various movements from Brown’s book.  Even more interesting, many of these complex movements are are accompanied by animated versions of the drawings in the book.

July 6, 2013 | Comments Closed

New Google Groups to Discusss 3D Design Marketplaces

Looking towards the 3D future...

Looking towards the 3D future…

If you read this blog, I think you would be interested in joining a new Google Group for discussing emerging 3D design marketplaces.1 It was started a few days ago by the illustrious 3D designer and artist Emmett Lalish to start a dialog about designing in the brave new world of digital things.

I generally share my 3D designs freely on Thingiverse.  Some designs I don’t care much about, I share them in case someone else might fight them interesting or useful.  Some I don’t have much of a right to – a very slight variation / derivative of someone else’s work or a derivative of a work that walks the fine line that is “fair use” such as my OpenSCAD Voltron.  Some of my designs are things which I think I might be able to turn into something I could sell or be the start of a little business.

And some of my designs I want to share and am particularly proud of – such as my sushi set, pirate ship, and the printed parts for my PlotterBot.  For these very few designs, I choose a “non-commercial” license.  I’m so proud of these designs that I want to share them, and yet I feel that my creativity and hard work merits reward – especially if someone makes a profit off of them.

  1. Photo courtesy of David []
May 26, 2013 | Comments Closed

Oh, OpenSCAD…

One of things I really like about OpenSCAD is how anything I make in it is guaranteed to be manifold.  It’s a solid modeler and by manipulating, adding, and subtracting solids – I should always end up with another solid.  I exported two of the parts necessary for a Pez Powered Disc Shooter only to discover that OpenSCAD refused to compile one of the parts – because that part had some polygons with an incorrect winding order.  Mind, I had no problems exporting the part in the first place – but importing it back?  Nope.

Oh, OpenSCAD, is our love affair over so soon?

Design idea – printable calipers

There are plenty of lasercut calipers on Thingiverse.  I suppose the problem with a 3D printable caliper is getting the accuracy down.

However, why not take the accuracy out of the equation?  It should be simple enough to create a printable little caliper that has a thin slot for inserting a printable paper ruler.  The easiest way to achieve the thin slot would be to make the calipers out of two separate pieces that fit together.   Then the calipers could be designed to have a little window for viewing the sliding edge of the calipers against the paper ruler.

Yes, you could print one of the business card ones on cardstock, but why not just print a durable plastic one if you can?

I’m so giddy!

I can’t wait for OpenSCAD to finish rendering this new object I’ve fashioned out of a DXF file!

Toolpath was basically:

  • Inkscape importing PNG image
  • Convert image to SVG, reduce colors, simplify lines
  • Export to DXF
  • Incorporate extruded DXF into design

It will be mine.  Oh, yes, it will be mine. 12

 

  1. The precious. []
  2. That’s a red herring.  It’s clearly a Doctor Who themed object. []
May 4, 2011 | Comments Closed

What’s the best toolpath for SVG to OpenSCAD?

While I have one selfish motive for wanting a reliable toolpath for going from an SVG to OpenSCAD, I’d also like to do a tutorial on this. 1 2.

  • I can export an SVG from Inkscape to a DXF.
  • I can import that same DXF into OpenSCAD.
  • I can’t render the DXF or extrude it into a solid.

I just can’t seem to make OpenSCAD make heads or tails of that DXF.  Is this a problem with the DXF files produced by Inkscape?  A little bit of Googling tells me that Inkscape v0.48 (the one I’m using) exports in DXF R13 format which includes features that are not well supported by OpenSCAD.  My attempts at finding plugins that will successfully allow Inkscape to expert to DXF R12 format have not been fruitful.

  1. 3D Models with OpenSCAD on Make uses a toolpath that isn’t available in my version of Inkscape
  2. DXF R12 exporter, didn’t work for me
  3. DXF R12 exporter, didn’t work for me either
  4. Yet another DXF R12 exporter that did not work for me
  5. Link suggesting that something called “pstoedit” might be helpful in converting SVG’s to DXF R12’s.
  6. From Photo to Inkscape to DXF to OpenSCAD to MakerBot to Costume Jewelry is an excellent tutorial on the exact toolpath I would like to get working

After MUCH fiddling around I have discovered that the only DXF exporting plugin I can get to work is the one called “Better DXF Output”, NOT to be confused with “Better Better DXF Output.”  Unfortunately, I’ve installed so many of these little plugins I no longer recall exactly which combination of them might actually be working for me.  I’ll do a little investigation and post a short tutorial on how it’s worked for me.

Edit: I’m 85% certain this is the plugin that worked for me.  http://www.bobcookdev.com/inkscape/inkscape-dxf.html

  1. Selfish as in I already have an idea for how I would use this knowledge to make something cool. []
  2. What could it be?  Hint:  It’s related to something that rhymes with “Doctor Who” []