In these times of ebooks and mobile technology, I find that I still read many printed paper books, some from the local library and some which sit in my TBR pile. When I finally get to reading a book, I keep it in a prominent place on a table or dresser. These bookends make a nice organizer for the current paperbacks and hard covers.
There's very little to the design, a thin slab to go under the books and a vertical, thicker slab with rounded corners, but if that's all you want, go to the office supply store. Such a simple bookend is inexpensive. Some like these are available for about $4.00
Nope! If I am going to make my own bookends, I want something fancier. In my case, I added a personal logo. Then I went on to make some other versions for some friends.
For this style of bookend, you will need to find or make a logo. Most of such logos can be made as a fancy polygon, something OpenSCAD works well with. Manually constructing a fancy polygon is too tough for me. Fortunately, I use Inkscape, a Free Software graphic design tool which can export to OpenSCAD files. The SCAD file can then be added to the bookend code. I generally employ the command use <filename.scad> .which makes the imported file available as a module which can be scaled and moved into place to fit on the vertical bookmark slab.
The outside, thicker portion of the flat slab offers another option. You can use any available SCAD file to put a 3D print figurine standing on the outer slab. I like GNU/Linux and had earlier made a version of Tux, the Linux mascot.
When you position the figure, make sure to set it so it is a millimeter or so of solid overlap so it is embedded into the flat slab, otherwise it will give you a warning about "2-manifold" errors. That error basically means a part of the design doesn't properly overlap parts. Parts cannot merely touch. They must overlap, at least a little bit or be separate on the print surface.
I'll leave it to you to read through the SCAD code if you plan to add your own logo or figure. See how it is done in the bookends Tux file or the bookends GNU logo file.
Of course, maybe you don't want to use any logo. in that case, eliminate the part of the bookend file that positions the logo.
rotate([90,0,90]) translate([wid*.66,depth/2.3,0]) scale([1,1,1]) gnu(2); // This is the module "imported" earlier
use <filename.scad> is one of two similar commands. "Use" makes the contents of the file available in the form of a module.
include <filename.scad> automatically runs the included commands as if they were part of the main file which, in this case, would simply put the GNU logo in the center on the x/y crosshairs. Since the logo needed to be specifically positioned, "use" was appropriate. Alternatively, you could copy the used file's contents and make it a module within the main file. (That is what I've done with the Tux figurine bookends.) That reduces the number of files to pass along, but "use" is apparently a common technique, and I wanted to be able to explain the logic as I understand it.
SCAD files for study/modification and STL files for quick printsbookend-gnu.scad - bookend-gnu.stl
gnu-logo.scad - the code needed to add the GNU logo with use <filename.scad>
bookend-tux.scad - bookend-tux.stl