1
0
Fork 0
tla-tools/mechanical/nutbar.scad
2024-08-27 12:05:21 -05:00

73 lines
2.3 KiB
OpenSCAD

// all units are in inches
bar_dims = [1.228, 0.228, 0.184];
bump_thickness = 0.01;
$fn = $preview ? 32 : 64;
// hole/peg dimensions
peg_od = 0.1315;
hole_id = 0.107;
peg_id = 0.091; // 0.005 larger than #2-56 nominal diameter
peg_height = 0.405 - bar_dims[2];
peg_fullheight = 0.245 - bar_dims[2]; // height of the full circle wrap around.
function mm_to_in(mm) = 0.03937 * mm;
insert_diameter = mm_to_in(3.2); // 3.2mm (d3 for #2-56 inserts)
insert_length = mm_to_in(5.0);
notch_height = 0.108; // height from top of bar to bottom of notch
notch_thickness = 0.0380 - 0.0190; // how far the notch goes from the outer edge.
module peg_notch() {
// The peg notch is the notch that is used to hold the nut bar to the board.
base_thick = 0.01;
rotate([180, -90,0])
linear_extrude(0.054, center = true) polygon([
[0,0],
[0,base_thick],
[0,notch_thickness + base_thick],
[0.1,base_thick],
[0.1,0]
]);
}
module nutbar_peg() {
difference() {
union() {
// cube
translate([0,0, bump_thickness/2])
cube([bar_dims[1], bar_dims[1], bar_dims[2] + bump_thickness], center = true);
// peg portion
translate([0,0,bump_thickness + bar_dims[2]/2])
union() {
translate([0,- peg_od / 2 + 0.01, 0.1])
peg_notch();
difference() {
cylinder(h = peg_height, d = peg_od);
union() {
translate([0,0,-0.01])
cylinder(h = peg_height+0.02, d = peg_id);
translate([0,0,peg_fullheight])
cube([1,1,1]);
};
};
}
//
};
union() {
// threaded insert hole
translate([0,0,-1 * bar_dims[2]])
cylinder(h = insert_length + 0.01, d = insert_diameter);
cylinder(h = bar_dims[2] + 1, d = peg_id, center = true);
};
};
}
// create the cross bar bit
cube([bar_dims[0] - 2 * bar_dims[1], bar_dims[1], bar_dims[2]], center=true);
translate([bar_dims[0]/2 - 0.5 * bar_dims[1], 0, 0])
rotate([0,0,90])
nutbar_peg();
translate([-1 * (bar_dims[0]/2 - 0.5 * bar_dims[1]), 0, 0])
rotate([0,0,-90])
nutbar_peg();