// Pillow Block Housing for 608 Bearing // Press-fit bearing housing with mounting base and set-screw /* [Bearing Specifications] */ // Nominal bearing outer diameter (608 = 22 mm) bearing_od = 22.0; // [15:0.5:35] // Interference fit reduction on diameter interference_fit = 0.1; // [0.0:0.02:0.3] // Bearing width (608 = 7 mm) bearing_width = 7.0; // [5:0.5:15] // Shaft pass-through diameter shaft_clearance_dia = 12.0; // [8:0.5:18] /* [Housing Dimensions] */ // Radial wall thickness around bearing wall_thickness = 6.0; // [3:0.5:12] // Height from base bottom to shaft center center_height = 20.0; // [15:1:35] // Depth of the upper bearing ring (Y-axis) housing_depth = 12.0; // [7:1:25] // Include rear retaining shoulder lip include_shoulder = true; // Thickness of retaining shoulder shoulder_thickness = 1.5; // [1:0.5:4] /* [Base Dimensions] */ // Base length along X-axis base_length = 50.0; // [35:1:80] // Base width along Y-axis base_width = 20.0; // [12:1:40] // Base plate thickness base_thickness = 6.0; // [4:0.5:12] // Base corner rounding radius base_corner_radius = 4.0; // [0:0.5:10] /* [Mounting Slots] */ // Diameter of mounting bolts/slots mount_hole_diameter = 5.5; // [3:0.5:10] // Center-to-center spacing of mounting slots mount_hole_spacing = 37.0; // [25:1:65] // Extra slot travel length along X slot_travel = 4.0; // [0:0.5:10] /* [Set Screw] */ // Set screw hole diameter (e.g. M3 tap drill ~2.5-3.0mm) set_screw_dia = 3.0; // [2.0:0.5:5.0] /* [Appearance & Quality] */ part_color = "SteelBlue"; $fn = 64; // Calculated dimensions bore_diameter = bearing_od - interference_fit; boss_outer_diameter = bearing_od + 2 * wall_thickness; boss_radius = boss_outer_diameter / 2; module pillow_block() { color(part_color) difference() { // --- Solid Body --- union() { // 1. Base Plate with rounded corners hull() { for (x = [-base_length/2 + base_corner_radius, base_length/2 - base_corner_radius]) { for (y = [-base_width/2 + base_corner_radius, base_width/2 - base_corner_radius]) { translate([x, y, 0]) cylinder(r=base_corner_radius, h=base_thickness); } } } // 2. Main Bearing Ring / Boss (Y-oriented) translate([0, 0, center_height]) rotate([-90, 0, 0]) cylinder(d=boss_outer_diameter, h=housing_depth, center=true); // 3. Smooth transition / gusset web connecting boss to base hull() { // Lower slice merging into base translate([-boss_radius * 1.05, -base_width/2, 0]) cube([boss_outer_diameter * 1.05, base_width, base_thickness]); // Mid/upper tangency on the cylindrical boss translate([0, 0, center_height]) rotate([-90, 0, 0]) cylinder(d=boss_outer_diameter, h=housing_depth, center=true); } // 4. Lateral reinforcing wing gussets tapering to base edges hull() { translate([-base_length/2 + 6, -housing_depth/2, 0]) cube([base_length - 12, housing_depth, base_thickness]); translate([0, 0, center_height]) rotate([-90, 0, 0]) cylinder(d=boss_outer_diameter * 0.9, h=housing_depth, center=true); } } // --- Subtractions & Cutouts --- // 1. Bearing Bore & Shaft Pocket if (include_shoulder) { // Bearing pocket from front face translate([0, -housing_depth/2 - 0.1, center_height]) rotate([-90, 0, 0]) cylinder(d=bore_diameter, h=bearing_width + 0.1); // Shaft clearance through-hole translate([0, -housing_depth, center_height]) rotate([-90, 0, 0]) cylinder(d=shaft_clearance_dia, h=housing_depth * 2); // Subtle lead-in chamfer for easy bearing pressing translate([0, -housing_depth/2 - 0.01, center_height]) rotate([-90, 0, 0]) cylinder(r1=bore_diameter/2 + 0.6, r2=bore_diameter/2, h=0.8); } else { // Full through-bore translate([0, -housing_depth, center_height]) rotate([-90, 0, 0]) cylinder(d=bore_diameter, h=housing_depth * 2); } // 2. Set Screw Hole (from top down to bearing bore) // Positioned over the bearing seat translate([0, include_shoulder ? (-housing_depth/2 + bearing_width/2) : 0, center_height]) cylinder(d=set_screw_dia, h=boss_radius + 5); // Set screw countersink / entrance bevel translate([0, include_shoulder ? (-housing_depth/2 + bearing_width/2) : 0, center_height + boss_radius - 0.5]) cylinder(r1=set_screw_dia/2, r2=set_screw_dia/2 + 0.8, h=1); // 3. Slotted Mounting Holes (Left and Right) for (side = [-1, 1]) { hull() { translate([side * mount_hole_spacing/2 - slot_travel/2, 0, -1]) cylinder(d=mount_hole_diameter, h=base_thickness + 2); translate([side * mount_hole_spacing/2 + slot_travel/2, 0, -1]) cylinder(d=mount_hole_diameter, h=base_thickness + 2); } } } } pillow_block();