// 608 Bearing Pillow Block Housing // Parametric model with press-fit bore, mounting slots, and top set-screw hole. // Fits standard 608 bearing (22 mm OD x 7 mm width x 8 mm ID). /* [Bearing Specifications] */ // Bearing outer diameter (nominal 22 mm for 608) bearing_od = 22.0; // [20.0:0.1:26.0] // Bearing width (nominal 7 mm for 608) bearing_width = 7.0; // [5.0:0.5:12.0] // Press-fit diametral interference (bore diameter = bearing_od - interference) interference = 0.10; // [0.00:0.02:0.30] /* [Housing Dimensions] */ // Radial wall thickness around the bearing bore wall_thickness = 6.0; // [4.0:0.5:10.0] // Height of bearing center axis above the base bottom shaft_center_height = 22.0; // [18.0:0.5:32.0] // Housing depth along the shaft axis housing_depth = 20.0; // [12.0:1.0:25.0] /* [Base Plate] */ // Total length of the mounting base (X axis) base_length = 50.0; // [40.0:1.0:70.0] // Total width of the mounting base (Y axis) base_width = 20.0; // [15.0:1.0:30.0] // Thickness of the mounting base plate (Z axis) base_thickness = 6.0; // [4.0:0.5:10.0] // Base corner rounding radius corner_radius = 3.0; // [0.0:0.5:5.0] /* [Mounting Slots] */ // Diameter of the slotted mounting holes (e.g. 5.5 mm for M5 screws) slot_diameter = 5.5; // [4.0:0.1:7.0] // Total length of each slot along X axis slot_length = 7.5; // [5.5:0.5:12.0] // Center-to-center distance between the two mounting slots slot_spacing = 35.0; // [28.0:1.0:44.0] /* [Set Screw] */ // Set screw hole diameter (e.g. 3.0 mm for M3 tap / clearance) set_screw_diameter = 3.0; // [2.0:0.1:4.5] // Flat boss diameter on top of the housing for set screw seating set_screw_boss_dia = 8.0; // [6.0:0.5:12.0] /* [Bore Features] */ // Add internal stop shoulder for bearing shoulder_stop = false; // [true, false] // Shoulder stop diameter (shaft clearance hole) shoulder_hole_dia = 16.0; // [12.0:0.5:18.0] // Entrance lead-in chamfer for easy bearing pressing lead_in_chamfer = 0.6; // [0.0:0.1:1.5] /* [Display Options] */ housing_color = "SteelBlue"; // [SteelBlue, SlateGray, DarkSlateGray, DodgerBlue, Teal, DarkOrange, Crimson] show_bearing_ghost = false; // [true, false] /* [Quality] */ $fn = 64; // Calculated dimensions bore_diameter = bearing_od - interference; bore_radius = bore_diameter / 2; housing_od = bearing_od + 2 * wall_thickness; // 34 mm nominal housing_radius = housing_od / 2; // 17 mm nominal apex_height = shaft_center_height + housing_radius; // 39 mm nominal // Primary model assembly module pillow_block() { difference() { // Positive body housing_body(); // Bearing bore through housing bearing_bore(); // Vertical set screw hole from the top set_screw_cutout(); // Two slotted mounting holes in base base_slots(); } } // Solid outer housing combining base, central ring, and stiffening gussets module housing_body() { union() { // Rounded flat base plate base_plate(); // Central cylindrical bearing housing along Y axis translate([0, 0, shaft_center_height]) rotate([-90, 0, 0]) cylinder(h = housing_depth, r = housing_radius, center = true); // Side gusset webs transitioning from cylinder to base side_gussets(); // Top flat landing boss for set screw translate([0, 0, apex_height - 1.5]) cylinder(h = 1.5, d = set_screw_boss_dia); } } // Flat base plate with 4 rounded corners module base_plate() { dx = base_length / 2 - corner_radius; dy = base_width / 2 - corner_radius; hull() { translate([-dx, -dy, 0]) cylinder(h = base_thickness, r = corner_radius); translate([ dx, -dy, 0]) cylinder(h = base_thickness, r = corner_radius); translate([-dx, dy, 0]) cylinder(h = base_thickness, r = corner_radius); translate([ dx, dy, 0]) cylinder(h = base_thickness, r = corner_radius); } } // Structural triangular gussets that brace the bearing ring to the base plate module side_gussets() { // Gusset footprint: connects cylinder tangency to flat base, leaving slots clear web_x = 12.0; // Meets base inside the slot clearance zone // Extrude the side support profile along Y across the housing depth rotate([90, 0, 90]) linear_extrude(height = 2 * web_x, center = true) polygon(points = [ // Top junction near cylinder equator [-housing_depth / 2, shaft_center_height], [ housing_depth / 2, shaft_center_height], // Base junctions [ housing_depth / 2, base_thickness], [-housing_depth / 2, base_thickness] ]); // X-Z plane side reinforcement webs for (s = [-1, 1]) { hull() { // Tangent edge near the cylinder equator translate([s * (housing_radius - 1.5), 0, shaft_center_height - 3]) rotate([-90, 0, 0]) cylinder(h = housing_depth, r = 1.5, center = true); // Lower landing on top of the base plate translate([s * web_x, 0, base_thickness / 2]) cube([2.0, housing_depth, base_thickness], center = true); } } } // Press-fit bearing bore with chamfer and optional shoulder stop module bearing_bore() { translate([0, 0, shaft_center_height]) { rotate([-90, 0, 0]) { if (shoulder_stop) { // Front bearing seat pocket translate([0, 0, housing_depth / 2 - (bearing_width + 0.5)]) cylinder(h = bearing_width + 1.0, r = bore_radius); // Lead-in chamfer at front face translate([0, 0, housing_depth / 2 - lead_in_chamfer]) cylinder(h = lead_in_chamfer + 0.1, r1 = bore_radius, r2 = bore_radius + lead_in_chamfer); // Shaft clearance hole through the rest translate([0, 0, -housing_depth / 2 - 0.5]) cylinder(h = housing_depth - bearing_width + 0.5, d = shoulder_hole_dia); } else { // Full through-bore (press-fit 21.9 mm) translate([0, 0, -housing_depth / 2 - 0.5]) cylinder(h = housing_depth + 1.0, r = bore_radius); // Entrance chamfers on both front and back faces if (lead_in_chamfer > 0) { // Front chamfer translate([0, 0, housing_depth / 2 - lead_in_chamfer]) cylinder(h = lead_in_chamfer + 0.1, r1 = bore_radius, r2 = bore_radius + lead_in_chamfer); // Rear chamfer translate([0, 0, -housing_depth / 2 - 0.1]) cylinder(h = lead_in_chamfer + 0.1, r1 = bore_radius + lead_in_chamfer, r2 = bore_radius); } } } } } // Vertical set screw hole from the top of the housing module set_screw_cutout() { // Hole drilled from top apex down into the bearing bore translate([0, 0, shaft_center_height]) cylinder(h = housing_radius + 5.0, d = set_screw_diameter); // Subtle countersink / entry bevel at top translate([0, 0, apex_height - 0.5]) cylinder(h = 1.0, d1 = set_screw_diameter, d2 = set_screw_diameter + 1.0); } // Two slotted mounting holes in the base module base_slots() { travel = max(0, slot_length - slot_diameter); for (s = [-1, 1]) { translate([s * (slot_spacing / 2), 0, -0.5]) { hull() { translate([-travel / 2, 0, 0]) cylinder(h = base_thickness + 1.0, d = slot_diameter); translate([ travel / 2, 0, 0]) cylinder(h = base_thickness + 1.0, d = slot_diameter); } } } } // Optional ghost rendering of standard 608 bearing module bearing_608_ghost() { color([0.85, 0.85, 0.88, 0.4]) { translate([0, 0, shaft_center_height]) { rotate([-90, 0, 0]) { difference() { // Outer ring cylinder(h = bearing_width, d = bearing_od, center = true); // Bore (8 mm inner diameter) cylinder(h = bearing_width + 1.0, d = 8.0, center = true); } } } } } // Render model color(housing_color) pillow_block(); if (show_bearing_ghost) bearing_608_ghost();