From 8a740a4d7fcb7d8fbfddc07d16c44fe9870c2984 Mon Sep 17 00:00:00 2001 From: indazoo Date: Thu, 25 Jul 2019 07:19:10 +0200 Subject: [PATCH 1/3] Added constants.scad for compatibility with older scripts. New naming scheme for MCAD constants. --- constants.scad | 13 +++++++++++++ curves.scad | 2 +- demos/constants_demo.scad | 20 ++++++++++---------- fasteners/iso4017.scad | 6 +++--- fasteners/threads.scad | 8 +++++--- gears/rack_and_pinion.scad | 14 +++++++------- general/constants.scad | 22 +++++++++++++--------- general/math.scad | 2 +- general/utilities.scad | 2 +- units/default.scad | 4 +++- units/us.scad | 4 ++-- 11 files changed, 59 insertions(+), 38 deletions(-) create mode 100644 constants.scad diff --git a/constants.scad b/constants.scad new file mode 100644 index 00000000..939239ff --- /dev/null +++ b/constants.scad @@ -0,0 +1,13 @@ +include ; + +echo("This file (MCAD/constants.scad) is depreciated and exists only to ensure compatibility with older scripts. Could you please update your script to include MCAD/general/constants.scad? At some point of time, the file MCAD/constants.scad will be deleted. Further more, we have a new naming scheme for MCAD constants. They begin with \"mcad_const_xyzName\" Thank you!"); + +// MIT license +// Author: Elmo Mäntynen + +TAU = 6.2831853071; //2*PI, see http://tauday.com/ +PI = TAU/2; + +// translates a imperial measurement in inches to meters +mm_per_inch = 25.4; + diff --git a/curves.scad b/curves.scad index 0e20005f..cece884f 100644 --- a/curves.scad +++ b/curves.scad @@ -13,7 +13,7 @@ z(t) = b*t */ -function b(pitch) = pitch/(const_tau); +function b(pitch) = pitch/(mcad_const_tau); function t(pitch, z) = z/b(pitch); function helix_curve(pitch, radius, z) = diff --git a/demos/constants_demo.scad b/demos/constants_demo.scad index b581bb2d..a9ed2793 100644 --- a/demos/constants_demo.scad +++ b/demos/constants_demo.scad @@ -1,12 +1,12 @@ include ; -echo(const_e = const_e); -echo(const_pi = const_pi); -echo(const_tau = const_tau); -echo(const_phi = const_phi); -echo(const_sqrt2 = const_sqrt2); -echo(const_sqrt2 * const_sqrt2); -echo(const_sqrt3 = const_sqrt3); -echo(const_sqrt3 * const_sqrt3); -echo(const_sqrt5 = const_sqrt5); -echo(const_sqrt5 * const_sqrt5); +echo(mcad_const_e = mcad_const_e); +echo(mcad_const_pi = mcad_const_pi); +echo(mcad_const_tau = mcad_const_tau); +echo(mcad_const_phi = mcad_const_phi); +echo(mcad_const_sqrt2 = mcad_const_sqrt2); +echo(mcad_const_sqrt2 * mcad_const_sqrt2); +echo(mcad_const_sqrt3 = mcad_const_sqrt3); +echo(mcad_const_sqrt3 * mcad_const_sqrt3); +echo(mcad_const_sqrt5 = mcad_const_sqrt5); +echo(mcad_const_sqrt5 * mcad_const_sqrt5); diff --git a/fasteners/iso4017.scad b/fasteners/iso4017.scad index 8873e9a1..dd2233b3 100644 --- a/fasteners/iso4017.scad +++ b/fasteners/iso4017.scad @@ -14,9 +14,9 @@ $fn = 36; module iso_hexagon_head_screw(diameter, length, grade = "A", tolerance = false) { dimensions = iso_hexagon_head_screw_dimensions(diameter); - hex_side_nom = dimensions[18] / const_sqrt3; - hex_side_grade_a = dimensions[19] / const_sqrt3; - hex_side_grade_b = dimensions[20] / const_sqrt3; + hex_side_nom = dimensions[18] / mcad_const_sqrt3; + hex_side_grade_a = dimensions[19] / mcad_const_sqrt3; + hex_side_grade_b = dimensions[20] / mcad_const_sqrt3; echo(dimensions); echo(dimensions[8] / 2, hex_side_nom); diff --git a/fasteners/threads.scad b/fasteners/threads.scad index 29527f84..76adc8c4 100644 --- a/fasteners/threads.scad +++ b/fasteners/threads.scad @@ -10,6 +10,8 @@ * Version 1.1. 2012-09-07 Corrected to right-hand threads! */ +include + // Examples: test_threads (); @@ -234,9 +236,9 @@ module english_thread(diameter=0.25, threads_per_inch=20, length=1, internal=false, n_starts=1) { // Convert to mm. - mm_diameter = diameter*25.4; - mm_pitch = (1.0/threads_per_inch)*25.4; - mm_length = length*25.4; + mm_diameter = diameter*mcad_const_mm_per_inch; // diameter*25.4 + mm_pitch = (1.0/threads_per_inch)*mcad_const_mm_per_inch; + mm_length = length*mcad_const_mm_per_inch; echo(str("mm_diameter: ", mm_diameter)); echo(str("mm_pitch: ", mm_pitch)); diff --git a/gears/rack_and_pinion.scad b/gears/rack_and_pinion.scad index 8ed01a64..067ccd90 100644 --- a/gears/rack_and_pinion.scad +++ b/gears/rack_and_pinion.scad @@ -40,8 +40,8 @@ module rack(cp, N, width, thickness){ // width = width of rack // thickness = thickness of support under teeth (0 for no support) - a = 1.0*cp/const_pi; // addendum (also known as "module") - d = 1.1*cp/const_pi; // dedendum (this is set by a standard) + a = 1.0*cp/mcad_const_pi; // addendum (also known as "module") + d = 1.1*cp/mcad_const_pi; // dedendum (this is set by a standard) height=(d+a); // find the tangent of pressure angle once @@ -86,14 +86,14 @@ module pinion (cp, N, width, shaft_diameter, backlash=0){ cp = (cp!=false?cp:180/diametral_pitch); // Pitch diameter: Diameter of pitch circle. - pitch_diameter = N * cp / const_pi; + pitch_diameter = N * cp / mcad_const_pi; pitch_radius = pitch_diameter/2; echo ("Teeth:", N, " Pitch radius:", pitch_radius); // Base Circle base_radius = pitch_radius*cos(20); // Addendum: Radial distance from pitch circle to outside circle. - addendum = cp/const_pi; + addendum = cp/mcad_const_pi; //Outer Circle outer_radius = pitch_radius+addendum; @@ -104,7 +104,7 @@ module pinion (cp, N, width, shaft_diameter, backlash=0){ // Root diameter: Diameter of bottom of tooth spaces. root_radius = pitch_radius-dedendum; - backlash_angle = backlash / pitch_radius * 180 / const_pi; + backlash_angle = backlash / pitch_radius * 180 / mcad_const_pi; half_thick_angle = (360 / N - backlash_angle) / 4; difference(){ @@ -168,7 +168,7 @@ module involute_pinion_tooth ( pitch_radius, root_radius, base_radius, outer_rad // Finds the angle of the involute about the base radius at the given distance (radius) from it's center. //source: http://www.mathhelpforum.com/math-help/geometry/136011-circle-involute-solving-y-any-given-x.html -function involute_intersect_angle (base_radius, radius) = sqrt (pow (radius/base_radius, 2) - 1) * 180 / const_pi; +function involute_intersect_angle (base_radius, radius) = sqrt (pow (radius/base_radius, 2) - 1) * 180 / mcad_const_pi; // Calculate the involute position for a given base radius and involute angle. @@ -178,7 +178,7 @@ function mirror_point(coord)=[coord[0],-coord[1]]; function rotate_point(rotate,coord)=[cos(rotate)*coord[0]+sin(rotate)*coord[1],cos(rotate)*coord[1]-sin(rotate)*coord[0]]; -function involute (base_radius, involute_angle)=[base_radius*(cos(involute_angle)+involute_angle*const_pi/180*sin(involute_angle)),base_radius*(sin(involute_angle)-involute_angle*const_pi/180*cos(involute_angle))]; +function involute (base_radius, involute_angle)=[base_radius*(cos(involute_angle)+involute_angle*mcad_const_pi/180*sin(involute_angle)),base_radius*(sin(involute_angle)-involute_angle*mcad_const_pi/180*cos(involute_angle))]; diff --git a/general/constants.scad b/general/constants.scad index cb053d2a..2a438cff 100644 --- a/general/constants.scad +++ b/general/constants.scad @@ -1,21 +1,25 @@ + // MIT license // Author: Elmo Mäntynen // http://oeis.org/A001113 -const_e = 2.71828182845904523536028747135266249775724709369995; +mcad_const_e = 2.71828182845904523536028747135266249775724709369995; // http://oeis.org/A000796 -const_pi = 3.14159265358979323846264338327950288419716939937510; +mcad_const_pi = 3.14159265358979323846264338327950288419716939937510; // -const_pi_div_180 = 0.01745329251994329576923690768489; +mcad_const_pi_div_180 = 0.01745329251994329576923690768489; // -const_180_div_pi = 57.295779513082320876798154814105; +mcad_const_180_div_pi = 57.295779513082320876798154814105; // see http://tauday.com/ -const_tau = 2.0 * const_pi; +mcad_const_tau = 2.0 * mcad_const_pi; // http://oeis.org/A001622 -const_phi = 1.61803398874989484820458683436563811772030917980576; +mcad_const_phi = 1.61803398874989484820458683436563811772030917980576; // http://oeis.org/A002193 -const_sqrt2 = 1.41421356237309504880168872420969807856967187537694; +mcad_const_sqrt2 = 1.41421356237309504880168872420969807856967187537694; // http://oeis.org/A002194 -const_sqrt3 = 1.73205080756887729352744634150587236694280525381038; +mcad_const_sqrt3 = 1.73205080756887729352744634150587236694280525381038; // http://oeis.org/A002163 -const_sqrt5 = 2.23606797749978969640917366873127623544061835961152; +mcad_const_sqrt5 = 2.23606797749978969640917366873127623544061835961152; + +// translates a imperial measurement in inches to meters +mcad_const_mm_per_inch = 25.4; diff --git a/general/math.scad b/general/math.scad index 4dea9b0b..85fd3cf0 100644 --- a/general/math.scad +++ b/general/math.scad @@ -2,7 +2,7 @@ include -function deg(angle) = 360*angle/const_tau; +function deg(angle) = 360*angle/mcad_const_tau; // transformations.scad // License: GNU LGPL 2.1 or later. diff --git a/general/utilities.scad b/general/utilities.scad index 897151c7..8031682d 100644 --- a/general/utilities.scad +++ b/general/utilities.scad @@ -56,7 +56,7 @@ function rotate_2dvector (rotate, coord) = /********************** Circel ***************************/ -function circel_area(r) = const_pi * r * r; +function circel_area(r) = mcad_const_pi * r * r; function circel_radius3Points(a,b,c) = (distance2D(a,b) * distance2D(b,c) * distance2D(c,a)) / (4 * triangle_area3Points(a,b,c)); diff --git a/units/default.scad b/units/default.scad index 91c03af7..b3f0acb0 100644 --- a/units/default.scad +++ b/units/default.scad @@ -1,5 +1,7 @@ +include + // Default units are mm. length_mm = 1; // Default units are inch. -// length_mm = 1/25.4 +// length_mm = 1/mcad_const_mm_per_inch // 1/25.4 diff --git a/units/us.scad b/units/us.scad index 586a7af5..e3b1eb84 100644 --- a/units/us.scad +++ b/units/us.scad @@ -30,7 +30,7 @@ */ include - +include /* * Conversion to metric is defined by Roberts, R.W. (February 3, 1975). * Federal Register republished in Barbrow, L.E. and Judson, L. V. (1976) @@ -38,7 +38,7 @@ include * Special Publication 447. p. 36 * http://physics.nist.gov/Pubs/SP447/app9.pdf */ -length_inch = 25.4 * length_mm; +length_inch = mcad_const_mm_per_inch * length_mm; function length_inch(quantity) = quantity * length_inch; length_in = length_inch; From 0df1e5ecd164e7eda5c416957bfb25b23f02b949 Mon Sep 17 00:00:00 2001 From: indazoo Date: Thu, 25 Jul 2019 07:26:24 +0200 Subject: [PATCH 2/3] little text beautification --- constants.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/constants.scad b/constants.scad index 939239ff..ad5a1055 100644 --- a/constants.scad +++ b/constants.scad @@ -1,6 +1,6 @@ include ; -echo("This file (MCAD/constants.scad) is depreciated and exists only to ensure compatibility with older scripts. Could you please update your script to include MCAD/general/constants.scad? At some point of time, the file MCAD/constants.scad will be deleted. Further more, we have a new naming scheme for MCAD constants. They begin with \"mcad_const_xyzName\" Thank you!"); +echo("This file (MCAD/constants.scad) is depreciated and exists only to ensure compatibility with older scripts. Could you please update your script to include MCAD/general/constants.scad? At some point of time, the file MCAD/constants.scad will be deleted. Further more, we have a new naming scheme for MCAD constants. They begin with \"mcad_const_xyzName\".\n Thank you!"); // MIT license // Author: Elmo Mäntynen From 65a71476f008de240b6426e35b317e43bb4601d1 Mon Sep 17 00:00:00 2001 From: indazoo Date: Thu, 25 Jul 2019 08:50:04 +0200 Subject: [PATCH 3/3] inlcude path was wrong --- constants.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/constants.scad b/constants.scad index ad5a1055..77cbadf3 100644 --- a/constants.scad +++ b/constants.scad @@ -1,4 +1,4 @@ -include ; +include ; echo("This file (MCAD/constants.scad) is depreciated and exists only to ensure compatibility with older scripts. Could you please update your script to include MCAD/general/constants.scad? At some point of time, the file MCAD/constants.scad will be deleted. Further more, we have a new naming scheme for MCAD constants. They begin with \"mcad_const_xyzName\".\n Thank you!");