diff --git a/readme.md b/readme.md index 642d017..789cffa 100644 --- a/readme.md +++ b/readme.md @@ -38,16 +38,17 @@ See [usage](docs/usage.md) for requirements, installation instructions and a usa Iecs Spades Ssr_shroud Inserts Spools Strap_handle Jack Springs - Ldrs Ssrs - Leadnuts Stepper_motors - Leds Toggles - Light_strips Transformers - Linear_bearings Tubings - Mains_sockets Variacs - Meter Veroboard - Microswitches Washers - Microview Wire - Modules Zipties + Kp_pillow_blocks Ssrs + Ldrs Stepper_motors + Leadnuts Toggles + Leds Transformers + Light_strips Tubings + Linear_bearings Variacs + Mains_sockets Veroboard + Meter Washers + Microswitches Wire + Microview Zipties + Modules --- @@ -93,8 +94,10 @@ Also single bearing balls are modelled as just a silver sphere and a BOM entry. | Qty | Module call | BOM entry | | ---:|:--- |:---| | 1 | ```ball_bearing(BB608)``` | Ball bearing 608-2RS 8mm x 22mm x 7mm | +| 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 | -| 2 | ``` bearing_ball(3)``` | Steel ball 3mm | +| 4 | ``` bearing_ball(3)``` | Steel ball 3mm | Top @@ -1087,6 +1090,57 @@ E.g. a "brown" socket for mains live needs to be displayed as "sienna" to look r | 1 | ```jack_4mm_shielded("brown", 3, "sienna")``` | 4mm shielded jack socket brown | +Top + +--- + +## Kp_pillow_blocks +KP pillow block bearings + + +[vitamins/kp_pillow_blocks.scad](vitamins/kp_pillow_blocks.scad) Object definitions. + +[vitamins/kp_pillow_block.scad](vitamins/kp_pillow_block.scad) Implementation. + +[tests/kp_pillow_blocks.scad](tests/kp_pillow_blocks.scad) Code for this example. + +### Properties +| Function | Description | +|:--- |:--- | +| ```kp_base_height(type)``` | Height of base containing the bolts | +| ```kp_diameter(type)``` | Rod hole diameter | +| ```kp_hole_offset(type)``` | Rod hole offset | +| ```kp_screw_separation(type)``` | Separation of bolts in the base | + +### Functions +| Function | Description | +|:--- |:--- | +| ```kp_size(type)``` | Size of bracket | + +### Modules +| Module | Description | +|:--- |:--- | +| ```kp_pillow_block(type)``` | Draw the KP pillow block | +| ```kp_pillow_block_assembly(type, part_thickness = 2, screw_type = M5_cap_screw, nut_type = undef)``` | Assembly with fasteners in place | +| ```kp_pillow_block_hole_positions(type)``` | Place children at hole positions | + +![kp_pillow_blocks](tests/png/kp_pillow_blocks.png) + +### Vitamins +| Qty | Module call | BOM entry | +| ---:|:--- |:---| +| 1 | ```kp_pillow_block(KP000)``` | KP000 pillow block | +| 1 | ```kp_pillow_block(KP001)``` | KP001 pillow block | +| 1 | ```kp_pillow_block(KP08)``` | KP08 pillow block | +| 2 | ```sliding_t_nut(M4_sliding_t_nut)``` | Nut M4 sliding T | +| 2 | ```sliding_t_nut(M5_sliding_t_nut)``` | Nut M5 sliding T | +| 2 | ```nut(M5_nut, nyloc = undef)``` | Nut M5 x 4mm | +| 2 | ```screw(M4_cap_screw, 10)``` | Screw M4 cap x 10mm | +| 4 | ```screw(M5_cap_screw, 12)``` | Screw M5 cap x 12mm | +| 2 | ```washer(M4_washer)``` | Washer M4 x 9mm x 0.8mm | +| 6 | ```washer(M5_washer)``` | Washer M5 x 10mm x 1mm | + + Top --- diff --git a/tests/kp_pillow_blocks.scad b/tests/kp_pillow_blocks.scad new file mode 100644 index 0000000..0a127df --- /dev/null +++ b/tests/kp_pillow_blocks.scad @@ -0,0 +1,34 @@ +// +// NopSCADlib Copyright Chris Palmer 2018 +// nop.head@gmail.com +// hydraraptor.blogspot.com +// +// This file is part of NopSCADlib. +// +// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the +// GNU General Public License as published by the Free Software Foundation, either version 3 of +// the License, or (at your option) any later version. +// +// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along with NopSCADlib. +// If not, see . +// +include <../core.scad> +use <../utils/layout.scad> + +include <../vitamins/kp_pillow_blocks.scad> +include <../vitamins/nuts.scad> + +module kp_pillow_blocks() { + screws = [M4_cap_screw, M5_cap_screw, M5_cap_screw]; + nuts = [M4_sliding_t_nut, M5_sliding_t_nut, M5_nut]; + layout([for(k = kp_pillow_blocks) 2 * kp_size(k)[1]]) + kp_pillow_block_assembly(kp_pillow_blocks[$i], screw_type = screws[$i], nut_type = nuts[$i]); +} + +if($preview) + kp_pillow_blocks(); + diff --git a/tests/png/ball_bearings.png b/tests/png/ball_bearings.png index d9fa3d7..fa84bc3 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 new file mode 100644 index 0000000..ed1a826 Binary files /dev/null and b/tests/png/kp_pillow_blocks.png differ diff --git a/vitamins/ball_bearings.scad b/vitamins/ball_bearings.scad index 23fb42d..49ba38b 100644 --- a/vitamins/ball_bearings.scad +++ b/vitamins/ball_bearings.scad @@ -18,7 +18,9 @@ // 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]; +ball_bearings = [BB624, BB608, BB6200, BB6201]; use diff --git a/vitamins/kp_pillow_block.scad b/vitamins/kp_pillow_block.scad new file mode 100644 index 0000000..ec94084 --- /dev/null +++ b/vitamins/kp_pillow_block.scad @@ -0,0 +1,117 @@ +// +// NopSCADlib Copyright Chris Palmer 2018 +// nop.head@gmail.com +// hydraraptor.blogspot.com +// +// This file is part of NopSCADlib. +// +// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the +// GNU General Public License as published by the Free Software Foundation, either version 3 of +// the License, or (at your option) any later version. +// +// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along with NopSCADlib. +// If not, see . + +// +//! KP pillow block bearings +// +include <../core.scad> +use <../utils/tube.scad> + +include +use +use + +kp_pillow_block_color = grey70; + +function kp_diameter(type) = type[1]; //! Rod hole diameter +function kp_hole_offset(type) = type[2]; //! Rod hole offset +function kp_size(type) = [type[3],type[8],type[5]]; //! Size of bracket +function kp_base_height(type) = type[7]; //! Height of base containing the bolts +function kp_screw_separation(type) = type[4]; //! Separation of bolts in the base + + +module kp_pillow_block(type) { //! Draw the KP pillow block + vitamin(str("kp_pillow_block(", type[0], "): ", type[0], " pillow block")); + + d = kp_diameter(type); + H = kp_hole_offset(type); + L = kp_size(type)[0]; + J = kp_screw_separation(type); + A = kp_size(type)[2];// sizeZ, includes protruding center + N = type[6]; + H1 = kp_base_height(type); + H0 = kp_size(type)[1]; + K = type[9]; + S = type[10]; + b = type[11]; + bolthole_radius = type[12]; + + color(kp_pillow_block_color) + translate([0, -H, 0]) { + fillet = 1; + squareSizeX = (L - H0) / 2 + fillet; + rotate([-90, 0, 0]) + linear_extrude(H1) + difference() { + union() { + for(i = [-L / 2, L / 2 - squareSizeX]) + translate([i, -A / 2]) + rounded_square([squareSizeX, A], fillet, center = false); + } + for(i = [-J / 2, J / 2]) + translate([i, 0]) + circle(r = bolthole_radius); + } + + translate_z(-A / 2) { + for(x = [- L / 2 + squareSizeX - fillet, L / 2 - squareSizeX + fillet - 2]) + translate([x, 0, 0]) + cube([2, H, A]); + stripLength = J - 2 * bolthole_radius; + stripThickness = 4; + translate([-stripLength / 2, 0, (H1 + stripThickness) / 2]) + cube([stripLength, H1, stripThickness]); + translate([0 , H, 0]) + tube(H0 / 2, b / 2, A, center = false); + } + } + + not_on_bom() no_explode() + ball_bearing(type[13]); +} + +module kp_pillow_block_hole_positions(type) { //! Place children at hole positions + for(x = [-kp_screw_separation(type), kp_screw_separation(type)]) + translate([x / 2, kp_base_height(type) - kp_hole_offset(type), 0]) + rotate([-90,0,0]) + children(); +} + +module kp_pillow_block_assembly(type, part_thickness = 2, screw_type = M5_cap_screw, nut_type = undef) { //! Assembly with fasteners in place + kp_pillow_block(type); + + screw_washer_thickness = washer_thickness(screw_washer(screw_type)); + nut_type = is_undef(nut_type) ? screw_nut(screw_type) : nut_type; + nut_washer_type = nut_washer(nut_type); + nut_washer_thickness = nut_washer_type ? washer_thickness(nut_washer_type) : 0; + + nut_offset = kp_base_height(type) + part_thickness; + screw_length = screw_shorter_than(nut_offset + screw_washer_thickness + nut_thickness(nut_type) + nut_washer_thickness); + + kp_pillow_block_hole_positions(type) { + screw_and_washer(screw_type, screw_length); + + translate_z(-nut_offset) + vflip() + if(nut_washer_type) + nut_and_washer(nut_type); + else + sliding_t_nut(nut_type); + } +} + diff --git a/vitamins/kp_pillow_blocks.scad b/vitamins/kp_pillow_blocks.scad new file mode 100644 index 0000000..db7773b --- /dev/null +++ b/vitamins/kp_pillow_blocks.scad @@ -0,0 +1,35 @@ +// +// NopSCADlib Copyright Chris Palmer 2018 +// nop.head@gmail.com +// hydraraptor.blogspot.com +// +// This file is part of NopSCADlib. +// +// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the +// GNU General Public License as published by the Free Software Foundation, either version 3 of +// the License, or (at your option) any later version. +// +// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along with NopSCADlib. +// If not, see . +// + +// +//! KP pillow block bearings +// + +include <../core.scad> +include +include + +// d H L J A N H1 H0 K S b bolthole bearing +KP08 = ["KP08", 8, 18, 55, 42, 13, 4.5, 5, 29, 0.0, 0, 22, M4_clearance_radius, BB608]; +KP000 = ["KP000", 10, 18, 67, 53, 16, 7.0, 6, 35, 14.0, 4, 30, M6_clearance_radius, BB6200]; +KP001 = ["KP001", 12, 19, 71, 56, 16, 7.0, 6, 38, 14.5, 4, 32, M6_clearance_radius, BB6201]; + +kp_pillow_blocks = [KP08, KP000, KP001]; + +use