////////////////////////////////////////////////////////////////////// // LibFile: constants.scad // Useful Constants. // To use this, add the following line to the top of your file. // ``` // include // ``` ////////////////////////////////////////////////////////////////////// // Section: General Constants // Constant: $slop // Description: // The printer specific amount of slop in mm to print with to make parts fit exactly. // You may need to override this value for your printer. $slop = 0.20; // Section: Directional Vectors // Vectors useful for `rotate()`, `mirror()`, and `anchor` arguments for `cuboid()`, `cyl()`, etc. // Constant: LEFT // Description: Vector pointing left. [-1,0,0] // Example(3D): Usage with `anchor` // cuboid(20, anchor=LEFT); LEFT = [-1, 0, 0]; // Constant: RIGHT // Description: Vector pointing right. [1,0,0] // Example(3D): Usage with `anchor` // cuboid(20, anchor=RIGHT); RIGHT = [ 1, 0, 0]; // Constant: FRONT // Description: Vector pointing forward. [0,-1,0] // Example(3D): Usage with `anchor` // cuboid(20, anchor=FRONT); FRONT = [ 0, -1, 0]; // Constant: BACK // Description: Vector pointing back. [0,1,0] // Example(3D): Usage with `anchor` // cuboid(20, anchor=BACK); BACK = [ 0, 1, 0]; // Constant: BOTTOM // Description: Vector pointing down. [0,0,-1] // Example(3D): Usage with `anchor` // cuboid(20, anchor=BOTTOM); BOTTOM = [ 0, 0, -1]; // Constant: TOP // Description: Vector pointing up. [0,0,1] // Example(3D): Usage with `anchor` // cuboid(20, anchor=TOP); TOP = [ 0, 0, 1]; // Constant: ALLPOS // Description: Vector pointing right, back, and up. [1,1,1] // Example(3D): Usage with `anchor` // cuboid(20, anchor=ALLPOS); ALLPOS = [ 1, 1, 1]; // Vector pointing X+,Y+,Z+. // Constant: ALLNEG // Description: Vector pointing left, forwards, and down. [-1,-1,-1] // Example(3D): Usage with `anchor` // cuboid(20, anchor=ALLNEG); ALLNEG = [-1, -1, -1]; // Vector pointing X-,Y-,Z-. // Constant: CENTER // Description: Zero vector. Centered. [0,0,0] // Example(3D): Usage with `anchor` // cuboid(20, anchor=CENTER); CENTER = [ 0, 0, 0]; // Centered zero vector. // Section: Vector Aliases // Useful aliases for use with `anchor`. CTR = CENTER; // Zero vector, `[0,0,0]`. Alias to `CENTER`. UP = TOP; // Vector pointing up, alias to `TOP`. DOWN = BOTTOM; // Vector pointing down, alias to `BOTTOM`. BTM = BOTTOM; // Vector pointing down, alias to `BOTTOM`. BOT = BOTTOM; // Vector pointing down, alias to `BOTTOM`. FWD = FRONT; // Vector pointing forward, alias to `FRONT`. FORWARD = FRONT; // Vector pointing forward, alias to `FRONT`. // CommonCode: // orientations = [ // RIGHT, BACK, UP, // LEFT, FWD, DOWN, // ]; // axiscolors = ["red", "forestgreen", "dodgerblue"]; // module text3d(text, h=0.01, size=3) { // linear_extrude(height=h, convexity=10) { // text(text=text, size=size, valign="center", halign="center"); // } // } // module orient_cube(ang) { // color("lightgray") cube(20, center=true); // color(axiscolors.x) up ((20-1)/2+0.01) back ((20-1)/2+0.01) cube([18,1,1], center=true); // color(axiscolors.y) up ((20-1)/2+0.01) right((20-1)/2+0.01) cube([1,18,1], center=true); // color(axiscolors.z) back((20-1)/2+0.01) right((20-1)/2+0.01) cube([1,1,18], center=true); // for (axis=[0:2], neg=[0:1]) { // idx = axis + 3*neg; // rot(ang, from=UP, to=orientations[idx]) { // up(10) { // fwd(4) color("black") text3d(text=str(ang), size=4); // back(4) color(axiscolors[axis]) text3d(text=str(["X","Y","Z"][axis], ["+","NEG"][neg]), size=4); // } // } // } // } // vim: expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap