diff --git a/libtest.png b/libtest.png index db0ed77..d35b357 100644 Binary files a/libtest.png and b/libtest.png differ diff --git a/libtest.scad b/libtest.scad index b8b1b6b..67b2e50 100644 --- a/libtest.scad +++ b/libtest.scad @@ -165,8 +165,8 @@ o_rings_y = springs_y; sealing_strip_y = springs_y + 20; tubings_y = sealing_strip_y + 20; pillars_y = tubings_y + 20; -leadnuts_y = pillars_y + 40; -pulleys_y = leadnuts_y +40; +ball_bearings_y = pillars_y + 40; +pulleys_y = ball_bearings_y +40; hot_ends_y = pulleys_y + 60; linear_bearings_y = hot_ends_y + 50; sheets_y = linear_bearings_y + 100; @@ -209,10 +209,7 @@ translate([x0, tubings_y]) translate([x0, pillars_y]) pillars(); -translate([x0, leadnuts_y ]) - leadnuts(); - -translate([x0 + 60, leadnuts_y]) +translate([x0, ball_bearings_y]) ball_bearings(); translate([x0, pulleys_y]) @@ -252,7 +249,8 @@ translate([x0, psus_y]) { } zipties_y = 0; -bulldogs_y = zipties_y + 40; +bulldogs_y = zipties_y + 30; +leadnuts_y = bulldogs_y + 50; translate([x1, zipties_y]) zipties(); @@ -260,6 +258,10 @@ translate([x1, zipties_y]) translate([x1, bulldogs_y]) bulldogs(); +translate([x1, leadnuts_y]) + leadnuts(); + + leds_y = 0; carriers_y = leds_y + 40; spades_y = carriers_y + 40; diff --git a/readme.md b/readme.md index d69d539..1e5ad9e 100644 --- a/readme.md +++ b/readme.md @@ -65,14 +65,11 @@ Also single bearing balls are modelled as just a silver sphere and a BOM entry. | ```bb_bore(type)``` | Internal diameter | | ```bb_colour(type)``` | Shield colour, "silver" for metal | | ```bb_diameter(type)``` | External diameter | +| ```bb_hub(type)``` | Inner rim thickness guesstimate | | ```bb_name(type)``` | Part code without shield type suffix | +| ```bb_rim(type)``` | Outer rim thickness guesstimate | | ```bb_width(type)``` | Width | -### Functions -| Function | Description | -|:--- |:--- | -| ```bb_rim(type)``` | Inner and outer rim thickness | - ### Modules | Module | Description | |:--- |:--- | @@ -88,7 +85,8 @@ Also single bearing balls are modelled as just a silver sphere and a BOM entry. | 1 | ```ball_bearing(BB6200)``` | Ball bearing 6200-2RS 10mm x 30mm x 9mm | | 1 | ```ball_bearing(BB6201)``` | Ball bearing 6201-2RS 12mm x 32mm x 10mm | | 1 | ```ball_bearing(BB624)``` | Ball bearing 624-2RS 4mm x 13mm x 5mm | -| 4 | ``` bearing_ball(3)``` | Steel ball 3mm | +| 1 | ```ball_bearing(BB6808)``` | Ball bearing 6808-2RS 40mm x 52mm x 7mm | +| 5 | ``` bearing_ball(3)``` | Steel ball 3mm | Top diff --git a/tests/png/ball_bearings.png b/tests/png/ball_bearings.png index fa84bc3..03cd177 100644 Binary files a/tests/png/ball_bearings.png and b/tests/png/ball_bearings.png differ diff --git a/tests/png/kp_pillow_blocks.png b/tests/png/kp_pillow_blocks.png index 7e81ba5..f7eabca 100644 Binary files a/tests/png/kp_pillow_blocks.png and b/tests/png/kp_pillow_blocks.png differ diff --git a/vitamins/ball_bearing.scad b/vitamins/ball_bearing.scad index 6ae1759..25517f1 100644 --- a/vitamins/ball_bearing.scad +++ b/vitamins/ball_bearing.scad @@ -26,36 +26,51 @@ //! Also single bearing balls are modelled as just a silver sphere and a BOM entry. // 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) = bb_diameter(type) / 10; //! Inner and outer rim thickness +function bb_rim(type) = type[5]; //! Outer rim thickness guesstimate +function bb_hub(type) = type[6]; //! Inner rim thickness guesstimate module ball_bearing(type) { //! Draw a ball bearing shield = bb_colour(type); suffix = shield == "silver" ? "ZZ " : "-2RS "; vitamin(str("ball_bearing(BB", bb_name(type), "): Ball bearing ", bb_name(type), suffix, bb_bore(type), "mm x ", bb_diameter(type), "mm x ", bb_width(type), "mm")); rim = bb_rim(type); + hub = bb_hub(type); h = bb_width(type); - od = bb_diameter(type); - id = bb_bore(type); - - module tube(od, id, h) - linear_extrude(h, center = true, convexity = 5) - difference() { - circle(d = od); - circle(d = id); - } + or = bb_diameter(type) / 2; + ir = bb_bore(type) / 2; color("silver") { - tube(od, od - rim, h); - tube(id + rim, id, h); + $fn = 360; + + rim_chamfer = rim / 5; + rotate_extrude() + hull() { + translate([or - rim / 2, 0]) + square([rim, h - 2 * rim_chamfer], center = true); + + translate([or - rim / 2 - rim_chamfer, 0]) + square([rim - rim_chamfer, h], center = true); + } + + hub_chamfer = hub / 5; + rotate_extrude() + hull() { + translate([ir + hub / 2, 0]) + square([hub, h - 2 * hub_chamfer], center = true); + + translate([ir + hub / 2 + hub_chamfer, 0]) + square([hub - hub_chamfer, h], center = true); + } } - color(shield) tube(od - rim, id + rim, h - 1); + color(shield) tube(or - rim - eps, ir + hub + eps, h - 1); if($children) translate_z(bb_width(type) / 2) diff --git a/vitamins/ball_bearings.scad b/vitamins/ball_bearings.scad index 49ba38b..d05cdd1 100644 --- a/vitamins/ball_bearings.scad +++ b/vitamins/ball_bearings.scad @@ -16,11 +16,11 @@ // You should have received a copy of the GNU General Public License along with NopSCADlib. // If not, see . // -BB624 = ["624", 4, 13, 5, "blue"]; // 624 ball bearing for idlers -BB608 = ["608", 8, 22, 7, "OrangeRed"]; // 608 bearings for wades -BB6200 = ["6200", 10, 30, 9, "black"]; // 6200 bearings for KP pillow blocks -BB6201 = ["6201", 12, 32, 10, "black"]; // 6201 bearings for KP pillow blocks - -ball_bearings = [BB624, BB608, BB6200, BB6201]; +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.5]; +ball_bearings = [BB624, BB608, BB6200, BB6201, BB6808]; use