1
0
mirror of https://github.com/nophead/Mendel90.git synced 2025-01-16 20:38:15 +01:00
Mendel90/scad/bearing-holder.scad
2016-01-06 15:36:19 +00:00

79 lines
3.0 KiB
OpenSCAD

//
// Mendel90
//
// GNU GPL v2
// nop.head@gmail.com
// hydraraptor.blogspot.com
//
// Fastens the bearings to the Y-carriage
//
// Based on a design by Jeffrey Olijar (Jolijar)
//
include <conf/config.scad>
relief = squeeze ? 0.25 : 0.5; // clearance in the middle to stop the bearing rocking
wall = squeeze ? 3 * filament_width + relief + eta : 2.5; // wall thickness
clearance = 0.2; // end clearance
end_wall = min(default_wall, 3) - clearance;
ziptie_clearance = 1;
ziptie = small_ziptie;
zipslot_width = ziptie_width(ziptie) + ziptie_clearance;
zipslot_tickness = ziptie_thickness(ziptie) + ziptie_clearance;
function bearing_holder_length(bearing) = bearing[0] + 2 * (end_wall + clearance);
function bearing_holder_width(bearing) = bearing[1] + wall * 2;
function zipslot_width() = zipslot_width;
function bearing_ziptie_radius(bearing) = bearing[1] / 2 + wall + eta;
module bearing_holder(bearing, bar_height, populate = false, rad = 0, tie_offset = 0) {
bearing_length = bearing[0];
bearing_dia = bearing[1];
below = 5 * bearing_dia / 15;
height = bar_height + bearing_dia / 2 - below;
offset = below + height / 2 - bearing_dia / 2;
fence = 2.5;
fence_width = sqrt(sqr(bearing_dia) - 4 * sqr(bearing_dia / 2 - fence)) + eta;
width = bearing_holder_width(bearing);
length = bearing_holder_length(bearing);
fence_offset = bearing_dia / 2 - fence + (fence + 1) /2;
union(){
difference() {
translate([0, 0, -offset]) // Basic shape
if(rad)
hull() {
rounded_rectangle([width, length, height], center = true, r = rad);
translate([-width / 2, length / 2 - 1, -height / 2])
cube(1);
translate([width / 2 - 1, -length / 2, -height / 2])
cube(1);
translate([0, 0, height / 2])
cube([width, length, eta], center = true);
}
else
cube(size = [width, length, height], center = true);
rotate([90,0,0]) {
cylinder(h = length + 1, r = bearing_dia / 2, center=true); // Bearing Cutout
cylinder(h = length / 2, r = bearing_dia / 2 + relief, center=true);// releave the center so does not rock
translate([0, 0, tie_offset])
tube(h = zipslot_width, ir = bearing_dia / 2 + wall,
or = bearing_dia / 2 + wall + zipslot_tickness, fn=64); // ziptie slot
}
}
translate([0, (length - end_wall)/ 2, -fence_offset]) cube(size = [fence_width,end_wall,fence + 1], center = true); // Blocks at the end to keep the bearing from sliding out
translate([0, -(length - end_wall)/ 2, -fence_offset]) cube(size = [fence_width,end_wall,fence + 1], center = true);
}
if(populate)
rotate([0,0,90])
linear_bearing(bearing);
}
bearing_holder(LM8UU, 20, rad = 7);