diff --git a/Bed_David/NOTES.md b/Bed_David/NOTES.md deleted file mode 100644 index 0039314..0000000 --- a/Bed_David/NOTES.md +++ /dev/null @@ -1,9 +0,0 @@ -2340-88 -Bed breedte - staanders: -2252 - -Latten zijn 69 breed. Gat er tussen van ~60. Daarmee heb ik 18 latten nodig. -(69*18)+(60*17) -2262 - -Lat ~900 lang. (iets minder). Dan passen er 3 uit een lat van 2700 lang. => 6 van nodig. diff --git a/Bed_David/TextGenerator.scad b/Bed_David/TextGenerator.scad deleted file mode 100644 index 51d19dd..0000000 --- a/Bed_David/TextGenerator.scad +++ /dev/null @@ -1,139 +0,0 @@ -//Draw text -scale([4,4,4]) drawtext("Hello World!"); - -//Draw character set -//scale([2,2,2]) drawtext(" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}"); - -module drawtext(text) { - //Characters - chars = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}"; - - //Chracter table defining 5x7 characters - //Adapted from: http://www.geocities.com/dinceraydin/djlcdsim/chartable.js - char_table = [ [ 0, 0, 0, 0, 0, 0, 0], - [ 4, 0, 4, 4, 4, 4, 4], - [ 0, 0, 0, 0,10,10,10], - [10,10,31,10,31,10,10], - [ 4,30, 5,14,20,15, 4], - [ 3,19, 8, 4, 2,25,24], - [13,18,21, 8,20,18,12], - [ 0, 0, 0, 0, 8, 4,12], - [ 2, 4, 8, 8, 8, 4, 2], - [ 8, 4, 2, 2, 2, 4, 8], - [ 0, 4,21,14,21, 4, 0], - [ 0, 4, 4,31, 4, 4, 0], - [ 8, 4,12, 0, 0, 0, 0], - [ 0, 0, 0,31, 0, 0, 0], - [12,12, 0, 0, 0, 0, 0], - [ 0,16, 8, 4, 2, 1, 0], - [14,17,25,21,19,17,14], - [14, 4, 4, 4, 4,12, 4], - [31, 8, 4, 2, 1,17,14], - [14,17, 1, 2, 4, 2,31], - [ 2, 2,31,18,10, 6, 2], - [14,17, 1, 1,30,16,31], - [14,17,17,30,16, 8, 6], - [ 8, 8, 8, 4, 2, 1,31], - [14,17,17,14,17,17,14], - [12, 2, 1,15,17,17,14], - [ 0,12,12, 0,12,12, 0], - [ 8, 4,12, 0,12,12, 0], - [ 2, 4, 8,16, 8, 4, 2], - [ 0, 0,31, 0,31, 0, 0], - [16, 8, 4, 2, 4, 8,16], - [ 4, 0, 4, 2, 1,17,14], - [14,21,21,13, 1,17,14], - [17,17,31,17,17,17,14], - [30,17,17,30,17,17,30], - [14,17,16,16,16,17,14], - [30,17,17,17,17,17,30], - [31,16,16,30,16,16,31], - [16,16,16,30,16,16,31], - [15,17,17,23,16,17,14], - [17,17,17,31,17,17,17], - [14, 4, 4, 4, 4, 4,14], - [12,18, 2, 2, 2, 2, 7], - [17,18,20,24,20,18,17], - [31,16,16,16,16,16,16], - [17,17,17,21,21,27,17], - [17,17,19,21,25,17,17], - [14,17,17,17,17,17,14], - [16,16,16,30,17,17,30], - [13,18,21,17,17,17,14], - [17,18,20,30,17,17,30], - [30, 1, 1,14,16,16,15], - [ 4, 4, 4, 4, 4, 4,31], - [14,17,17,17,17,17,17], - [ 4,10,17,17,17,17,17], - [10,21,21,21,17,17,17], - [17,17,10, 4,10,17,17], - [ 4, 4, 4,10,17,17,17], - [31,16, 8, 4, 2, 1,31], - [14, 8, 8, 8, 8, 8,14], - [ 0, 1, 2, 4, 8,16, 0], - [14, 2, 2, 2, 2, 2,14], - [ 0, 0, 0, 0,17,10, 4], - [31, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 2, 4, 8], - [15,17,15, 1,14, 0, 0], - [30,17,17,25,22,16,16], - [14,17,16,16,14, 0, 0], - [15,17,17,19,13, 1, 1], - [14,16,31,17,14, 0, 0], - [ 8, 8, 8,28, 8, 9, 6], - [14, 1,15,17,15, 0, 0], - [17,17,17,25,22,16,16], - [14, 4, 4, 4,12, 0, 4], - [12,18, 2, 2, 2, 6, 2], - [18,20,24,20,18,16,16], - [14, 4, 4, 4, 4, 4,12], - [17,17,21,21,26, 0, 0], - [17,17,17,25,22, 0, 0], - [14,17,17,17,14, 0, 0], - [16,16,30,17,30, 0, 0], - [ 1, 1,15,19,13, 0, 0], - [16,16,16,25,22, 0, 0], - [30, 1,14,16,15, 0, 0], - [ 6, 9, 8, 8,28, 8, 8], - [13,19,17,17,17, 0, 0], - [ 4,10,17,17,17, 0, 0], - [10,21,21,17,17, 0, 0], - [17,10, 4,10,17, 0, 0], - [14, 1,15,17,17, 0, 0], - [31, 8, 4, 2,31, 0, 0], - [ 2, 4, 4, 8, 4, 4, 2], - [ 4, 4, 4, 4, 4, 4, 4], - [ 8, 4, 4, 2, 4, 4, 8] ]; - - //Binary decode table - dec_table = [ "00000", "00001", "00010", "00011", "00100", "00101", - "00110", "00111", "01000", "01001", "01010", "01011", - "01100", "01101", "01110", "01111", "10000", "10001", - "10010", "10011", "10100", "10101", "10110", "10111", - "11000", "11001", "11010", "11011", "11100", "11101", - "11110", "11111" ]; - - //Process string one character at a time - for(itext = [0:len(text)-1]) { - //Convert character to index - ichar = search(text[itext],chars,1)[0]; - - //Decode character - rows - for(irow = [0:6]) { - //Select value to draw from table - val = dec_table[char_table[ichar][irow]]; - - //Decode character - cols - for(icol = [0:4]) { - // Retrieve bit to draw - bit = search(val[icol],"01",1)[0]; - - if(bit) { - //Output cube - translate([icol + (6*itext), irow, 0]) - cube([1.0001,1.0001,1]); - } - } - } - } -} diff --git a/Bed_David/assembly.png b/Bed_David/assembly.png deleted file mode 100644 index 0b490ed..0000000 Binary files a/Bed_David/assembly.png and /dev/null differ diff --git a/Bed_David/assembly.scad b/Bed_David/assembly.scad deleted file mode 100644 index f1cf774..0000000 --- a/Bed_David/assembly.scad +++ /dev/null @@ -1,150 +0,0 @@ -include -include - -use -use - -// The posts -post_foot_wall(); - -translate([beam_width + matress_width, 0, 0]) - post_foot_room(); - -translate([0, bed_length - beam_depth, 0]) - post_head_wall(); - -translate([beam_width + matress_width, bed_length-beam_depth, 0]) - post_head_room(); - -translate([beam_width + matress_width, beam_depth + step_width, 0]) - post_stairs(); - -translate([beam_width + matress_width, bed_length - step_width - beam_depth*2, 0]) - post_head_standoff(); - -// The horizontals -// Foot end -translate([beam_width, 0, bed_height-beam_width]) - horizontal_headfootend(); -color("black"){ - translate([beam_width, 0, bed_height+1*beam_width]) - rotate([90,0,0]) - dimensions(length=matress_width); -} -translate([beam_width, 0, 0]) - horizontal_headfootend(); -color("black"){ - translate([-beam_width, 0, 1*beam_width]) - rotate([90,-90,0]) - dimensions(length=((bed_height-bed_box_height)/5)-beam_width); -} - -translate([beam_width, 0, bed_height-bed_box_height]) - horizontal_headfootend(); -color("black"){ - translate([-beam_width, 0, 1*beam_width+(bed_height-bed_box_height)]) - rotate([90,-90,0]) - dimensions(length=bed_box_height-2*beam_width); -} - -translate([beam_width, 0, (bed_height-bed_box_height)/5]) - horizontal_headfootend(); -color("black"){ - translate([-beam_width, 0, 1*beam_width+(bed_height-bed_box_height)/5]) - rotate([90,-90,0]) - dimensions(length=((bed_height-bed_box_height)/5)-beam_width); -} - -translate([beam_width, 0, ((bed_height-bed_box_height)/5)*2]) - horizontal_headfootend(); -color("black"){ - translate([-beam_width, 0, 1*beam_width+((bed_height-bed_box_height)/5)*2]) - rotate([90,-90,0]) - dimensions(length=((bed_height-bed_box_height)/5)-beam_width); -} -translate([beam_width, 0, ((bed_height-bed_box_height)/5)*3]) - horizontal_headfootend(); -color("black"){ - translate([-beam_width, 0, 1*beam_width+((bed_height-bed_box_height)/5)*3]) - rotate([90,-90,0]) - dimensions(length=((bed_height-bed_box_height)/5)-beam_width); -} -translate([beam_width, 0, ((bed_height-bed_box_height)/5)*4]) - horizontal_headfootend(); -color("black"){ - translate([-beam_width, 0, 1*beam_width+((bed_height-bed_box_height)/5)*4]) - rotate([90,-90,0]) - dimensions(length=((bed_height-bed_box_height)/5)-beam_width); -} - -echo(str("#### Step distance: ", (bed_height-bed_box_height)/5)); - -// Head end -translate([beam_width, bed_length-beam_depth, bed_height-beam_width]) - horizontal_headfootend(); -translate([beam_width, bed_length-beam_depth, bed_height-bed_box_height]) - horizontal_headfootend(); -translate([beam_width, bed_length-beam_depth, 0]) - horizontal_headfootend(); - -// Long horizontals -translate([0, beam_depth, bed_height-beam_depth]) - horizontal_long(); -translate([0, beam_depth, bed_height-bed_box_height]) - horizontal_long(); -translate([0, beam_depth, 0]) - horizontal_long(); - -// Medium long horizontals -translate([matress_width+beam_width,beam_depth*2 + step_width, bed_height-beam_depth]) - horizontal_medium_long_top(); -translate([matress_width+beam_width,beam_depth*2 + step_width, bed_height-bed_box_height]) - horizontal_medium_long(); - -// Steps -translate([matress_width+beam_width,beam_depth, bed_height-bed_box_height]) - step(); - -translate([matress_width+beam_width,beam_depth, 0]) - step(); -translate([matress_width+beam_width,beam_depth, (bed_height-bed_box_height)/5]) - step(); -translate([matress_width+beam_width,beam_depth, ((bed_height-bed_box_height)/5)*2]) - step(); -translate([matress_width+beam_width,beam_depth, ((bed_height-bed_box_height)/5)*3]) - step(); -translate([matress_width+beam_width,beam_depth, ((bed_height-bed_box_height)/5)*4]) - step(); - -// Reinforcement verticals -translate([0, ((bed_length - beam_depth)/ 2), bed_height-bed_box_height+beam_depth]) - reinforce_vert(); -color("black"){ - translate([0, beam_width, bed_height+beam_width]) - rotate([90,0,90]) - dimensions(length=((bed_length-beam_width*3)/2)); - translate([0, beam_width+(bed_length-beam_width)/2, bed_height+beam_width]) - rotate([90,0,90]) - dimensions(length=((bed_length-beam_width*3)/2)); -} -translate([matress_width + beam_width, (bed_length - beam_depth)/2, bed_height-bed_box_height+beam_depth]) - reinforce_vert(); -color("black"){ - translate([matress_width+beam_width*2, beam_width*2+step_width, bed_height+beam_width]) - rotate([90,0,90]) - dimensions(length=(bed_length-beam_width)/2-(beam_width*2+step_width)); - translate([matress_width+beam_width*2, beam_width+(bed_length-beam_width)/2, bed_height+beam_width]) - rotate([90,0,90]) - dimensions(length=(bed_length-beam_width)/2-(beam_width*2+step_width)); -} - -// Head end extra post -translate([matress_width+beam_width, bed_length - beam_depth - step_width, 0]) - step(); -translate([matress_width+beam_width, bed_length - beam_depth - step_width, bed_height-bed_box_height]) - step(); -color("black"){ - translate([matress_width+beam_width*2, bed_length-beam_depth-step_width, bed_height+beam_width]) - rotate([90,0,90]) - dimensions(length=step_width); -} diff --git a/Bed_David/dimensions.scad b/Bed_David/dimensions.scad deleted file mode 100644 index 7d43f44..0000000 --- a/Bed_David/dimensions.scad +++ /dev/null @@ -1,19 +0,0 @@ -// details in arcs -FN=40; - -DIM_LINE_WIDTH = 5; - -beam_width = 44; -beam_depth = 44; - -matress_width = 900; -matress_length = 2000; - -step_width = 360; - -// bij plint gemeten! -bed_length = 2340; -bed_height = 1800; -bed_box_height = 300; - -board_thickness = 3.6; diff --git a/Bed_David/dimlines.scad b/Bed_David/dimlines.scad deleted file mode 100644 index ee3031c..0000000 --- a/Bed_David/dimlines.scad +++ /dev/null @@ -1,784 +0,0 @@ -/* This is a first pass at dimension lines for OpenSCAD. The text generated for - * this comes from http://www.thingiverse.com/thing:59817, and I gratefully - * acknowledge user PGreenland for creating this dotmatrix style font. - * - * Download his file first, TextGenerator.scad, before attempting to run this - * program. - * - * What this program does: - * - * This program can draw lines with arrows and has a primitive dimensioning - * element for putting text within arrows. In addition, should the area being - * dimensioned be too narrow, there is a provision for putting the text on - * either side of the arrows. - * - * The dimension lines are drawn on the xy plane and are meant to be seen in a - * top view. - * - * ======================================================= - * Be sure to view this from above -- ctrl-4 - * ======================================================= - * - * Available: - * - * Assorted constants to ease the use of dimensioning line. Because there is - * no introspection regarding the dimensions of your creations, you will want - * to adjust the parameters to fit the context of your creation. You can adjust - * the size of the text, lines, etc to match the rest of your objects. - * - * the following functions or modules are available. - * - * line(length, width, height=DIM_HEIGHT, left_arrow=false, right_arrow=false) - * Can draw a line with the options of including an arrow at either end - * - * circle_center(radius, size, line_width) - * Draws the cross in the center of a circle. There are defaults for the - * cross size and line width - * - * dimensions(length, line_width, loc=DIM_CENTER) - * draws text within lines, such as <--- 3.5 ---> - * with the use of the variable loc you can alter the placement of the text - * loc=DIM_CENTER <--- 3.5 ---> this is the default - * loc=DIM_LEFT 3.5 <----> - * loc=DIM_RIGHT <----> 3.5 - * loc=DIM_OUTSIDE ---> 3.5 <--- - * - * leader_line(angle, radius, angle_length, horz_line_length, - * direction=DIM_RIGHT, line_width, text) - * - * for use in pointing to the edge of a circle and showing text - * - * usage of the leader line: - * translate to the center of the circle - * Typically leader lines have a bend in them. The angle variable is used - * to specify the angle from which the line will point to the center of the - * circle. The radius specifies the location of the arrow. The - * angle_length is distance that the leader line takes until meeting the - * horizontal line. Once the angled line meets the horizontal line, that - * line will either extend to the right or left. direction and therefore - * be either DIM_RIGHT or DIM_LEFT. line_width typically would be whatever - * constant you have selected for all your dimensioned lines. Finally, the - * text will be the value that you wish to show, such as R 0.500. - * - * - * Created by Don Smiley - */ - -use - -// these variables are used within the modules -DIM_CENTER = 0; -DIM_LEFT = 1; -DIM_RIGHT = 2; -DIM_OUTSIDE = 3; -DIM_HORZ = 0; -DIM_VERT = 1; -DIM_UPPER_LEFT = 0; -DIM_UPPER_RIGHT = 1; -DIM_LOWER_LEFT = 2; -DIM_LOWER_RIGHT = 3; - -/* Constants related to the annotation lines - * - * Because the dimension of the part to be documented can vary widely, you - * probably are going to need to adjust the parameters to fit the context of - * your part. - * - * For example, the following parameters were used for a part 3.5 units long. - * In addition, DIM_HEIGHT is a height meant to be slightly above your tallest - * part. - */ - -DIM_LINE_WIDTH = .025; // width of dimension lines -DIM_SPACE = .1; // a spacing value to make it easier to adjust line spacing etc -DIM_HEIGHT = .01; // height of lines - -// refers to the size of the cross within a circle -DIM_HOLE_CENTER = DIM_LINE_WIDTH * 6; - -// an approximation that sets the font size relative to the line widths -DIM_FONTSCALE = DIM_LINE_WIDTH * .7; - - - -OFFSET = .05; // added to the hole length to extend past the surface of the cube - -module arrow(arr_points, arr_length, height) { - // arrow points to the left - linear_extrude(height=height, convexity=2) - - polygon( - points = [[0, 0], - [arr_points, arr_points / 2], - [arr_length, 0], - [arr_points, -arr_points / 2]], - paths = [[0, 1, 2, 3]], convexity = 2); -} - -module line(length, width=DIM_LINE_WIDTH, - height=DIM_HEIGHT, - left_arrow=false, - right_arrow=false - ) { - /* This module draws a line that can have an arrow on either end. Because - * the intended use is to be viewed strictly from above, the height of the - * line is set arbitrarily thin. - * - * The factors arr_length and arr_points are used to create a proportionate - * arrow. Your sense of asthetics may lead you to choose different - * numbers. - */ - - arr_points = width * 4; - arr_length = arr_points * .6; - - union() { - if (left_arrow && right_arrow) { - translate([arr_length, -width / 2, 0]) - cube([length - arr_length * 2, width, height], center=false); - } else { - - if (left_arrow) { - translate([arr_length, -width / 2, 0]) - cube([length - arr_length, width, height], center=false); - } else { - if (right_arrow) { - translate([0, -width / 2, 0]) - cube([length - arr_length, width, height], center=false); - } else { - translate([0, -width / 2, 0]) - cube([length, width, height], center=false); - } - - } - } - - if (left_arrow) { - arrow(arr_points, arr_length, height); - } - - if (right_arrow) { - translate([length, 0, 0]) - rotate([0, 0, 180]) - arrow(arr_points, arr_length, height); - - } - } -} - - -module circle_center(radius, size=DIM_HOLE_CENTER, line_width=DIM_LINE_WIDTH) { - - translate([-size / 2, 0, 0]) - line(length=size, width=line_width, height=DIM_HEIGHT, left_arrow=false, - right_arrow=false); - - translate([radius - size / 2, 0, 0]) - line(length=size, width=line_width, height=DIM_HEIGHT, left_arrow=false, - right_arrow=false); - - translate([-radius - size / 2, 0, 0]) - line(length=size, width=line_width, height=DIM_HEIGHT, left_arrow=false, - right_arrow=false); - - translate([0, -size / 2, 0]) - rotate([0, 0, 90]) - line(length=size, width=line_width, height=DIM_HEIGHT, left_arrow=false, - right_arrow=false); - - translate([0, radius - size / 2, 0]) - rotate([0, 0, 90]) - line(length=size, width=line_width, height=DIM_HEIGHT, left_arrow=false, - right_arrow=false); - - translate([0, -radius - size / 2, 0]) - rotate([0, 0, 90]) - line(length=size, width=line_width, height=DIM_HEIGHT, left_arrow=false, - right_arrow=false); - -} - -module dimensions(length, line_width=DIM_LINE_WIDTH, loc=DIM_CENTER) { - - - text = str(length); - space = len(text) * DIM_FONTSCALE * 7; - - if (loc == DIM_CENTER) { - line(length=length / 2 - space / 2, width=line_width, height=DIM_HEIGHT, - left_arrow=true, right_arrow=false); - translate([(length) / 2 - space / 2 * .9, -DIM_FONTSCALE * 3, 0]) - scale([DIM_FONTSCALE, DIM_FONTSCALE, DIM_FONTSCALE]) - drawtext(text); - - translate([length / 2 + space / 2, 0, 0]) - line(length=length / 2 - space / 2, width=line_width, height=DIM_HEIGHT, - left_arrow=false, right_arrow=true); - } else { - - if (loc == DIM_LEFT) { - line(length=length, width=line_width, height=DIM_HEIGHT, - left_arrow=true, right_arrow=true); - - translate([-space, -DIM_FONTSCALE * 3, 0]) - scale([DIM_FONTSCALE, DIM_FONTSCALE, DIM_FONTSCALE]) - drawtext(text); - } else { - if (loc == DIM_RIGHT) { - line(length=length, width=line_width, height=DIM_HEIGHT, - left_arrow=true, right_arrow=true); - - translate([length + space, -DIM_FONTSCALE * 3, 0]) - scale([DIM_FONTSCALE, DIM_FONTSCALE, DIM_FONTSCALE]) - drawtext(text); - } else { - if (loc == DIM_OUTSIDE) { - - rotate([0, 180, 0]) - line(length=length / 2, width=line_width, height=DIM_HEIGHT, - left_arrow=true, right_arrow=false); - - translate([(length) / 2 - space / 2 * .9, - -DIM_FONTSCALE * 3, 0]) - scale([DIM_FONTSCALE, DIM_FONTSCALE, DIM_FONTSCALE]) - drawtext(text); - - translate([length, 0, 0]) - line(length=length / 2, width=line_width, height=DIM_HEIGHT, - left_arrow=true, right_arrow=false); - } - } - } - } -} - -module leader_line(angle, radius, angle_length, horz_line_length, - direction=DIM_RIGHT, line_width=DIM_LINE_WIDTH, text, do_circle=false) { - /* leader_line - * - * Creates a line that points directly at a center point from the given - * radius. - * Then, a short horzizontal line is generated, followed by text. The - * direction of the horizontal short line defaults to the right, the - * choice made by either DIM_RIGHT or DIM_LEFT - */ - - text_length = len(text) * DIM_FONTSCALE * 6; - space = DIM_FONTSCALE * 6; - - rotate([0, 0, angle]) - translate([radius, 0, 0]) - line(length=angle_length, width=line_width, height=DIM_HEIGHT, - left_arrow=true, right_arrow=false); - - rotate([0, 0, angle]) - translate([radius + angle_length, 0, 0]) - rotate([0, 0, -angle]) - union() { - if (direction == DIM_RIGHT) { - line(length=horz_line_length, width=line_width, height=DIM_HEIGHT, - left_arrow=false, right_arrow=false); - - translate([(horz_line_length + space), -DIM_FONTSCALE * 3, 0]) - scale([DIM_FONTSCALE, DIM_FONTSCALE, DIM_FONTSCALE]) - drawtext(text); - - if (do_circle) { - translate([(horz_line_length + space + text_length/2), - 0, 0]) - difference() { - cylinder(h=DIM_HEIGHT, r=text_length + space - line_width, - center=true, $fn=100); - cylinder(h=.05, r=text_length + space - line_width * 2, - center=true, $fn=100); - } - } - - } else { - translate([-horz_line_length, 0, 0]) - line(length=horz_line_length, width=line_width, height=DIM_HEIGHT, - left_arrow=false, right_arrow=false); - - translate([-(horz_line_length + space + text_length), - -DIM_FONTSCALE * 3, - 0]) - scale([DIM_FONTSCALE, DIM_FONTSCALE, DIM_FONTSCALE]) - drawtext(text); - - } - } -} - -module titleblock(lines, descs, details) { - /* titleblock - * - * This module accepts the following arrays with formats: - * - * holds the description of the lines. width is a factor that - * expands the line width beyond DIM_LINE_WIDTH - * - * lines = [[startx, starty, horz/vert, length, width], - * [startx, starty, horz/vert, length, width]] - * - * holds the descriptions of the title blocks. these are meant to sit in - * the upper left corner. size, like width above, is a factor that - * increases/decreases the size of the font - * - * descs = [[startx, starty, horz/vert, text, size], - * [startx, starty, horz/vert, text, size]] - * - * holds the detail associated with the part being documented - * - * details = [[startx, starty, horz/vert, text, size], - * [startx, starty, horz/vert, text, size]] - */ - - DIM_FONTSCALE = DIM_LINE_WIDTH * .7; - - for (line = lines) { - translate([line[0] * DIM_LINE_WIDTH, - line[1] * DIM_LINE_WIDTH, - 0]) - if (line[2] == DIM_VERT) { - rotate([0, 0, -90]) - line(length=line[3] * DIM_LINE_WIDTH, - width=DIM_LINE_WIDTH * line[4], height=DIM_HEIGHT, - left_arrow=false, right_arrow=false); - } else { - line(length=(line[3] + 1) * DIM_LINE_WIDTH, - width=DIM_LINE_WIDTH * line[4], height=DIM_HEIGHT, - left_arrow=false, right_arrow=false); - } - - } - - for (line = descs) { - translate([line[0] * DIM_LINE_WIDTH, line[1] * DIM_LINE_WIDTH, 0]) - if (line[2] == DIM_VERT) { - rotate([0, 0, 90]) - scale([DIM_FONTSCALE * line[4], DIM_FONTSCALE * line[4], - DIM_FONTSCALE * line[4]]) - drawtext(line[3]); - } else { - scale([DIM_FONTSCALE * line[4], DIM_FONTSCALE * line[4], - DIM_FONTSCALE * line[4]]) - drawtext(line[3]); - } - } - - for (line = details) { - translate([line[0] * DIM_LINE_WIDTH, line[1] * DIM_LINE_WIDTH, 0]) - if (line[2] == DIM_VERT) { - rotate([0, 0, 90]) - scale([DIM_FONTSCALE * line[4], DIM_FONTSCALE * line[4], - DIM_FONTSCALE * line[4]]) - drawtext(line[3]); - } else { - scale([DIM_FONTSCALE * line[4], DIM_FONTSCALE * line[4], - DIM_FONTSCALE * line[4]]) - drawtext(line[3]); - } - } - -} - - -module sample_titleblock1() { - /* sample titleblock - * - * Note the use of double thickness lines around the perimeter. Any line - * can be adjusted to be thinner or thicker. - * - * Note also that since lines are centered on their widths, some adjustments - * for half-width spacing is needed to avoid a jagged look on corners. - * You can see that in the horizontal lines in the first section that are - * offset by 1, which is the half-width of the outside line. - */ - title_width = 290; - row_height = 15; - - cols = [-1, 50, 114, 200, 215, 260]; - rows = [0, -row_height, -row_height * 2, -row_height * 3, -row_height * 4]; - - // spacing tweaks to fit into the blocks - desc_x = 2; // column offset for start of small text - desc_y = -5; // row offset for start of small text - det_y = -12; // row offset for start of detail text - desc_size = .75; // relative size of description text - - lines = [ - // horizontal lines - [cols[0], rows[0], DIM_HORZ, title_width, 2], - [cols[0], rows[1], DIM_HORZ, title_width, 1], - [cols[2], rows[2], DIM_HORZ, title_width - cols[2] - 1, 1], - [cols[3], rows[3], DIM_HORZ, title_width - cols[3] - 1, 1], - [cols[0], rows[4] - 1, DIM_HORZ, title_width, 2], - - // vertical lines - [0, 0, DIM_VERT, row_height * 4, 2], - [cols[1], rows[0], DIM_VERT, row_height, 1], - [cols[2], rows[0], DIM_VERT, row_height * 4, 1], - [cols[3], rows[0], DIM_VERT, row_height * 4, 1], - [cols[4], rows[3], DIM_VERT, row_height, 1], - [cols[5], rows[3], DIM_VERT, row_height, 1], - [title_width - 1, 0, DIM_VERT, row_height * 4, 2], - ]; - - descs = [ - [cols[0] + desc_x, rows[0] + desc_y, DIM_HORZ, - "Responsible dep", desc_size], - [cols[1] + desc_x, rows[0] + desc_y, DIM_HORZ, - "Technical reference", desc_size], - [cols[2] + desc_x, rows[0] + desc_y, DIM_HORZ, - "Creator", desc_size], - [cols[3] + desc_x, rows[0] + desc_y, DIM_HORZ, - "Approval person", desc_size], - [cols[2] + desc_x, rows[1] + desc_y, DIM_HORZ, - "Document type", desc_size], - [cols[3] + desc_x, rows[1] + desc_y, DIM_HORZ, - "Document status", desc_size], - [cols[2] + desc_x, rows[2] + desc_y, DIM_HORZ, - "Title", desc_size], - [cols[3] + desc_x, rows[2] + desc_y, DIM_HORZ, - "Identification number", desc_size], - [cols[3] + desc_x, rows[3] + desc_y, DIM_HORZ, - "Rev", desc_size], - [cols[4] + desc_x, rows[3] + desc_y, DIM_HORZ, - "Date of issue", desc_size], - [cols[5] + desc_x, rows[3] + desc_y, DIM_HORZ, - "Sheet", desc_size] - ]; - - details = [ - [cols[0] + desc_x, rows[0] + det_y, DIM_HORZ, - " ", 1], //Responsible dep. - [cols[1] + desc_x, rows[0] + det_y, DIM_HORZ, - " ", 1], //Technical reference - [cols[2] + desc_x, rows[0] + det_y, DIM_HORZ, - "D. Smiley ", 1], //Creator - [cols[3] + desc_x, rows[0] + det_y, DIM_HORZ, - " ", 1], //Approval person - [cols[0] + desc_x + 10, rows[2] + det_y, DIM_HORZ, - "My OpenSCAD Project", 1], - [cols[2] + desc_x, rows[1] + det_y, DIM_HORZ, - " ", 1], //Document type - [cols[3] + desc_x, rows[1] + det_y, DIM_HORZ, - "First issue", 1], //Document status - [cols[2] + desc_x, rows[2] + det_y, DIM_HORZ, - "Sample Part", 1], //Title - [cols[3] + desc_x, rows[2] + det_y, DIM_HORZ, - "123", 1], //Identification number - [cols[3] + desc_x, rows[3] + det_y, DIM_HORZ, - " ", 1], //Rev - [cols[4] + desc_x, rows[3] + det_y, DIM_HORZ, - "2013-3-31", 1], //Date of issue - [cols[5] + desc_x, rows[3] + det_y, DIM_HORZ, - "1/100", 1] //Sheet - ]; - - - titleblock(lines, descs, details); -} - -module sample_revisionblock(revisions) { - - DIM_FONTSCALE = DIM_LINE_WIDTH * .7; - - // revision block headings - row_height = 15; - revision_width = 100; - desc_x = 2; - desc_y = -10; - desc_size = 1; - - cols = [0, 20, 60, revision_width]; - rows = [0, -row_height, -row_height * 2]; - - // draw - lines = [ - // horizontal lines - [cols[0], rows[0], DIM_HORZ, revision_width, 1], - [cols[0], rows[1], DIM_HORZ, revision_width, 1], - [cols[0], rows[2], DIM_HORZ, revision_width, 1], - - // vertical lines - [cols[0], rows[0], DIM_VERT, row_height * 2, 1], - [cols[1], rows[0], DIM_VERT, row_height, 1], - [cols[2], rows[0], DIM_VERT, row_height, 1], - [cols[3], rows[0], DIM_VERT, row_height * 2, 1], - ]; - - descs = [ - [cols[0] + desc_x, rows[0] + desc_y, DIM_HORZ, - "Rev.", desc_size], - [cols[1] + desc_x, rows[0] + desc_y, DIM_HORZ, - "Date", desc_size], - [cols[2] + desc_x, rows[0] + desc_y, DIM_HORZ, - "Initials", desc_size], - [cols[1] + desc_x, rows[1] + desc_y, DIM_HORZ, - "Revisions", desc_size], - ]; - - details = []; - num_revisions = len(revisions); - - translate([-(revision_width + 40) * DIM_LINE_WIDTH, - row_height * 2 * DIM_LINE_WIDTH, 0]) - union() { - titleblock(lines, descs, details); - - // now for the start of actual revisions - // do this piecemeal -- draw the vertical first - - for (col = [0: len(cols)]) { - translate([cols[col] * DIM_LINE_WIDTH, 0, 0]) - rotate([0, 0, 90]) - line(num_revisions * row_height * DIM_LINE_WIDTH); - } - - for (row = [0: len(revisions)]) { - translate([0, row * row_height * DIM_LINE_WIDTH, 0]) - line(revision_width * DIM_LINE_WIDTH); - - for (col = [0:2]) { - translate([(cols[col] + desc_x) * DIM_LINE_WIDTH, - ((row + 1) * row_height + desc_y) * DIM_LINE_WIDTH, 0]) - scale([DIM_FONTSCALE, DIM_FONTSCALE, DIM_FONTSCALE]) - drawtext(revisions[row][col]); - } - } - - } -} - -module sample_titleblock2() { - - row_height = 20; - - cols = [-.5, 100, 154, 270]; - title_width = cols[3]; - - rows = [0, -row_height, -row_height * 2, -row_height * 3, -row_height * 4, - -row_height * 5, -row_height * 6, -row_height * 7 - ]; - - // spacing tweaks to fit into the blocks - desc_x = 2; // column offset for start of small text - desc_y = -5; // row offset for start of small text - det_x = 15; // col offset for start of detail text - det_y = -15; // row offset for start of detail text - desc_size = .75; // relative size of description text - - - lines = [ - // horizontal lines - [-.5, 0, DIM_HORZ, title_width, 1], - - [cols[2], rows[1], DIM_HORZ, cols[3] - cols[2] - .5, 1], - [cols[0], rows[2], DIM_HORZ, cols[1] - cols[0] - .5, 1], - [cols[0], rows[3], DIM_HORZ, cols[3] - .5, 1], - [cols[0], rows[4], DIM_HORZ, cols[2] - .5, 1], - [cols[0], rows[5], DIM_HORZ, cols[3] - .5, 1], - [cols[0], rows[6], DIM_HORZ, cols[2] - .5, 1], - [cols[0], rows[7], DIM_HORZ, cols[2] - .5, 1], - - [cols[0], rows[7], DIM_HORZ, title_width, 1], - - // vertical lines - [cols[0], rows[0], DIM_VERT, -rows[7], 1], - [cols[1], rows[0], DIM_VERT, -rows[7], 1], - [cols[2], rows[0], DIM_VERT, -rows[7], 1], - [cols[3], rows[0], DIM_VERT, -rows[7], 1], - ]; - - part_desc = ["Material", "Finish", "Weight", "Part No."]; - doc_desc = ["Drawing Number", - "Created by", - "Reviewed by", - "Date of issue" - ]; - - // aspects of the part - part_details = [ - "My Sample Part", // title - "Stainless Steel", // material - " ", // finish - "2.5", // weight - "123", // part no - ]; - - // aspects documenting the creation of the part - doc_details = [ - "33-2", // Drawing No. - "D. Smiley", // Created by - " ", // Reviewd by - "2013-3-31", // Date - ]; - - // the organization making the part - org_details = [ - "My logo", - "Canny Machines", - "Org Address, phone" - ]; - - descs = [ - - // part description - [cols[0] + desc_x, rows[2] + desc_y, DIM_HORZ, part_desc[0], desc_size], - [cols[0] + desc_x, rows[3] + desc_y, DIM_HORZ, part_desc[1], desc_size], - [cols[0] + desc_x, rows[4] + desc_y, DIM_HORZ, part_desc[2], desc_size], - [cols[0] + desc_x, rows[5] + desc_y, DIM_HORZ, part_desc[3], desc_size], - - // documentation description - [cols[1] + desc_x, rows[3] + desc_y, DIM_HORZ, doc_desc[0], desc_size], - [cols[1] + desc_x, rows[4] + desc_y, DIM_HORZ, doc_desc[1], desc_size], - [cols[1] + desc_x, rows[5] + desc_y, DIM_HORZ, doc_desc[2], desc_size], - [cols[1] + desc_x, rows[6] + desc_y, DIM_HORZ, doc_desc[3], desc_size], - ]; - - details = [ - [cols[0] + desc_x, rows[0] + det_y, DIM_HORZ, part_details[0], 1.5], - [cols[0] + desc_x, rows[2] + det_y, DIM_HORZ, part_details[1], 1], - [cols[0] + desc_x, rows[3] + det_y, DIM_HORZ, part_details[2], 1], - [cols[0] + desc_x, rows[4] + det_y, DIM_HORZ, part_details[3], 1], - [cols[0] + desc_x, rows[5] + det_y, DIM_HORZ, part_details[4], 1], - - [cols[1] + desc_x * 2, rows[3] + det_y, DIM_HORZ, doc_details[0], 1], - [cols[1] + desc_x * 2, rows[4] + det_y, DIM_HORZ, doc_details[1], 1], - [cols[1] + desc_x * 2, rows[5] + det_y, DIM_HORZ, doc_details[2], 1], - [cols[1] + desc_x * 2, rows[6] + det_y, DIM_HORZ, doc_details[3], 1], - - // Organization Details - [cols[1] + desc_x, rows[1] + det_y, DIM_HORZ, org_details[0], 1.5], - [cols[2] + desc_x, rows[0] + det_y, DIM_HORZ, org_details[1], 1.5], - [cols[2] + desc_x, rows[1] + det_y, DIM_HORZ, org_details[2], 1], - - ]; - - titleblock(lines, descs, details); - - revisions = [ - ["1a", "2013-4-1", "ds"], - ["1b", "2013-4-2", "ds"], - ["2a", "2013-4-3", "ds"], - ["3a", "2013-4-5", "ds"], - ["4a", "2013-4-15", "ds"], - ]; - - rotate([0, 0, 90]) - sample_revisionblock(revisions); - - -} - -module sample_lines(){ - // sample lines - union() { - line(length=2, width=DIM_LINE_WIDTH, height=DIM_HEIGHT, - left_arrow=false, right_arrow=false); - translate([0, -0.25, 0]) - line(length=2, width=DIM_LINE_WIDTH, height=DIM_HEIGHT, left_arrow=true, - right_arrow=false); - translate([0, -0.5, 0]) - line(length=2, width=DIM_LINE_WIDTH, height=DIM_HEIGHT, - left_arrow=false, right_arrow=true); - translate([0, -0.75, 0]) - line(length=2, width=DIM_LINE_WIDTH, height=DIM_HEIGHT, left_arrow=true, - right_arrow=true); - } -} - -module sample_dimensions() { - - /* shows all possibilities - DIM_CENTER = 0; - DIM_LEFT = 1; - DIM_RIGHT = 2; - DIM_OUTSIDE = 3; - */ - - length = 2.5; - - // The following two lines are vertical lines that bracket the dimensions - // left arrow - translate([0, -1.75, 0]) - rotate([0, 0, 90]) - line(length=length, width=DIM_LINE_WIDTH, height=DIM_HEIGHT, - left_arrow=false, right_arrow=false); - - // right arrow - translate([length, -1.75, 0]) - rotate([0, 0, 90]) - line(length=length, width=DIM_LINE_WIDTH, height=DIM_HEIGHT, - left_arrow=false, right_arrow=false); - - // The following runs through all the dimension types - for (i = [0:4]) { - translate([0, -.5 * i, 0]) - dimensions(length=length, line_width=DIM_LINE_WIDTH, loc=i); - } -} - -module sample_leaderlines() { - - radius = .25; - for (i = [0:6]) { - leader_line(angle=i * 15, radius=.25, angle_length=(i * .25), - horz_line_length=.5, direction=DIM_RIGHT, - line_width=DIM_LINE_WIDTH, - text=str("leader line angle: ", i * 15 + 90), - do_circle=false - ); - } - - for (i = [1:7]) { - leader_line(angle=i * 20 + 90, radius=.25, - angle_length=.75, - horz_line_length=.5, direction=DIM_LEFT, - line_width=DIM_LINE_WIDTH, - text=str("leader line angle: ", i * 20 + 90)); - } - for (i = [1:4]) { - leader_line(angle=-i * 20, radius=.25, angle_length=1.5, - horz_line_length=.25, direction=DIM_RIGHT, - line_width=DIM_LINE_WIDTH, - text=str(i), - do_circle=true - ); - } - } - -module sample_circlecenter() { - - radius = .25; - difference() { - cube([1, 1, 1], center=true); - cylinder(h=1.1, r=radius, center=true, $fn=100); - } - color("Black") - translate([0, 0, .51]) - circle_center(radius=radius, size=DIM_HOLE_CENTER, - line_width=DIM_LINE_WIDTH); - -} - -// uncomment these to sample -// sample_lines(); -// -// translate([-5.5, 0, 0]) -// sample_dimensions(); -// -// translate([4, 0, 0]) -// sample_circlecenter(); -// -// translate([-2, 3, 0]) -// sample_leaderlines(); -// -// translate([3, 4, 0]) -// sample_titleblock1(); -// -// translate([0, -2, 0]) -// sample_titleblock2(); - - diff --git a/Bed_David/functions.scad b/Bed_David/functions.scad deleted file mode 100644 index 2089daf..0000000 --- a/Bed_David/functions.scad +++ /dev/null @@ -1,17 +0,0 @@ -// input : list of numbers -// output : sorted list of numbers -function quicksort(arr) = !(len(arr)>0) ? [] : let( - pivot = arr[floor(len(arr)/2)], - lesser = [ for (y = arr) if (y < pivot) y ], - equal = [ for (y = arr) if (y == pivot) y ], - greater = [ for (y = arr) if (y > pivot) y ] -) concat( - quicksort(lesser), equal, quicksort(greater) -); - -module cuben(name, size){ - cube(size=size, center=false); - // sizes should be ordered biggest to smallest - size_sorted=quicksort(size); - echo(str("#### ", name, ": " , size_sorted[2], "x", size_sorted[1], "x", size_sorted[0])); -}; diff --git a/Bed_David/horizontals.scad b/Bed_David/horizontals.scad deleted file mode 100644 index ca11f57..0000000 --- a/Bed_David/horizontals.scad +++ /dev/null @@ -1,43 +0,0 @@ -include -include - -module horizontal_headfootend() { - color("red") - translate([0, 0, beam_width]) - rotate([0, 90, 0]) - cuben("Horizontal headfootend", size=[beam_width, beam_depth, matress_width]); -} - -module horizontal_long() { - color("red") - translate([0,0, beam_depth]) - rotate([-90, 0, 0]) - cuben("Horizontal long", size=[beam_width, beam_depth, bed_length - beam_depth*2]); -} - -module horizontal_medium_long_top() { - color("red") - translate([0,0, beam_depth]) - rotate([-90, 0, 0]) - cuben("Horizontal medium long", size=[beam_width, beam_depth, bed_length - beam_depth*3 - step_width]); -} - -module horizontal_medium_long() { - color("red") - translate([0,0, beam_depth]) - rotate([-90, 0, 0]) - cuben("Horizontal medium long", size=[beam_width, beam_depth, bed_length - beam_depth*4 - step_width*2]); -} - -module step(){ - color("red") - translate([0,0, beam_depth]) - rotate([-90, 0, 0]) - cuben("Horizontal step", size=[beam_width, beam_depth, step_width]); -} - -module reinforce_vert(){ - color("orange") - translate([0, 0, 0]) - cuben("Reinforcement vertical", size=[beam_width, beam_depth, bed_box_height - beam_depth*2]); -} diff --git a/Bed_David/partlist.sh b/Bed_David/partlist.sh deleted file mode 100755 index f0a619e..0000000 --- a/Bed_David/partlist.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -openscad -o blup.dxf assembly.scad 2>&1|grep '####'|sort|awk 'BEGIN{count=0;prevline=""}{if(prevline == $0){count += 1} else {print(count, "x ", prevline);count=1;prevline=$0; }}END{print(count, "x ", prevline)}' diff --git a/Bed_David/parts b/Bed_David/parts deleted file mode 100644 index 962d9e0..0000000 --- a/Bed_David/parts +++ /dev/null @@ -1,6 +0,0 @@ -0 x -2 x ECHO: "#### Horizontal outside: 300x44x12" -1 x ECHO: "#### Fancy back: 324x324x4" -4 x ECHO: "#### Horizontal slat: 310x44x4" -2 x ECHO: "#### Vertical outside: 274x44x12" -5 x ECHO: "#### Vertical slat: 260x44x4" diff --git a/Bed_David/posts.scad b/Bed_David/posts.scad deleted file mode 100644 index 8709b81..0000000 --- a/Bed_David/posts.scad +++ /dev/null @@ -1,40 +0,0 @@ -include -include - -module post_head_wall() { - color("green") - translate([0,0,0]) - cuben("Post headend wallside", size=[beam_width, beam_depth, bed_height]); -} - -module post_head_room() { - color("green") - translate([0,0,0]) - cuben("Post headend roomside", size=[beam_width, beam_depth, bed_height]); -} - - -module post_foot_wall() { - color("green") - translate([0,0,0]) - cuben("Post footend wallside", size=[beam_width, beam_depth, bed_height]); -} - -module post_foot_room() { - color("green") - translate([0,0,0]) - cuben("Post footend roomside", size=[beam_width, beam_depth, bed_height]); -} - -module post_stairs() { - color("green") - translate([0,0,0]) - cuben("Post stairs", size=[beam_width, beam_depth, bed_height]); -} - -module post_head_standoff() { - color("green") - translate([0,0,0]) - cuben("Post headend standoff", size=[beam_width, beam_depth, bed_height-beam_width]); -} - diff --git a/Stenen_kastje_Ruben/assembly.png b/Stenen_kastje_Ruben/assembly.png index 0b490ed..1a643a8 100644 Binary files a/Stenen_kastje_Ruben/assembly.png and b/Stenen_kastje_Ruben/assembly.png differ diff --git a/Stenen_kastje_Ruben/assembly.scad b/Stenen_kastje_Ruben/assembly.scad index 5c2d094..6de14c1 100644 --- a/Stenen_kastje_Ruben/assembly.scad +++ b/Stenen_kastje_Ruben/assembly.scad @@ -6,29 +6,24 @@ use use use -translate([0, -outer_incut, 0]){ - for (i=[1:nr_cells_vertical-1]){ - translate([0, 0, cell_height*i]) - horizontal_slat(); - } +for (i=[1:nr_cells_vertical-1]){ + translate([0, 0, cell_height*i]) + horizontal_slat(); } -translate([0, 0, -outer_incut]){ - for (i=[1:nr_cells_horizontal-1]){ - translate([0, cell_width*i, 0]) - vertical_slat(); - } +for (i=[1:nr_cells_horizontal-1]){ + translate([0, cell_width*i, 0]) + vertical_slat(); } -translate([0, -(outer_thickness), 0]) +translate([0, -(outer_thickness-outer_incut), 0]) vertical_outside(); -translate([0, cell_width*nr_cells_horizontal, 0]) +translate([0, cell_width*nr_cells_horizontal-outer_incut, 0]) vertical_outside(); -translate([0, 0, -outer_thickness]) - horizontal_outside(); -translate([0, 0, cell_height*nr_cells_vertical]) +horizontal_outside(); +translate([0, 0, cell_height*nr_cells_vertical + outer_thickness - 2*outer_incut]) horizontal_outside(); -translate([-back_thickness, -(outer_thickness), -(outer_thickness)]) +translate([-back_thickness, -(outer_thickness - outer_incut), -(outer_thickness)]) back_plane_fancy(); diff --git a/Stenen_kastje_Ruben/back_plane.scad b/Stenen_kastje_Ruben/back_plane.scad index 8352efb..7f2e12c 100644 --- a/Stenen_kastje_Ruben/back_plane.scad +++ b/Stenen_kastje_Ruben/back_plane.scad @@ -1,16 +1,17 @@ include -include module back_plane(){ color("lightblue") - cuben("Back", size=[back_thickness, 2*outer_thickness + cell_width * nr_cells_horizontal, 2*outer_thickness + cell_height * nr_cells_vertical]); + cube(size=[back_thickness, 2*outer_thickness - 2*outer_incut + cell_width * nr_cells_horizontal, 2*outer_thickness - 2*outer_incut + cell_height * nr_cells_vertical], center=false); + echo("#### Back: thickness = ", back_thickness, " height = ", 2*outer_thickness - 2*outer_incut + cell_height * nr_cells_vertical, "width = ", 2*outer_thickness - 2*outer_incut + cell_width * nr_cells_horizontal); } back_plane(); module back_plane_fancy(){ color("lightblue") - cuben("Fancy back", size=[back_thickness, 2*outer_thickness + cell_width * nr_cells_horizontal, 2*outer_thickness + cell_height * nr_cells_vertical + back_fancy_height]); + cube(size=[back_thickness, 2*outer_thickness - 2*outer_incut + cell_width * nr_cells_horizontal, 2*outer_thickness - 2*outer_incut + cell_height * nr_cells_vertical + back_fancy_height], center=false); + echo("#### Fancy back: thickness = ", back_thickness, " height = ", 2*outer_thickness - 2*outer_incut + cell_height * nr_cells_vertical + back_fancy_height, "width = ", 2*outer_thickness - 2*outer_incut + cell_width * nr_cells_horizontal); } back_plane_fancy(); diff --git a/Stenen_kastje_Ruben/dimensions.scad b/Stenen_kastje_Ruben/dimensions.scad index 3f7d462..c49e2f7 100644 --- a/Stenen_kastje_Ruben/dimensions.scad +++ b/Stenen_kastje_Ruben/dimensions.scad @@ -8,11 +8,11 @@ nr_cells_horizontal = 6; nr_cells_vertical = 5; slat_thickness = 4; -slat_depth = 44; +slat_depth = 40; back_thickness = 4; back_fancy_height = 50; -outer_thickness = 12; -outer_incut = 5; +outer_thickness = 6; +outer_incut = 2; outer_depth = slat_depth; diff --git a/Stenen_kastje_Ruben/functions.scad b/Stenen_kastje_Ruben/functions.scad deleted file mode 100644 index 2089daf..0000000 --- a/Stenen_kastje_Ruben/functions.scad +++ /dev/null @@ -1,17 +0,0 @@ -// input : list of numbers -// output : sorted list of numbers -function quicksort(arr) = !(len(arr)>0) ? [] : let( - pivot = arr[floor(len(arr)/2)], - lesser = [ for (y = arr) if (y < pivot) y ], - equal = [ for (y = arr) if (y == pivot) y ], - greater = [ for (y = arr) if (y > pivot) y ] -) concat( - quicksort(lesser), equal, quicksort(greater) -); - -module cuben(name, size){ - cube(size=size, center=false); - // sizes should be ordered biggest to smallest - size_sorted=quicksort(size); - echo(str("#### ", name, ": " , size_sorted[2], "x", size_sorted[1], "x", size_sorted[0])); -}; diff --git a/Stenen_kastje_Ruben/horizontal_outside.scad b/Stenen_kastje_Ruben/horizontal_outside.scad index 55098ae..dff0092 100644 --- a/Stenen_kastje_Ruben/horizontal_outside.scad +++ b/Stenen_kastje_Ruben/horizontal_outside.scad @@ -1,10 +1,11 @@ include -include module horizontal_outside(){ color("yellow") - cuben(" Horizontal outside", size=[outer_depth, cell_width * nr_cells_horizontal, outer_thickness]); + translate([0, 0, -outer_thickness]) + cube(size=[outer_depth, cell_width * nr_cells_horizontal, outer_thickness], center=false); + echo("#### Horizontal outside: length = ", cell_width * nr_cells_horizontal , " depth = ", outer_depth, "thickness = ", outer_thickness); } horizontal_outside(); diff --git a/Stenen_kastje_Ruben/horizontal_slat.scad b/Stenen_kastje_Ruben/horizontal_slat.scad index 97e1f2a..8ffb145 100644 --- a/Stenen_kastje_Ruben/horizontal_slat.scad +++ b/Stenen_kastje_Ruben/horizontal_slat.scad @@ -1,11 +1,11 @@ include -include module horizontal_slat(){ color("pink") translate([0, 0, -slat_thickness/2]) - cuben("Horizontal slat", size=[slat_depth, 2*outer_incut + cell_width * nr_cells_horizontal, slat_thickness]); + cube(size=[slat_depth, cell_width * nr_cells_horizontal, slat_thickness], center=false); + echo("#### Horizontal slat: length = ", cell_width * nr_cells_horizontal , " depth = ", slat_depth, "thickness = ", slat_thickness); } horizontal_slat(); diff --git a/Stenen_kastje_Ruben/parts b/Stenen_kastje_Ruben/parts index 962d9e0..36d1743 100644 --- a/Stenen_kastje_Ruben/parts +++ b/Stenen_kastje_Ruben/parts @@ -1,6 +1,6 @@ 0 x -2 x ECHO: "#### Horizontal outside: 300x44x12" -1 x ECHO: "#### Fancy back: 324x324x4" -4 x ECHO: "#### Horizontal slat: 310x44x4" -2 x ECHO: "#### Vertical outside: 274x44x12" -5 x ECHO: "#### Vertical slat: 260x44x4" +1 x ECHO: "#### Fancy back: thickness = ", 4, " height = ", 308, "width = ", 308 +2 x ECHO: "#### Horizontal outside: length = ", 300, " depth = ", 40, "thickness = ", 6 +4 x ECHO: "#### Horizontal slat: length = ", 300, " depth = ", 40, "thickness = ", 4 +2 x ECHO: "#### Vertical outside: length = ", 262, " depth = ", 40, "thickness = ", 6 +5 x ECHO: "#### Vertical slat: length = ", 250, " depth = ", 40, "thickness = ", 4 diff --git a/Stenen_kastje_Ruben/vertical_outside.scad b/Stenen_kastje_Ruben/vertical_outside.scad index 5d83dd1..9fdeffe 100644 --- a/Stenen_kastje_Ruben/vertical_outside.scad +++ b/Stenen_kastje_Ruben/vertical_outside.scad @@ -1,11 +1,11 @@ include -include module vertical_outside(){ color("green") - translate([0, 0, -outer_thickness]) { - cuben("Vertical outside", size=[outer_depth, outer_thickness, (cell_height * nr_cells_vertical) + (2*outer_thickness) ]); - } + translate([0, 0, -outer_thickness]) + cube(size=[outer_depth, outer_thickness, (cell_height * nr_cells_vertical) + (2*outer_thickness) - 2*outer_incut], center=false); + + echo("#### Vertical outside: length = ", (cell_height * nr_cells_vertical) + (2*outer_thickness) , " depth = ", outer_depth, "thickness = ", outer_thickness); } vertical_outside(); diff --git a/Stenen_kastje_Ruben/vertical_slat.scad b/Stenen_kastje_Ruben/vertical_slat.scad index 9a630f9..8b164f5 100644 --- a/Stenen_kastje_Ruben/vertical_slat.scad +++ b/Stenen_kastje_Ruben/vertical_slat.scad @@ -1,10 +1,11 @@ include -include module vertical_slat(){ color("red") - translate([0, -slat_thickness/2, 0 ]) - cuben("Vertical slat", size=[slat_depth, slat_thickness, 2*outer_incut + cell_height * nr_cells_vertical]); + translate([0, 0, -slat_thickness/2]) + cube(size=[slat_depth, slat_thickness, cell_height * nr_cells_vertical], center=false); + + echo("#### Vertical slat: length = ", cell_height * nr_cells_vertical , " depth = ", slat_depth, "thickness = ", slat_thickness); } vertical_slat();