Hey! This thing is still a Work in Progress.
Files, instructions, and other stuff might change!
Breed Customizable 4x Leash Hook
This thing can be customized with MakerBot Customizer!
Open in Customizer
Description
I wanted to make a hook to mount near the door to hang the dog leash, my keys, and a "paw towel" on. I have a cute little pug named doughnut and I thought it would be cool to put a little pug silhouette on it, but then I thought that this might be a good opportunity to utilize the Makerbot "customizer" app for people with other breeds.
I am very new to OpenSCAD, the only other thing I have made is a customizable little tube. However, I am always eager to learn so I started doing some research. I was looking for a way to draw the silhouettes when I stumbled upon dnewman's "Inkscape to OpenSCAD converter v2". thingiverse.com/thing:25036
Perfect! I simply vectored my silhouettes in illustrator and used dnewman's Inkscape extension to convert them to .scad.
I am sure there is a better way to make the "options" then the way I did it (feel free to post in the comments).
Current Available Breeds: beagle, boston, boxer, bull, chihuahua, dachshund, doberman, german, golden, greyhound, lab, pomeranian, poodle, pug, rottweiler, schnauzer, springer, yorkshire.
PS - There are a lot of breeds out there so if you would like me to add one, just let me know. Otherwise, I will be slowly adding more at random.
I am very new to OpenSCAD, the only other thing I have made is a customizable little tube. However, I am always eager to learn so I started doing some research. I was looking for a way to draw the silhouettes when I stumbled upon dnewman's "Inkscape to OpenSCAD converter v2". thingiverse.com/thing:25036
Perfect! I simply vectored my silhouettes in illustrator and used dnewman's Inkscape extension to convert them to .scad.
I am sure there is a better way to make the "options" then the way I did it (feel free to post in the comments).
Current Available Breeds: beagle, boston, boxer, bull, chihuahua, dachshund, doberman, german, golden, greyhound, lab, pomeranian, poodle, pug, rottweiler, schnauzer, springer, yorkshire.
PS - There are a lot of breeds out there so if you would like me to add one, just let me know. Otherwise, I will be slowly adding more at random.
Instructions
*Launch in the Customizer app.
- There will be no rendered object until you select a breed from the drop down.
*Select a Breed.
- Current Available Breeds: beagle, boston, boxer, bull, chihuahua, dachshund, doberman, german, golden, greyhound, lab, pomeranian, poodle, pug, rottweiler, schnauzer, springer, yorkshire.
*Create .STL
Enjoy!
PS - There are a lot of breeds out there so if you would like me to add one, just let me know. Otherwise, I will be slowly adding more at random.
- There will be no rendered object until you select a breed from the drop down.
*Select a Breed.
- Current Available Breeds: beagle, boston, boxer, bull, chihuahua, dachshund, doberman, german, golden, greyhound, lab, pomeranian, poodle, pug, rottweiler, schnauzer, springer, yorkshire.
*Create .STL
Enjoy!
PS - There are a lot of breeds out there so if you would like me to add one, just let me know. Otherwise, I will be slowly adding more at random.
License
Breed Customizable 4x Leash Hook by areeve20 is licensed under the Attribution - Non-Commercial - Creative Commons license.

I see in your openscad-script that you repeat the code for the Hooks for every breed.
Code that is the same every time can be put in a 'module'.
That way you can save some diskspace ;-)
like so: //sample code
module makeCube(){
translate([5,6,7])
rotate(45,[1,0,0])
cube([1,2,3]);
}
//Make a cube
makeCube();
//Make another cube, saves a couple lines of code
makeCube();
I'll check if I make your code a bit shorter (and more simple / easy to read) that way
Done!
Add the module 'hooks' somewhere at the end of your file, and type 'hooks();' everytime you need hooks ;-)
module hooks(){
union(){
translate([-22.5,0,0]){
hookPart();
}
translate([12.5,0,0]){
hookPart();
}
translate([-60,0,0]){
hookPart();
}
translate([50,0,0]){
hookPart();
}
//base-part
translate([0,-40,2])
cube([120,10,4],center=true);
}
}
module hookPart(){
translate([0,-40,21])
rotate([45,0,0])
cube([10,10,5]);
translate([0,-45,0])
cube([10,5,25]);
}
hooks();