From 2b5460cbc8a52654f1f6019268e2a8eec37ddfdd Mon Sep 17 00:00:00 2001
From: jayAitch256 <46936427+jayAitch256@users.noreply.github.com>
Date: Wed, 15 Mar 2023 18:00:51 +0100
Subject: [PATCH] add threads-scad library
---
threads-scad/LICENSE.txt | 122 +
threads-scad/README.md | 127 +
threads-scad/images/threads_demo.png | Bin 0 -> 75040 bytes
threads-scad/threads.scad | 632 +
threads-scad/threads_demo.stl | 764836 ++++++++++++++++++++++++
5 files changed, 765717 insertions(+)
create mode 100644 threads-scad/LICENSE.txt
create mode 100644 threads-scad/README.md
create mode 100644 threads-scad/images/threads_demo.png
create mode 100644 threads-scad/threads.scad
create mode 100644 threads-scad/threads_demo.stl
diff --git a/threads-scad/LICENSE.txt b/threads-scad/LICENSE.txt
new file mode 100644
index 0000000..6ca207e
--- /dev/null
+++ b/threads-scad/LICENSE.txt
@@ -0,0 +1,122 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+ CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+ LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+ ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+ INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+ REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+ PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+ THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+ HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+ i. the right to reproduce, adapt, distribute, perform, display,
+ communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+ likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+ subject to the limitations in paragraph 4(a), below;
+ v. rights protecting the extraction, dissemination, use and reuse of data
+ in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+ European Parliament and of the Council of 11 March 1996 on the legal
+ protection of databases, and under any national implementation
+ thereof, including any amended or successor version of such
+ directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+ world based on applicable law or treaty, and any national
+ implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+ surrendered, licensed or otherwise affected by this document.
+ b. Affirmer offers the Work as-is and makes no representations or
+ warranties of any kind concerning the Work, express, implied,
+ statutory or otherwise, including without limitation warranties of
+ title, merchantability, fitness for a particular purpose, non
+ infringement, or the absence of latent or other defects, accuracy, or
+ the present or absence of errors, whether or not discoverable, all to
+ the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+ that may apply to the Work or any use thereof, including without
+ limitation any person's Copyright and Related Rights in the Work.
+ Further, Affirmer disclaims responsibility for obtaining any necessary
+ consents, permissions or other rights required for any use of the
+ Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+ party to this document and has no duty or obligation with respect to
+ this CC0 or use of the Work.
+
diff --git a/threads-scad/README.md b/threads-scad/README.md
new file mode 100644
index 0000000..ec7b4fc
--- /dev/null
+++ b/threads-scad/README.md
@@ -0,0 +1,127 @@
+# OpenSCAD threads.scad module
+
+

+
+This is an efficient OpenSCAD threading library intended primarily to be used
+as a component in other designs. It supports metric compatible internal and
+external threads, auger threads, thread tapering, clearance holes, countersunk
+holes, recessed holes, hex bolts, nuts, washers, Phillips tips, and long rods
+which are extended with threaded joints. Whenever possible this complies with
+metric standards for the defaults of parameters, while providing overrides for
+many values.
+
+The core threading routine makes use of list comprehensions to generate the
+entire threaded screw as a single polyhedron. This substantially improves the
+rendering speed and robustness over other approaches, decreases the number of
+facets necessary, and increases the tactile smoothness of the resulting parts.
+This also allows partially tapered screw ends, plus auger and
+conventional threads which come to a point.
+
+# threads.scad API
+
+Where parameters are shown with a default of 0 or -1, in many cases this indicates a standard default value will be calculated internally if this is not overridden.
+
+```
+// This creates a vertical rod at the origin with external threads. It uses
+// metric standards by default.
+module ScrewThread(outer_diam, height, pitch=0, tooth_angle=30, tolerance=0.4, tip_height=0, tooth_height=0, tip_min_fract=0)
+
+// This creates a vertical rod at the origin with external auger-style
+// threads.
+module AugerThread(outer_diam, inner_diam, height, pitch, tooth_angle=30, tolerance=0.4, tip_height=0, tip_min_fract=0)
+
+// This creates a threaded hole in its children using metric standards by
+// default.
+module ScrewHole(outer_diam, height, position=[0,0,0], rotation=[0,0,0], pitch=0, tooth_angle=30, tolerance=0.4, tooth_height=0)
+
+// This creates an auger-style threaded hole in its children.
+module AugerHole(outer_diam, inner_diam, height, pitch, position=[0,0,0], rotation=[0,0,0], tooth_angle=30, tolerance=0.4)
+
+// This inserts a ClearanceHole in its children.
+// The rotation vector is applied first, then the position translation,
+// starting from a position upward from the z-axis at z=0.
+module ClearanceHole(diameter, height, position=[0,0,0], rotation=[0,0,0], tolerance=0.4)
+
+// This inserts a ClearanceHole with a recessed bolt hole in its children.
+// The rotation vector is applied first, then the position translation,
+// starting from a position upward from the z-axis at z=0. The default
+// recessed parameters fit a standard metric bolt.
+module RecessedClearanceHole(diameter, height, position=[0,0,0], rotation=[0,0,0], recessed_diam=-1, recessed_height=-1, tolerance=0.4)
+
+// This inserts a countersunk ClearanceHole in its children.
+// The rotation vector is applied first, then the position translation,
+// starting from a position upward from the z-axis at z=0.
+// The countersunk side is on the bottom by default.
+module CountersunkClearanceHole(diameter, height, position=[0,0,0], rotation=[0,0,0], sinkdiam=0, sinkangle=45, tolerance=0.4)
+
+// This inserts a Phillips tip shaped hole into its children.
+// The rotation vector is applied first, then the position translation,
+// starting from a position upward from the z-axis at z=0.
+module PhillipsTip(width=7, thickness=0, straightdepth=0, position=[0,0,0], rotation=[0,0,0])
+
+// Create a standard sized metric bolt with hex head and hex key.
+module MetricBolt(diameter, length, tolerance=0.4)
+
+// Create a standard sized metric countersunk (flat) bolt with hex key drive.
+// In compliance with convention, the length for this includes the head.
+module MetricCountersunkBolt(diameter, length, tolerance=0.4)
+
+// Create a standard sized metric countersunk (flat) bolt with hex key drive.
+// In compliance with convention, the length for this includes the head.
+module MetricWoodScrew(diameter, length, tolerance=0.4)
+
+// Create a standard sized metric hex nut.
+module MetricNut(diameter, thickness=0, tolerance=0.4)
+
+// Create a convenient washer size for a metric nominal thread diameter.
+module MetricWasher(diameter)
+
+// Solid rod on the bottom, external threads on the top.
+module RodStart(diameter, height, thread_len=0, thread_diam=0, thread_pitch=0)
+
+// Solid rod on the bottom, internal threads on the top.
+// Flips around x-axis after printing to pair with RodStart.
+module RodEnd(diameter, height, thread_len=0, thread_diam=0, thread_pitch=0)
+
+// Internal threads on the bottom, external threads on the top.
+module RodExtender(diameter, height, thread_len=0, thread_diam=0, thread_pitch=0)
+
+// Produces a matching set of metric bolts, nuts, and washers.
+module MetricBoltSet(diameter, length, quantity=1)
+
+// This generates a closed polyhedron from an array of arrays of points,
+// with each inner array tracing out one loop outlining the polyhedron.
+// pointarrays should contain an array of N arrays each of size P outlining a
+// closed manifold. The points must obey the right-hand rule. For example,
+// looking down, the P points in the inner arrays are counter-clockwise in a
+// loop, while the N point arrays increase in height. Points in each inner
+// array do not need to be equal height, but they usually should not meet or
+// cross the line segments from the adjacent points in the other arrays.
+// (N>=2, P>=3)
+// Core triangles:
+// [j][i], [j+1][i], [j+1][(i+1)%P]
+// [j][i], [j+1][(i+1)%P], [j][(i+1)%P]
+// Then triangles are formed in a loop with the middle point of the first
+// and last array.
+module ClosePoints(pointarrays)
+```
+
+The following functions also provide standard metric values for a given
+diameter: ThreadPitch, HexAcrossFlats, HexAcrossCorners, HexDriveAcrossFlats,
+HexDriveAcrossCorners, CountersunkDriveAcrossFlats,
+CountersunkDriveAcrossCorners, NutThickness.
+
+# Usage Notes for 3D printing
+
+Good use of this library requires a printer which is properly calibrated for
+extrusion width, and which is producing consistent stable parts. In early
+tests, threaded holes (internal threads) of size M2 and higher worked fine with
+standard metal bolts. M3 bolts (external threads) worked under good
+conditions, but would be disrupted by small changes in print quality. M4 and
+higher were quite reliable.
+
+The extendable rod functions were added to support printing vertical rods
+taller than the available printer height. Early tests show this works very
+well and can be quite sturdy with appropriate infill. With appropriate plastic
+and settings this could probably be used to create fairly long rods.
+
diff --git a/threads-scad/images/threads_demo.png b/threads-scad/images/threads_demo.png
new file mode 100644
index 0000000000000000000000000000000000000000..485326ee18a62e0a596c6eef3ab27e9120fce8fd
GIT binary patch
literal 75040
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