Your code doesn't work as is in OpenScad because of line length problems.
Bill
Here's the program that generates the bracket.
This is an scad format program (OpenSCAD)
Generates .scad files, and then exports .stl files
works well with notepad++
You may have to consider where the editor (or your email program) has
put in the carriage returns
.*****************************************************
// parametric support bracket
// overall thickness 7.42 mm (0.29 inches)
// spacing between holes set by board_offset
// allows 3/4 inch (arbitrary) mounting hole space
// drill mounting holes for bracket for 4-40 screws with 0.25 inch
nuts
// tap hex posts for 4-40 for board
// user set parameters
board_offset_inches = 2.95;
board_hole_to_edge_inches = 0.3;
// derived or fixed parameters
$fn = 100;
board_to_edge = board_hole_to_edge_inches * 25.4;
board_offset = board_offset_inches * 25.4; //
board hole spacing
board_hole = 1.35; // tap for 4-40 later
post_size = 6.1; // 0.25 inches
post_thick = 1.2 * post_size; // offset post size to
accommodate nut
support_height = 25.4; // height (below zero) of support
bracket
nut_size_inches = 0.25; // 0.25
nut_size = nut_size_inches * 25.4 * 1.2;
nut_inset = 2; // inset nut this far into
post
angle =
atan(((support_height-post_size)/(board_offset+board_to_edge)));
mount_hole_space = -(support_height+post_size) + 25.4 *3/4;
module post()
{
difference ()
{
union ()
{
translate([post_size/2, post_size/2,0 ])
rotate([0,0,30])cylinder(d = post_size * 1.155, h = 12.5,$fn=6);
}
translate([post_size/2, post_size/2, -1.5])cylinder(r
= board_hole, h=15);
}
}
module arm()
// mounting holes
{difference()
{
union(){
// extension below zero for bracket
translate([0,0,-(support_height+post_thick+nut_size)])
cube([post_thick, post_size, support_height+post_size + nut_size]);
// arm brace
translate([0,0,-support_height])rotate
([angle,0,0]) cube([post_size, board_offset+2*post_size+board_to_edge,
post_size]);
// horizontal support arm
translate([0,0,-post_size/2]) cube([post_size,
board_offset+post_size+board_to_edge, post_size]);
}
// cuts off far end
translate([-(post_thick-post_size)/2,board_offset+post_size+board_to_edge,-3.5
*post_size]) cube([2* post_thick, 2* post_size, 4* post_size]);
// cuts off near end
translate([-(post_thick-post_size)/2,-2*post_size,-support_height])
cube([2* post_thick, 2* post_size, 4* post_size]);
// hole for screw #1
translate([post_thick/2, -post_size/2,
-support_height-post_size])rotate([-90,0,0])cylinder(r = board_hole,
h=15);
// hole for hex nut #1
translate([post_thick/2, post_size-nut_inset,
-support_height-post_size ]) rotate([0,90,90])cylinder(d = nut_size, h
= 2*nut_inset,$fn=6);
// hole for screw #1
translate([post_thick/2, -post_size/2,
mount_hole_space])rotate([-90,0,0])cylinder(r = board_hole, h=15);
// hole for hex nut #2
translate([post_thick/2, post_size-nut_inset,
mount_hole_space ]) rotate([0,90,90])cylinder(d = nut_size, h =
2*nut_inset,$fn=6);
}
}
module support()
{
// post nearest mounting arm
translate([0,board_to_edge,0])post();
// post furthest from mounting arm
translate([0,board_to_edge+board_offset,0]) post();
// mounting bracket minus posts
arm();
}
color("green") support();
.*****************************************************
Harvey
__._,_.___