print a slide holder using a 3D printer

This project is inspired by Kurt's note.

I bought an open-source 3D printer and print a slide holder to fulfill current microscopy needs

image on actin.cn

image on actin.cn

image on actin.cn

image on actin.cn

Below was what I did:

(1) use openscad 2013.1 to generate the model (.stl file)

(2) use ReplicatorG 0040, to convert .stl into .gcode; change the plate heating temperature to 115 degree (M109 S115)

(3) export .s3g file and copy it into a SD card; load to the machine and go

FYI, the model script

// in millimeter
// Liang Cai, 2013-5-7

holder_x = 159;
holder_y = 109;
holder_thick = 3;
coverslip_hold = 0.5;
short_open = 68;
open_width = 50.8;
long_open = 78; // 3 inch, 76.2 mm
lower_z = 7;
lower_spacer = 15;
letters = "   actin.cn 2013";

/* do not change things below */
use <MCAD/fonts.scad>;
thisFont = 8bit_polyfont();
x_shift = thisFont[0][0];
y_shift = thisFont[0][1];
theseIndicies=search(letters, thisFont[2], 1, 1);

difference() {
    translate([-holder_x/2+7, -holder_y/2+7, 0])
    minkowski() {
        cube(
            size = [holder_x-14, holder_y-14, holder_thick]
        );
        cylinder(
            r = 7,
            h = lower_z
        );
    }
    union() {
        translate([-short_open/2, -open_width/2, 0])
        cube(
            size = [short_open, open_width, coverslip_hold]
        );
        translate([-long_open/2, -open_width/2, coverslip_hold])
        cube(
            size = [long_open, open_width, holder_thick + lower_z]
        );
        translate([-holder_x/2, -holder_y/2, 0])
        cube(
            size = [lower_spacer, holder_y, lower_z]
        );
        translate([holder_x/2 - lower_spacer, -holder_y/2, 0])
        cube(
            size = [lower_spacer, holder_y, lower_z]
        );
        translate([-holder_x/2 + 1.5 * lower_spacer, -holder_y/2, holder_thick])
        cube(
            size = [holder_x - 3 * lower_spacer, holder_y, lower_z]
        );
    }
}
translate([-holder_x/2 + 4, -holder_y/2 + 7, holder_thick])
for( j=[0 : (len(theseIndicies)-1)] ) {
    translate([j*x_shift, -y_shift/2])
    linear_extrude(height = 1)
    polygon(points=thisFont[2][theseIndicies[j]][6][0], paths=thisFont[2][theseIndicies[j]][6][1]);
}