From b07a8ad24557f57e2df08f700d1912d63598501f Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Sun, 16 Feb 2020 14:02:23 +0000 Subject: [PATCH 1/7] Added SCS bearing blocks, SCSnUU and SCSnLUU variants --- tests/scs_bearing_blocks.scad | 35 ++++++++ vitamins/scs_bearing_block.scad | 147 +++++++++++++++++++++++++++++++ vitamins/scs_bearing_blocks.scad | 45 ++++++++++ 3 files changed, 227 insertions(+) create mode 100644 tests/scs_bearing_blocks.scad create mode 100644 vitamins/scs_bearing_block.scad create mode 100644 vitamins/scs_bearing_blocks.scad diff --git a/tests/scs_bearing_blocks.scad b/tests/scs_bearing_blocks.scad new file mode 100644 index 0000000..4433c42 --- /dev/null +++ b/tests/scs_bearing_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 . +// +include <../core.scad> +use <../utils/layout.scad> + +include <../vitamins/scs_bearing_blocks.scad> + +module scs_bearing_blocks() + layout([for(s = scs_bearing_blocks) 2 * scs_size(s)[0]]) { + scs_bearing_block_assembly(scs_bearing_blocks[$i]); + + if($i > 0) // skip $i==0, since no SCS6LUU long variant to match SCS6UU + translate([0, 60]) + scs_bearing_block_assembly(scs_bearing_blocks_long[$i - 1]); + } + +if($preview) + scs_bearing_blocks(); + diff --git a/vitamins/scs_bearing_block.scad b/vitamins/scs_bearing_block.scad new file mode 100644 index 0000000..e225b83 --- /dev/null +++ b/vitamins/scs_bearing_block.scad @@ -0,0 +1,147 @@ +// +// 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 . +// + +// +// SCSnUU and SCSnLUU bearing blocks +// + + +include +include +include + +function scs_size(type) = [type[4],type[6],type[5]]; //! Size of scs bracket bounding block +function scs_hole_offset(type) = type[2]; //! Offset of bearing hole from base of block +function scs_block_center_height(type) = type[6]; //! Height of the center of the block +function scs_block_side_height(type) = type[7]; //! Height of the side of the block, this determines the minimum screw length +function scs_screw(type) = type[11]; //! Screw type +function scs_screw_separation_x(type) = type[8]; //! Screw separation in X direction +function scs_screw_separation_z(type) = type[9]; //! Screw separation in Z direction +function scs_bearing(type) = type[14]; //! Linear bearing used + + +sks_bearing_block_color = grey90; + +module scs_bearing_block(type) { //! Draw the specified SCS bearing block + vitamin(str("scs_bearing_block(", type[0], "): ", type[0], " bearing block")); + + T = type[1]; + h = type[2]; + E = type[3]; + W = type[4]; + assert(W == 2 * E, str("W or E wrong for scs_bearing_block", type[0])); + L = type[5]; + F = type[6]; + G = type[7]; + B = type[8]; + C = type[9]; + K = type[10]; + S1 = type[11]; + S2 = type[12]; + L1 = type[13]; + + module right_trapezoid(base, top, height, h = 0, center = true) {//! A right angled trapezoid with the 90° corner at the origin. 3D when ```h``` is nonzero, otherwise 2D + extrude_if(h, center = center) + polygon(points = [ [0,0], [base, 0], [top, height], [0, height] ]); + } + + boltHoleRadius = screw_clearance_radius(S1); + footHeight = min(0.75, (G - bearing_dia(scs_bearing(type)) - 1.5) / 2); // estimate, not specified on drawings + + color(sks_bearing_block_color) { + linear_extrude(L, center = true) { + bearingRadius = bearing_dia(scs_bearing(type)) / 2; + // center section with bearing hole + difference() { + union() { + translate([-(B - 2 * boltHoleRadius) / 2, -h + footHeight]) + square([B - 2 * boltHoleRadius, G - footHeight]); + for(m = [0, 1]) + mirror([m, 0, 0]) + translate([0 , G - h]) + right_trapezoid(bearingRadius, bearingRadius -F + G, F - G); + } + circle(r = bearingRadius); + } + // add the sides + for(m = [0, 1]) + mirror([m, 0, 0]) { + trapezoidX = boltHoleRadius - 0.5; // estimate, not specified on drawings + sideX = 2 * (K - boltHoleRadius - trapezoidX); + chamfer = 0.5; + assert(sideX > chamfer, "trapezoidX too large in scs_bearing_block"); + translate([B / 2 + boltHoleRadius, -h]) { + square([sideX - chamfer, G]); + translate([sideX, 0]) + rotate(90) + right_trapezoid(G - chamfer, G, chamfer); + translate([sideX, 0]) { + right_trapezoid(trapezoidX - footHeight, trapezoidX, footHeight); + translate([trapezoidX, footHeight]) + rotate(90) + right_trapezoid(T - footHeight, L1 - footHeight, trapezoidX); + } + } + translate([B / 2 - boltHoleRadius, -h]) + mirror([1, 0, 0]) + right_trapezoid(boltHoleRadius, boltHoleRadius + footHeight, footHeight); + } + } + // side blocks with bolt holes + for(x = [-B / 2, B / 2]) + translate([x, G / 2 - h, 0]) + rotate([90, 0, 0]) + linear_extrude(G, center = true) + difference() { + square([boltHoleRadius * 2, L], center = true); + for (y = [-C / 2, C / 2]) + translate([0, y]) + circle(r = boltHoleRadius); + } + } + not_on_bom() no_explode() + linear_bearing(scs_bearing(type)); +} + + +module scs_bearing_block_assembly(type, screw_length, screw_type) { //! Assembly with screws and nuts in place + + scs_bearing_block(type); + + G = scs_block_side_height(type); + h = scs_hole_offset(type); + + screw_type = screw_type ? screw_type : scs_screw(type); + screw_length = screw_length ? screw_length : screw_longer_than(G + 10); + washer_type = screw_washer(screw_type); + washer_thickness = washer_thickness(washer_type); + + screw_separation_x = scs_screw_separation_x(type); + screw_separation_z = scs_screw_separation_z(type); + + for(x = [-screw_separation_x, screw_separation_x], z = [-screw_separation_z, screw_separation_z]) + translate([x / 2, G - h, z / 2]) + rotate([-90, 0, 0]) { + screw(screw_type, screw_length); + translate_z(-screw_length + washer_thickness) + nut(screw_nut(screw_type)) + washer(washer_type); + } +} + diff --git a/vitamins/scs_bearing_blocks.scad b/vitamins/scs_bearing_blocks.scad new file mode 100644 index 0000000..ad01589 --- /dev/null +++ b/vitamins/scs_bearing_blocks.scad @@ -0,0 +1,45 @@ +// +// 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 . +// + +// +// SCS bearing blocks +// + +include +include +include + +// T h E W L F G B C K S1 S2 L1 LB +SCS6UU = ["SCS6UU", 6, 9, 15, 30, 25, 18, 15, 20, 15, 5, M4_cap_screw, 3.4, 8, LM6UU]; +SCS8UU = ["SCS8UU", 6, 11, 17, 34, 30, 22, 18, 24, 18, 5, M4_cap_screw, 3.4, 8, LM8UU]; +SCS10UU = ["SCS10UU", 8, 13, 20, 40, 35, 26, 21, 28, 21, 6, M5_cap_screw, 4.3, 12, LM10UU]; +SCS12UU = ["SCS12UU", 8, 15, 21, 42, 36, 28, 24, 30.5, 26, 5.75, M5_cap_screw, 4.3, 12, LM12UU]; +SCS16UU = ["SCS16UU", 9, 19, 25, 50, 44, 38.5, 32.5, 36, 34, 7, M5_cap_screw, 4.3, 12, LM16UU]; + +SCS8LUU = ["SCS8LUU", 6, 11, 17, 34, 58, 22, 18, 24, 42, 5, M4_cap_screw, 3.4, 8, LM8LUU]; +SCS10LUU = ["SCS10LUU", 8, 13, 20, 40, 68, 26, 21, 28, 45, 6, M5_cap_screw, 4.3, 12, LM10LUU]; +SCS12LUU = ["SCS12LUU", 8, 15, 21, 42, 70, 28, 24, 30.5, 50, 5.75, M5_cap_screw, 4.3, 12, LM12LUU]; +SCS16LUU = ["SCS16LUU", 9, 19, 25, 50, 85, 38.5, 32.5, 36, 60, 7, M5_cap_screw, 4.3, 12, LM16LUU]; + + +scs_bearing_blocks = [SCS6UU, SCS8UU, SCS10UU, SCS12UU, SCS16UU]; +scs_bearing_blocks_long = [SCS8LUU, SCS10LUU, SCS12LUU, SCS16LUU]; + +use + From e9ee88dfe94860fbb4b77cfbea544c5a92a97b04 Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Sun, 23 Feb 2020 21:41:47 +0000 Subject: [PATCH 2/7] Updates as per code review. --- tests/scs_bearing_blocks.scad | 8 +++-- vitamins/scs_bearing_block.scad | 52 ++++++++++++++++++++------------- 2 files changed, 36 insertions(+), 24 deletions(-) diff --git a/tests/scs_bearing_blocks.scad b/tests/scs_bearing_blocks.scad index 4433c42..093870e 100644 --- a/tests/scs_bearing_blocks.scad +++ b/tests/scs_bearing_blocks.scad @@ -23,13 +23,15 @@ include <../vitamins/scs_bearing_blocks.scad> module scs_bearing_blocks() layout([for(s = scs_bearing_blocks) 2 * scs_size(s)[0]]) { - scs_bearing_block_assembly(scs_bearing_blocks[$i]); + sheet_thickness = 5; + scs_bearing_block_assembly(scs_bearing_blocks[$i], sheet_thickness); if($i > 0) // skip $i==0, since no SCS6LUU long variant to match SCS6UU translate([0, 60]) - scs_bearing_block_assembly(scs_bearing_blocks_long[$i - 1]); + scs_bearing_block_assembly(scs_bearing_blocks_long[$i - 1], sheet_thickness); } if($preview) - scs_bearing_blocks(); + let($show_threads = true) + scs_bearing_blocks(); diff --git a/vitamins/scs_bearing_block.scad b/vitamins/scs_bearing_block.scad index e225b83..ff65792 100644 --- a/vitamins/scs_bearing_block.scad +++ b/vitamins/scs_bearing_block.scad @@ -23,8 +23,10 @@ include -include -include +use +use +use +use function scs_size(type) = [type[4],type[6],type[5]]; //! Size of scs bracket bounding block function scs_hole_offset(type) = type[2]; //! Offset of bearing hole from base of block @@ -119,29 +121,37 @@ module scs_bearing_block(type) { //! Draw the specified SCS bearing block linear_bearing(scs_bearing(type)); } - -module scs_bearing_block_assembly(type, screw_length, screw_type) { //! Assembly with screws and nuts in place - - scs_bearing_block(type); - +module scs_bearing_block_hole_positions(type) { + screw_separation_x = scs_screw_separation_x(type); + screw_separation_z = scs_screw_separation_z(type); G = scs_block_side_height(type); h = scs_hole_offset(type); - screw_type = screw_type ? screw_type : scs_screw(type); - screw_length = screw_length ? screw_length : screw_longer_than(G + 10); - washer_type = screw_washer(screw_type); - washer_thickness = washer_thickness(washer_type); - - screw_separation_x = scs_screw_separation_x(type); - screw_separation_z = scs_screw_separation_z(type); - for(x = [-screw_separation_x, screw_separation_x], z = [-screw_separation_z, screw_separation_z]) translate([x / 2, G - h, z / 2]) - rotate([-90, 0, 0]) { - screw(screw_type, screw_length); - translate_z(-screw_length + washer_thickness) - nut(screw_nut(screw_type)) - washer(washer_type); - } + rotate([-90, 0, 0]) + children(); +} + +module scs_bearing_block_assembly(type, sheet_thickness, screw_type, nut_type) { //! Assembly with screws and nuts in place + + scs_bearing_block(type); + + screw_type = is_undef(screw_type) ? scs_screw(type) : screw_type; + nut_type = is_undef(nut_type) ? screw_nut(screw_type) : nut_type; + washer_type = nut_washer(nut_type); + washer_thickness = washer_type ? washer_thickness(washer_type) : 0; + + G = scs_block_side_height(type); + nut_offset = G + sheet_thickness + nut_thickness(nut_type) + washer_thickness; + screw_length = screw_longer_than(nut_offset); + + scs_bearing_block_hole_positions(type) { + screw(screw_type, screw_length); + translate_z(-nut_offset) + nut(nut_type) + if (washer_type) + washer(washer_type); + } } From 581c2f8a968bf571641462e91ccfd9bbd61513d0 Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Sun, 23 Feb 2020 21:49:35 +0000 Subject: [PATCH 3/7] Used accessor functions internally. --- vitamins/scs_bearing_block.scad | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/vitamins/scs_bearing_block.scad b/vitamins/scs_bearing_block.scad index ff65792..95a3888 100644 --- a/vitamins/scs_bearing_block.scad +++ b/vitamins/scs_bearing_block.scad @@ -44,17 +44,17 @@ module scs_bearing_block(type) { //! Draw the specified SCS bearing block vitamin(str("scs_bearing_block(", type[0], "): ", type[0], " bearing block")); T = type[1]; - h = type[2]; + h = scs_hole_offset(type); E = type[3]; - W = type[4]; + W = scs_size(type)[0]; assert(W == 2 * E, str("W or E wrong for scs_bearing_block", type[0])); - L = type[5]; - F = type[6]; - G = type[7]; - B = type[8]; - C = type[9]; + L = scs_size(type)[2]; + F = scs_block_center_height(type); + G = scs_block_side_height(type); + B = scs_screw_separation_x(type); + C = scs_screw_separation_z(type); K = type[10]; - S1 = type[11]; + S1 = scs_screw(type); S2 = type[12]; L1 = type[13]; From d066648a76a6f5f53e8e52d53b744be1490a278a Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Sun, 23 Feb 2020 22:34:59 +0000 Subject: [PATCH 4/7] Renamed sheet_thickness to part_thickness. --- tests/scs_bearing_blocks.scad | 6 +++--- vitamins/scs_bearing_block.scad | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/scs_bearing_blocks.scad b/tests/scs_bearing_blocks.scad index 093870e..78d6500 100644 --- a/tests/scs_bearing_blocks.scad +++ b/tests/scs_bearing_blocks.scad @@ -23,12 +23,12 @@ include <../vitamins/scs_bearing_blocks.scad> module scs_bearing_blocks() layout([for(s = scs_bearing_blocks) 2 * scs_size(s)[0]]) { - sheet_thickness = 5; - scs_bearing_block_assembly(scs_bearing_blocks[$i], sheet_thickness); + part_thickness = 5; + scs_bearing_block_assembly(scs_bearing_blocks[$i], part_thickness); if($i > 0) // skip $i==0, since no SCS6LUU long variant to match SCS6UU translate([0, 60]) - scs_bearing_block_assembly(scs_bearing_blocks_long[$i - 1], sheet_thickness); + scs_bearing_block_assembly(scs_bearing_blocks_long[$i - 1], part_thickness); } if($preview) diff --git a/vitamins/scs_bearing_block.scad b/vitamins/scs_bearing_block.scad index 95a3888..81c3765 100644 --- a/vitamins/scs_bearing_block.scad +++ b/vitamins/scs_bearing_block.scad @@ -133,7 +133,7 @@ module scs_bearing_block_hole_positions(type) { children(); } -module scs_bearing_block_assembly(type, sheet_thickness, screw_type, nut_type) { //! Assembly with screws and nuts in place +module scs_bearing_block_assembly(type, part_thickness, screw_type, nut_type) { //! Assembly with screws and nuts in place scs_bearing_block(type); @@ -143,7 +143,7 @@ module scs_bearing_block_assembly(type, sheet_thickness, screw_type, nut_type) { washer_thickness = washer_type ? washer_thickness(washer_type) : 0; G = scs_block_side_height(type); - nut_offset = G + sheet_thickness + nut_thickness(nut_type) + washer_thickness; + nut_offset = G + part_thickness + nut_thickness(nut_type) + washer_thickness; screw_length = screw_longer_than(nut_offset); scs_bearing_block_hole_positions(type) { From e40b10f5a09b816b17cdd9b3c3f0ce2dbe75ae9d Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Sun, 23 Feb 2020 23:08:34 +0000 Subject: [PATCH 5/7] Added comment. --- vitamins/scs_bearing_block.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vitamins/scs_bearing_block.scad b/vitamins/scs_bearing_block.scad index 81c3765..bcf3b38 100644 --- a/vitamins/scs_bearing_block.scad +++ b/vitamins/scs_bearing_block.scad @@ -121,7 +121,7 @@ module scs_bearing_block(type) { //! Draw the specified SCS bearing block linear_bearing(scs_bearing(type)); } -module scs_bearing_block_hole_positions(type) { +module scs_bearing_block_hole_positions(type) { //! Place children at hole positions screw_separation_x = scs_screw_separation_x(type); screw_separation_z = scs_screw_separation_z(type); G = scs_block_side_height(type); From 9d6727d37109697949236d74f4fb266333753c90 Mon Sep 17 00:00:00 2001 From: Chris Palmer Date: Sun, 23 Feb 2020 23:57:18 +0000 Subject: [PATCH 6/7] Added images and readme --- readme.md | 92 +++++++++++++++++++++++++------ tests/png/scs_bearing_blocks.png | Bin 0 -> 68719 bytes tests/scs_bearing_blocks.scad | 6 +- vitamins/scs_bearing_block.scad | 3 +- vitamins/scs_bearing_blocks.scad | 3 +- 5 files changed, 79 insertions(+), 25 deletions(-) create mode 100644 tests/png/scs_bearing_blocks.png diff --git a/readme.md b/readme.md index a9e3221..3cedee0 100644 --- a/readme.md +++ b/readme.md @@ -31,23 +31,23 @@ See [usage](docs/usage.md) for requirements, installation instructions and a usa Extrusions Rockers Foot Rounded_cylinder Fans Rod Handle Rounded_polygon Fuseholder Screws Pcb_mount Sector - Geared_steppers Sealing_strip Psu_shroud Sweep - Green_terminals Sheets Ribbon_clamp Thread - Hot_ends Sk_brackets Screw_knob Tube - Hygrometer Spades Socket_box - Iecs Spools Ssr_shroud - Inserts Springs Strap_handle - Jack Ssrs - Ldrs Stepper_motors - Leadnuts Toggles - Leds Transformers - Light_strips Tubings - Linear_bearings Variacs - Mains_sockets Veroboard - Meter Washers - Microswitches Wire - Microview Zipties - Modules + Geared_steppers Scs_bearing_blocks Psu_shroud Sweep + Green_terminals Sealing_strip Ribbon_clamp Thread + Hot_ends Sheets Screw_knob Tube + Hygrometer Sk_brackets Socket_box + 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 --- @@ -2408,6 +2408,64 @@ Machine screws and wood screws with various head styles. | 1 | ```screw(No6_screw, 30)``` | Screw No6 pan wood x 30mm | +Top + +--- + +## Scs_bearing_blocks +[vitamins/scs_bearing_blocks.scad](vitamins/scs_bearing_blocks.scad) Object definitions. + +[vitamins/scs_bearing_block.scad](vitamins/scs_bearing_block.scad) Implementation. + +[tests/scs_bearing_blocks.scad](tests/scs_bearing_blocks.scad) Code for this example. + +### Properties +| Function | Description | +|:--- |:--- | +| ```scs_bearing(type)``` | Linear bearing used | +| ```scs_block_center_height(type)``` | Height of the center of the block | +| ```scs_block_side_height(type)``` | Height of the side of the block, this determines the minimum screw length | +| ```scs_hole_offset(type)``` | Offset of bearing hole from base of block | +| ```scs_screw(type)``` | Screw type | +| ```scs_screw_separation_x(type)``` | Screw separation in X direction | +| ```scs_screw_separation_z(type)``` | Screw separation in Z direction | + +### Functions +| Function | Description | +|:--- |:--- | +| ```scs_size(type)``` | Size of scs bracket bounding block | + +### Modules +| Module | Description | +|:--- |:--- | +| ```scs_bearing_block(type)``` | Draw the specified SCS bearing block | +| ```scs_bearing_block_assembly(type, part_thickness, screw_type, nut_type)``` | Assembly with screws and nuts in place | +| ```scs_bearing_block_hole_positions(type)``` | Place children at hole positions | + +![scs_bearing_blocks](tests/png/scs_bearing_blocks.png) + +### Vitamins +| Qty | Module call | BOM entry | +| ---:|:--- |:---| +| 12 | ```nut(M4_nut)``` | Nut M4 x 3.2mm | +| 24 | ```nut(M5_nut)``` | Nut M5 x 4mm | +| 1 | ```scs_bearing_block(SCS10LUU)``` | SCS10LUU bearing block | +| 1 | ```scs_bearing_block(SCS10UU)``` | SCS10UU bearing block | +| 1 | ```scs_bearing_block(SCS12LUU)``` | SCS12LUU bearing block | +| 1 | ```scs_bearing_block(SCS12UU)``` | SCS12UU bearing block | +| 1 | ```scs_bearing_block(SCS16LUU)``` | SCS16LUU bearing block | +| 1 | ```scs_bearing_block(SCS16UU)``` | SCS16UU bearing block | +| 1 | ```scs_bearing_block(SCS6UU)``` | SCS6UU bearing block | +| 1 | ```scs_bearing_block(SCS8LUU)``` | SCS8LUU bearing block | +| 1 | ```scs_bearing_block(SCS8UU)``` | SCS8UU bearing block | +| 4 | ```screw(M4_cap_screw, 25)``` | Screw M4 cap x 25mm | +| 8 | ```screw(M4_cap_screw, 30)``` | Screw M4 cap x 30mm | +| 16 | ```screw(M5_cap_screw, 35)``` | Screw M5 cap x 35mm | +| 8 | ```screw(M5_cap_screw, 45)``` | Screw M5 cap x 45mm | +| 12 | ```washer(M4_washer)``` | Washer M4 x 9mm x 0.8mm | +| 24 | ```washer(M5_washer)``` | Washer M5 x 10mm x 1mm | + + Top --- diff --git a/tests/png/scs_bearing_blocks.png b/tests/png/scs_bearing_blocks.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5342da752f129099e90224634770d8630d5299 GIT binary patch literal 68719 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 literal 0 HcmV?d00001 diff --git a/tests/scs_bearing_blocks.scad b/tests/scs_bearing_blocks.scad index 78d6500..deb4864 100644 --- a/tests/scs_bearing_blocks.scad +++ b/tests/scs_bearing_blocks.scad @@ -1,5 +1,5 @@ // -// NopSCADlib Copyright Chris Palmer 2018 +// NopSCADlib Copyright Chris Palmer 2020 // nop.head@gmail.com // hydraraptor.blogspot.com // @@ -32,6 +32,4 @@ module scs_bearing_blocks() } if($preview) - let($show_threads = true) - scs_bearing_blocks(); - + scs_bearing_blocks(); diff --git a/vitamins/scs_bearing_block.scad b/vitamins/scs_bearing_block.scad index bcf3b38..0f70f47 100644 --- a/vitamins/scs_bearing_block.scad +++ b/vitamins/scs_bearing_block.scad @@ -1,5 +1,5 @@ // -// NopSCADlib Copyright Chris Palmer 2018 +// NopSCADlib Copyright Chris Palmer 2020 // nop.head@gmail.com // hydraraptor.blogspot.com // @@ -154,4 +154,3 @@ module scs_bearing_block_assembly(type, part_thickness, screw_type, nut_type) { washer(washer_type); } } - diff --git a/vitamins/scs_bearing_blocks.scad b/vitamins/scs_bearing_blocks.scad index ad01589..72d22ad 100644 --- a/vitamins/scs_bearing_blocks.scad +++ b/vitamins/scs_bearing_blocks.scad @@ -1,5 +1,5 @@ // -// NopSCADlib Copyright Chris Palmer 2018 +// NopSCADlib Copyright Chris Palmer 2020 // nop.head@gmail.com // hydraraptor.blogspot.com // @@ -42,4 +42,3 @@ scs_bearing_blocks = [SCS6UU, SCS8UU, SCS10UU, SCS12UU, SCS16UU]; scs_bearing_blocks_long = [SCS8LUU, SCS10LUU, SCS12LUU, SCS16LUU]; use - From 8bad05e7214ae3efbd7eef92ca696b796465a722 Mon Sep 17 00:00:00 2001 From: Chris Palmer Date: Mon, 24 Feb 2020 00:00:32 +0000 Subject: [PATCH 7/7] Added to lib.scad --- lib.scad | 1 + vitamins/scs_bearing_block.scad | 1 + 2 files changed, 2 insertions(+) diff --git a/lib.scad b/lib.scad index 6be53f9..0cdbd64 100644 --- a/lib.scad +++ b/lib.scad @@ -64,6 +64,7 @@ include include include include +include use use diff --git a/vitamins/scs_bearing_block.scad b/vitamins/scs_bearing_block.scad index 0f70f47..e9e4d51 100644 --- a/vitamins/scs_bearing_block.scad +++ b/vitamins/scs_bearing_block.scad @@ -148,6 +148,7 @@ module scs_bearing_block_assembly(type, part_thickness, screw_type, nut_type) { scs_bearing_block_hole_positions(type) { screw(screw_type, screw_length); + translate_z(-nut_offset) nut(nut_type) if (washer_type)