Horse
The horse is designed to pull the small sleigh (a separate project), but you can use it for any horsing around you want.
The project began with photo and then went into Inkscape where I converted it into a silhouette and exported it using the Path to SCAD extension by Dan Newman, an add-on extension you will need to download and add to Inkscape if you want to use Inkscape in this way, as a step in your 3D designs.
Rotating the shape on the X Axis and translating it up to zero on the Y axis allowed me to begin adding lumps to "flesh out" the flat horse shape. Most of the lumps are combinations of spheres and cylinders. The bulk of the body, for example is a hull() around two spheres.
// chest and belly
hull(){
translate([8,0,35])
sphere(11.5);
translate([-20,0,38])
sphere(8);
}
For the cheeks, the spheres needed to be squashed. There are a couple of built-in command modules which could work here, resize() and scale(). I used scale(), experimenting with different amounts of "squash" and "stretch" until I was happy. In some cases later stages caused going back to an earlier part for adjustments. I do not expect perfection on early iterations. I hope you see that OpenSCAD programming allows a more nuanced process. That is one of the reasons I recommend using 3D printing in programming classes. It is less the "language" and more being able to use the language components bit by bit to develop the desired effect/project. In this case, two squashed spheres in a hull worked much better than a single sphere which might have looked too egg-shaped.
// cheeks of horse head
hull(){
//translate([25,-2,51])
//scale([1,.4,.7])
//sphere(7);
//translate([25,2,51])
//scale([1,.4,.7])
//sphere(7);
}
The legs are mostly cylinders with spheres for shoulder, knee and ankle. Early cylinders were too thin and a leg broke off of the first print. There were other flaws, too.
// front legs
// right
translate([13,-6,34])
sphere(4.5);
translate([9.3,-6,15])
rotate([0,10,0])
cylinder(19,2,4.5);
// knee
translate([9.6,-6,16])
sphere(2.4);
// shin
translate([6.5,-6,4])
rotate([0,12,0])
cylinder(14,1.5,2);
// ankle
translate([7,-6,4])
sphere(2);
// hoof and foot
hull(){
translate([9,-6,0])
cylinder(2,3,2.5);
// foot
translate([9,-6,2])
rotate([0,-60,0])
cylinder(3,2,1.5);
}
Though I did not actually focus on the legs all by themselves, It might be useful for you out there to look at some parts without the rest of the body. As you work, you can select sections of code and use the keyboard shortcut Ctrl+D to comment the selection, and then use the reverse Ctrl+Shift+D to uncomment it again. You can also find those options in the Edit menu. Commenting out sections allows you to focus on the areas which are giving you the most trouble.
In this project the code for the silhouette was no longer needed, but it has been left (commented out) in the final scad file version you can download below to allow you to try to use it the same way I did, making your own version of the horse...or maybe as the base for another quadruped?
Version03 stopped at a stage that seemed far enough along to try a test print. I used the Lulzbot Mini's Cura software option to add support so the belly and nose would not fail. Without support, the belly and nose will fail. Because each layer happens only when lower layers have been done, the nose would not begin printing until halfway up the horse, just hanging up there in mid-air. Unfortunately, even with the support, the nose didn't work right away. The belly wasn't too bad, just a few stray strands of plastic extruded where they didn't belong, but easy to snip away. The nose shifted sideways or ultimately broke off for no obvious reason. In retrospect, I think the print head pushed sideways and bumped the nose which was out on its own, away from the bulk of the body. Adding the eventual diagonal of support between chin and neck kept the nose and body together, and the thin blade was easy to cut away.
As it turned out, the legs were too thin, so it was on to another version where adding a tail was combined with trying to make my own supports, including a brace between the chin and chest, because without that, the nose broke off from the head, print after print. I wound up with a plastic remuda, some looking vaguely like cattle. Look hard, you'll see them.
Adding the tail and changing the nose from a sideways cylinder into a sphere along with some tiny cylinder nostrils leaves me at the stage where I am satisfied. Snipping off the supports works like a charm.
The one horse open sleigh came out just great!
Available Files:
horse04a.scad - with silhouette shape commented outhorse04a.stl - print your own right away!
GPL3 License