From f87f3f51ee778ef7ca30319d1d6ff3f4013e8258 Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Fri, 28 Jan 2022 19:12:50 +0000 Subject: [PATCH] Added support for flanged bearings. Also added some new cartridge bearings. --- tests/ball_bearings.scad | 4 +-- vitamins/ball_bearing.scad | 50 ++++++++++++++++++++++++------------- vitamins/ball_bearings.scad | 26 +++++++++++++------ 3 files changed, 54 insertions(+), 26 deletions(-) diff --git a/tests/ball_bearings.scad b/tests/ball_bearings.scad index 342f3b8..0b57e1d 100644 --- a/tests/ball_bearings.scad +++ b/tests/ball_bearings.scad @@ -24,7 +24,7 @@ include <../vitamins/ball_bearings.scad> module ball_bearings() layout([for(b = ball_bearings) bb_diameter(b)]) ball_bearing(ball_bearings[$i]) - bearing_ball(3); - + if (bb_width(ball_bearings[$i]) >= 5) + bearing_ball(3); if($preview) ball_bearings(); diff --git a/vitamins/ball_bearing.scad b/vitamins/ball_bearing.scad index d55ed4f..eb86b0c 100644 --- a/vitamins/ball_bearing.scad +++ b/vitamins/ball_bearing.scad @@ -28,13 +28,16 @@ include <../utils/core/core.scad> include <../utils/tube.scad> -function bb_name(type) = type[0]; //! Part code without shield type suffix -function bb_bore(type) = type[1]; //! Internal diameter -function bb_diameter(type) = type[2]; //! External diameter -function bb_width(type) = type[3]; //! Width -function bb_colour(type) = type[4]; //! Shield colour, "silver" for metal -function bb_rim(type) = type[5]; //! Outer rim thickness guesstimate -function bb_hub(type) = type[6]; //! Inner rim thickness guesstimate +function bb_name(type) = type[0]; //! Part code without shield type suffix +function bb_bore(type) = type[1]; //! Internal diameter +function bb_diameter(type) = type[2]; //! External diameter +function bb_width(type) = type[3]; //! Width +function bb_colour(type) = type[4]; //! Shield colour, "silver" for metal +function bb_rim(type) = type[5]; //! Outer rim thickness guesstimate +function bb_hub(type) = type[6]; //! Inner rim thickness guesstimate +function bb_flange_diameter(type) = type[7]; //! Flange diameter +function bb_flange_width(type) = type[8]; //! Flange width + module ball_bearing(type) { //! Draw a ball bearing shield = bb_colour(type); @@ -45,32 +48,45 @@ module ball_bearing(type) { //! Draw a ball bearing h = bb_width(type); or = bb_diameter(type) / 2; ir = bb_bore(type) / 2; + fr = bb_flange_diameter(type) / 2; + fw = bb_flange_width(type); color("silver") { $fn = 360; - rim_chamfer = rim / 6; rotate_extrude() hull() { - translate([or - rim, -h / 2 + rim_chamfer]) - square([rim, h - 2 * rim_chamfer]); + chamfer = rim / 6; + translate([or - rim, -h / 2 + chamfer]) + square([rim, h - 2 * chamfer]); translate([or - rim, -h / 2]) - square([rim - rim_chamfer, h]); + square([rim - chamfer, h]); } - hub_chamfer = hub / 6; + if (fr) + rotate_extrude() + hull() { + chamfer = fw / 6; + translate([or - rim, -h / 2 + chamfer]) + square([fr - or + rim, fw - 2 * chamfer]); + + translate([or - rim, -h / 2]) + square([fr - or + rim - chamfer, fw]); + } + rotate_extrude() hull() { - translate([ir, -h / 2 + hub_chamfer]) - square([hub, h - 2 * hub_chamfer]); + chamfer = hub / 6; + translate([ir, -h / 2 + chamfer]) + square([hub, h - 2 * chamfer]); - translate([ir + hub_chamfer, -h / 2]) - square([hub - hub_chamfer, h]); + translate([ir + chamfer, -h / 2]) + square([hub - chamfer, h]); } } - color(shield) tube(or - rim - eps, ir + hub + eps, h - 1); + color(shield) tube(or - rim - eps, ir + hub + eps, h - (h < 5 ? 0.5 : 1)); if($children) translate_z(bb_width(type) / 2) diff --git a/vitamins/ball_bearings.scad b/vitamins/ball_bearings.scad index d6b2ab9..1179b27 100644 --- a/vitamins/ball_bearings.scad +++ b/vitamins/ball_bearings.scad @@ -16,12 +16,24 @@ // You should have received a copy of the GNU General Public License along with NopSCADlib. // If not, see . // -BBSMR95 = ["SMR95", 5, 9, 2.5, "silver", 0.5, 0.7]; // SMR95 ball bearing for FlexDrive extruder -BB624 = ["624", 4, 13, 5, "blue", 1.2, 1.2]; // 624 ball bearing for idlers -BB608 = ["608", 8, 22, 7, "OrangeRed", 1.4, 2.0]; // 608 bearings for wades -BB6200 = ["6200", 10, 30, 9, "black", 2.3, 3.6]; // 6200 bearings for KP pillow blocks -BB6201 = ["6201", 12, 32, 10, "black", 2.4, 3.7]; // 6201 bearings for KP pillow blocks -BB6808 = ["6808", 40, 52, 7, "black", 1.5, 1.6]; -ball_bearings = [BBSMR95, BB624, BB608, BB6200, BB6201, BB6808]; + + +// name id od w colour or ir fd fw +BBSMR95 = ["SMR95", 5, 9, 2.5, "silver", 0.5, 0.7, 0, 0]; // SMR95 ball bearing for FlexDrive extruder +BB624 = ["624", 4, 13, 5, "blue", 1.2, 1.2, 0, 0]; // 624 ball bearing for idlers +BB608 = ["608", 8, 22, 7, "black", 1.4, 2.0, 0, 0]; // 608 bearings for wades +BB6200 = ["6200", 10, 30, 9, "black", 2.3, 3.6, 0, 0]; // 6200 bearings for KP pillow blocks +BB6201 = ["6201", 12, 32, 10, "black", 2.4, 3.7, 0, 0]; // 6201 bearings for KP pillow blocks +BB6808 = ["6808", 40, 52, 7, "black", 1.5, 1.6, 0, 0]; +BBMR63 = ["MR63", 3, 6, 2.5, "silver", 0.5, 0.5, 0, 0]; +BBMR83 = ["MR83", 3, 8, 3, "silver", 0.5, 0.5, 0, 0]; +BBMR85 = ["MR85", 5, 8, 2.5, "silver", 0.5, 0.5, 0, 0]; +BBMR93 = ["MR93", 3, 9, 4, "silver", 0.5, 0.5, 0, 0]; +BBMR95 = ["MR95", 5, 9, 3, "silver", 0.5, 0.5, 0, 0]; +BBF623 = ["F623", 3, 10, 4, "black", 0.6, 0.7, 11.5, 1]; +BBF693 = ["F693", 3, 8, 3, "silver", 0.5, 0.7, 9.5, 0.7]; +BBF695 = ["F695", 5, 13, 4, "silver", 1.0, 1.0, 15, 1]; + +ball_bearings = [BBF693, BBF623, BBF695, BBMR63, BBMR83, BBMR93, BBSMR95, BB624, BB608, BB6200, BB6201, BB6808]; use