From f7cbb44438105f0620a3886b62e12b27ee0f1561 Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Thu, 30 Jun 2022 14:04:15 +0100 Subject: [PATCH] Moved screws, nuts, washers and rails test arrays into test files. --- core.scad | 2 +- tests/nuts.scad | 3 +++ tests/rails.scad | 7 +++++++ tests/washers.scad | 3 +++ utils/screws.scad | 42 ++++++++++++++++++++++++++++++++++++++++++ vitamins/nuts.scad | 2 -- vitamins/rails.scad | 9 --------- vitamins/screws.scad | 22 ---------------------- vitamins/washers.scad | 2 -- 9 files changed, 56 insertions(+), 36 deletions(-) create mode 100644 utils/screws.scad diff --git a/core.scad b/core.scad index a8f0223a..f232c98c 100644 --- a/core.scad +++ b/core.scad @@ -24,4 +24,4 @@ include // // Fasteners used by a lot of other vitamins // -include +include diff --git a/tests/nuts.scad b/tests/nuts.scad index 0db380af..8b8b36b4 100644 --- a/tests/nuts.scad +++ b/tests/nuts.scad @@ -19,6 +19,9 @@ include <../core.scad> use <../utils/layout.scad> +nuts = [M2_nut, M2p5_nut, M3_nut, M4_nut, M5_nut, M6_nut, M8_nut]; + + module nuts() { layout([for(n = nuts) 2 * nut_radius(n)], 5) let(n = nuts[$i]) { for(nyloc = [false, true]) diff --git a/tests/rails.scad b/tests/rails.scad index 3303ccec..85359c2c 100644 --- a/tests/rails.scad +++ b/tests/rails.scad @@ -26,6 +26,13 @@ length = 200; sheet = 3; pos = 1; //[-1 : 0.1 : 1] +rails = [MGN5, MGN7, MGN9, MGN12, MGN15, SSR15, HGH15CA, HGH20CA]; +carriages = [MGN5C_carriage, MGN7C_carriage, MGN7H_carriage, MGN9C_carriage, MGN9H_carriage, + MGN12C_carriage, MGN12H_carriage, MGN12H_carriage, MGN15C_carriage, SSR15_carriage, + HGH15CA_carriage, HGH20CA_carriage + ]; + + function rail_carriages(rail) = [for(c = carriages) if(carriage_rail(c) == rail) c]; module rails() diff --git a/tests/washers.scad b/tests/washers.scad index ec7ce4d2..05b2bdb8 100644 --- a/tests/washers.scad +++ b/tests/washers.scad @@ -21,6 +21,9 @@ use <../utils/layout.scad> include <../vitamins/washers.scad> +washers = [M2_washer, M2p5_washer, M3_washer, M3p5_washer, M4_washer, M5_washer, M6_washer, M8_washer, M3_rubber_washer]; + + function penny_diameter(w) = let(p = penny_washer(w)) washer_diameter(p ? p : w); module washers() diff --git a/utils/screws.scad b/utils/screws.scad new file mode 100644 index 00000000..015fad80 --- /dev/null +++ b/utils/screws.scad @@ -0,0 +1,42 @@ +// +// 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 <../vitamins/screws.scad> + +screw_lists = [ +[ M2_cap_screw, M2p5_cap_screw, M3_cap_screw, M4_cap_screw, M5_cap_screw, M6_cap_screw, M8_cap_screw], +[ 0, 0, M3_low_cap_screw], +[ M2_cs_cap_screw, 0, M3_cs_cap_screw, M4_cs_cap_screw, M5_cs_cap_screw, M6_cs_cap_screw, M8_cs_cap_screw], +[ M2_dome_screw, M2p5_dome_screw,M3_dome_screw, M4_dome_screw, M5_dome_screw], +[ 0, 0, M3_hex_screw, M4_hex_screw, M5_hex_screw, M6_hex_screw, M8_hex_screw], +[ 0, M2p5_pan_screw, M3_pan_screw, M4_pan_screw, M5_pan_screw, M6_pan_screw, No632_pan_screw], +[ No2_screw, 0, No4_screw, No6_screw, No8_screw, No6_cs_screw], +[ 0, 0, M3_grub_screw, M4_grub_screw, M5_grub_screw, M6_grub_screw] +]; + +screws = [for(list = screw_lists) each list]; + +function find_screw(type, size, i = 0) = + i >= len(screws) ? undef + : screw_head_type(screws[i]) == type && screw_radius(screws[i]) == size / 2 ? screws[i] + : find_screw(type, size, i + 1); + +function alternate_screw(type, screw) = + let(alt_screw = find_screw(type, screw_radius(screw) * 2)) + alt_screw ? alt_screw :screw; diff --git a/vitamins/nuts.scad b/vitamins/nuts.scad index 1fbc8634..602ef87c 100644 --- a/vitamins/nuts.scad +++ b/vitamins/nuts.scad @@ -75,6 +75,4 @@ M5nS_thin_nut = ["M5nS_thin_nut", 5, 8, 2.7]; M6nS_thin_nut = ["M6nS_thin_nut", 6, 10, 3.2]; M8nS_thin_nut = ["M8nS_thin_nut", 8, 13, 4]; -nuts = [M2_nut, M2p5_nut, M3_nut, M4_nut, M5_nut, M6_nut, M8_nut]; - use diff --git a/vitamins/rails.scad b/vitamins/rails.scad index 1e4592ac..f1744306 100644 --- a/vitamins/rails.scad +++ b/vitamins/rails.scad @@ -16,8 +16,6 @@ // You should have received a copy of the GNU General Public License along with NopSCADlib. // If not, see . // -include <../core.scad> - // // Rails // @@ -46,11 +44,4 @@ HGH15CA_carriage= [ "HGH15CA", 61.4, 39.4, 34, 28, 4, 26, 26, M4_cap_screw, HG HGH20CA_carriage= [ "HGH20CA", 77.5, 50.5, 44, 30, 4.6, 35, 32, M5_cap_screw, HGH20CA ]; SSR15_carriage = [ "SSR15", 40.3, 23.3, 34, 24, 4.5, 0, 26, M4_cap_screw, SSR15 ]; -rails = [MGN5, MGN7, MGN9, MGN12, MGN15, SSR15, HGH15CA, HGH20CA]; - -carriages = [MGN5C_carriage, MGN7C_carriage, MGN7H_carriage, MGN9C_carriage, MGN9H_carriage, - MGN12C_carriage, MGN12H_carriage, MGN12H_carriage, MGN15C_carriage, SSR15_carriage, - HGH15CA_carriage, HGH20CA_carriage - ]; - use diff --git a/vitamins/screws.scad b/vitamins/screws.scad index ab11d23a..c94aec0e 100644 --- a/vitamins/screws.scad +++ b/vitamins/screws.scad @@ -114,26 +114,4 @@ No6_screw = ["No6", "No6 pan wood", hs_pan, 3.5, 6.7, 2.2, 0, 0 No6_cs_screw = ["No6_cs", "No6 cs wood", hs_cs, 3.5, 7.0, 0, 0, 0, 0, M4_washer, false, No6_pilot_radius, No6_clearance_radius]; No8_screw = ["No8", "No8 pan wood", hs_pan, 4.2, 8.2, 3.05, 0, 0, 0 , M5_washer, false, No8_pilot_radius, No8_clearance_radius]; -screw_lists = [ -[ M2_cap_screw, M2p5_cap_screw, M3_cap_screw, M4_cap_screw, M5_cap_screw, M6_cap_screw, M8_cap_screw], -[ 0, 0, M3_low_cap_screw], -[ M2_cs_cap_screw, 0, M3_cs_cap_screw, M4_cs_cap_screw, M5_cs_cap_screw, M6_cs_cap_screw, M8_cs_cap_screw], -[ M2_dome_screw, M2p5_dome_screw,M3_dome_screw, M4_dome_screw, M5_dome_screw], -[ 0, 0, M3_hex_screw, M4_hex_screw, M5_hex_screw, M6_hex_screw, M8_hex_screw], -[ 0, M2p5_pan_screw, M3_pan_screw, M4_pan_screw, M5_pan_screw, M6_pan_screw, No632_pan_screw], -[ No2_screw, 0, No4_screw, No6_screw, No8_screw, No6_cs_screw], -[ 0, 0, M3_grub_screw, M4_grub_screw, M5_grub_screw, M6_grub_screw] -]; - use - -screws = [for(list = screw_lists) each list]; - -function find_screw(type, size, i = 0) = - i >= len(screws) ? undef - : screw_head_type(screws[i]) == type && screw_radius(screws[i]) == size / 2 ? screws[i] - : find_screw(type, size, i + 1); - -function alternate_screw(type, screw) = - let(alt_screw = find_screw(type, screw_radius(screw) * 2)) - alt_screw ? alt_screw :screw; diff --git a/vitamins/washers.scad b/vitamins/washers.scad index eae88d14..62189547 100644 --- a/vitamins/washers.scad +++ b/vitamins/washers.scad @@ -48,6 +48,4 @@ toggle_washer = ["toggle", 6.1,12, 0.6, false, 10, 0, 0, undef]; M3_rubber_washer= ["M3_rubber",3, 10, 1.5, true, 5.8, M3_penny_washer]; -washers = [M2_washer, M2p5_washer, M3_washer, M3p5_washer, M4_washer, M5_washer, M6_washer, M8_washer, M3_rubber_washer]; - use