standard logo    Personal Education


bookmark

Bookmark

In some ways, this is a perfect starter project for someone new to 3D printing. It has a real value for a friend who reads. It uses very little plastic and prints quickly.

You could begin with a simple, sharp-cornered rectangle, but making the same shape with rounded corners is going to be a little more pleasant in real use, fewer nicked fingers.

OpenSCAD has a neat trick, a function called minkowski(), for rounding the corners of a sharp-cornered rectangle. OpenSCAD calls a solid rectangle a cube, but the OpenSCAD cube has independent values for width, length and height (or, as I've used it, thickness). You can make any size you want, although the final size listed here fits well in both hardcover and paperback books.


$fn=50;
len=140;
wid=40;
thk=.65;

module slab(){
minkowski(){
cube([wid,len,thk]);
    cylinder(thk,1,1);
}}

As is, printing the slab alone makes a bookmark, and with no other features, the plastic slab can be reduced to 0.5 (half a millimeter). I was, of course, not satisfied to stop with a plain slab. I wanted other cool features.

The primary cool feature is making the slab personal by adding a name. The font command in OpenSCAD defaults to an internal version of Liberation Sans so you can use OpenSCAD no matter what fonts your computer has installed. But, adding letters on top of the slab increases the thickness and introduces points that might catch on the edge of a page while sliding the mark into the book. One answer is to use difference() to cut the letters through the slab. Then the bookmark can stay thin. However, Some letters pose a problem when cut through the slab. Consider the letter A. If you print it so that it cuts through the slab, the little triangle in the middle will just fall out. To me, that looks sub-par.

The solution is a stencil font. There are quite a few out there, but I settled on a free version called "Octin Stencil". A quick Internet search for that name or even "free stencil font" will give you a few sources and other font choices, too. Fonts from the Internet come in zip files suitable to extract and install for Mac, Windows and Linux. Of course, OpenSCAD is Free Software, and you'll need it installed on your computer to follow these instructions.


difference(){
    slab();
        translate([wid/2,len/10,-1])
        rotate([0,0,90])
        linear_extrude(thk*5){
            // valign="center" centers text on width
        text("jeff",font="Octin Stencil", valign="center", size=22);} 
        // resize text as needed
        translate([wid/2,5,-1])
        cylinder(thk*5,2,2);
        }

Though optional, a hole near one end of the bookmark lets you add a knotted piece of yarn to make the bookmark easy to grab. I thought it would look even better with a "book" mark on it, filling some of the space beyond the name. Create your own mark if you don't want to use this one.


// add these as the last three lines before the closing bracket in the code above. 
    translate([wid/2,len*.87,thk*.8])
scale([.30,.27,.05]) // may need to resize the mark if you change the slab size
mark();

From up in the corner of the lecture hall comes a question:
Whoa, Buster! Hold on just a minute. What's that mark()? Where did that picture of a book come from. It is not a function found in OpenSCAD.

Okay. I'll fess up. I also use the excellent Free Software program, Inkscape. With the aid of a plugin (Paths to OpenSCAD by Dan Newman), Inkscape will export any shape you make as OpenSCAD code, generally as complex polygons. When you look at the full program code of the bookmark02.scad or bookmark03.scad file, you will see, near the top, the line use <mark.scad> which is imported as code without having to copy and paste to your bookmark file. In OpenSCAD terms, this file is a "library". With some libraries, there are many potential functions. In this library only the one mark() function is available.

jeff bookmark

There's one more trick possible here. By carefully dividing the width into thirds and adjusting the font size, it is possible to make two lines of text. For version03 of the bookmark, I wanted to create a more generic bookmark that my local library could print on their 3D printer to give out when doing demos in their maker lab or even to sell as a fundraiser.

bookmark

Available Files:

bookmark02.scad - Basic bookmark, one line of text
bookmark03-twolines.scad - Bookmark with two lines of text
mark.scad - the book "mark" that is on the "bottom" of the bookmark
GPL3 License

show me more