mirror of
https://github.com/adrianschlatter/threadlib.git
synced 2025-01-16 20:58:26 +01:00
threadlib emancipation
+++++++++++++++++++++++ threadlib is now its own project => remove Waterrocket Fins from this repo.
This commit is contained in:
parent
24147eb7d0
commit
9ee4be088a
85
README.rst
85
README.rst
@ -1,14 +1,81 @@
|
||||
PET-Bottle Waterrocket Fins
|
||||
threadlib
|
||||
+++++++++++++++++++++++++++
|
||||
|
||||
This is a CAD-model of fins intended to be screwed onto a PET bottle to create a
|
||||
water rocket. To create the rocket, you need:
|
||||
threadlib is a library of standard threads for OpenSCAD.
|
||||
|
||||
- bottle with PCO-1881 threading (e.g. a 1.5-l Coke bottle)
|
||||
- this part
|
||||
- Gardena tap connector G 1"
|
||||
- launcher
|
||||
In contrast to other thread libraries, it does not make you look up diameters
|
||||
and pitches and maybe even thread-profiles in tables and norms: It has these
|
||||
tables built in.
|
||||
|
||||
(+ water + pressurized air).
|
||||
Creating a thread is as simple as
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
thread("G1/2-ext", turns=10, higbee_arc=20);
|
||||
|
||||
to create a British Standard Pipe parallel external thread. Furthermore,
|
||||
threadlib allows for production tolerances by choosing thread dimensions well
|
||||
inside the ranges allowed by the norms.
|
||||
|
||||
|
||||
Usage
|
||||
===========================
|
||||
|
||||
To create a bolt (without head) with 10 turns of G1-inch thread:
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
bolt("G1", turns=10);
|
||||
|
||||
A nut:
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
nut("G1", turns=10, Douter=40);
|
||||
|
||||
Note that for a nut you also have to specify an outer diameter. The inner
|
||||
diameter is implicitly given by the thread designator ("G1" in this case).
|
||||
|
||||
If you only need the threads alone:
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
thread("G2 1/2-ext", turns=5);
|
||||
|
||||
Then, add the support you want. In the simplest case, a cylinder (which is what
|
||||
nut(...) uses):
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
specs = thread_specs("G2 1/2-ext");
|
||||
P = specs[0]; Rrot = specs[1]; Dsupport = specs[2];
|
||||
section_profile = specs[3];
|
||||
H = (5 + 1) * P;
|
||||
translate([0, 0, -P / 2])
|
||||
cylinder(h=H, d=Dsupport, $fn=120);
|
||||
|
||||
Here, we have used the function thread_specs(...) to look up the threads
|
||||
specifications - including the recommended diameter of the support structure.
|
||||
|
||||
|
||||
Extensibility
|
||||
===========================
|
||||
|
||||
Don't find some of the threads you need for your project? Don't worry: You can
|
||||
add your own:
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
use <threadlib/threadlib.scad>
|
||||
|
||||
MY_THREAD_TABLE = [
|
||||
["special", [pitch, Rrot, Dsupport,
|
||||
[[r0, z0], [r1, z1], ..., [rn, zn]]]]
|
||||
];
|
||||
|
||||
thread("special", turns=15, table=MY_THREAD_TABLE);
|
||||
|
||||
Care to share? Safe others from repeating the valuable work you have already
|
||||
accomplished and get the fame you deserve: Send in your tried and tested threads
|
||||
for addition to threadlib!
|
||||
|
||||
Use at your own risk.
|
||||
|
108
gardena.scad
108
gardena.scad
@ -1,108 +0,0 @@
|
||||
/*
|
||||
Gardena Tap Connectors
|
||||
++++++++++++++++++++++
|
||||
|
||||
Units in this file: Millimeter.
|
||||
|
||||
*/
|
||||
|
||||
use <threads.scad>
|
||||
|
||||
// Generic
|
||||
|
||||
module gasket (r0=8, r1=12.5, d=3) {
|
||||
/*
|
||||
Flat ring gasket
|
||||
++++++++++++++++
|
||||
|
||||
r0: Hole diameter
|
||||
r1: Outer diameter
|
||||
d: Thickness
|
||||
*/
|
||||
|
||||
color("DarkSlateGray")
|
||||
difference() {
|
||||
cylinder(h=d, r=r1);
|
||||
translate([0, 0, -d])
|
||||
cylinder(h=3*d, r=r0);
|
||||
}
|
||||
};
|
||||
|
||||
module nozzle (radii=[16.8, 7, 10, 4.5, 8.5], zs=[-12, -14, -18, -18, -24, -22, -38],
|
||||
dthread=26.441, pthread=25.4/14)
|
||||
{
|
||||
/*
|
||||
Gardena nozzle
|
||||
+++++++++++++
|
||||
|
||||
radii: List of 5 radii
|
||||
zs: List of 7 z
|
||||
dthread: Thread diameter
|
||||
pthread: Thread pitch
|
||||
*/
|
||||
|
||||
translate([0, 0, -zs[0]])
|
||||
difference() {
|
||||
color("Gray")
|
||||
union() {
|
||||
translate([0, 0, zs[1]])
|
||||
cylinder(h=-zs[1], r=radii[0]);
|
||||
translate([0, 0, zs[3]])
|
||||
cylinder(h=zs[1]-zs[3], r=radii[2]);
|
||||
translate([0, 0, zs[5]])
|
||||
cylinder(h=zs[3]-zs[5], r1=radii[4], r2=radii[2]);
|
||||
translate([0, 0, zs[6]])
|
||||
cylinder(h=zs[5]-zs[6], r=radii[4]);
|
||||
};
|
||||
|
||||
color("Gray")
|
||||
translate([0, 0, zs[0]])
|
||||
metric_thread(dthread, pthread,
|
||||
-2*zs[0], angle=27.5, internal=true);
|
||||
|
||||
color("Navy")
|
||||
union() {
|
||||
translate([0, 0, zs[2]])
|
||||
cylinder(h=-zs[2], r=radii[1]);
|
||||
|
||||
translate([0, 0, zs[2]])
|
||||
cylinder(h=zs[2]-zs[3]+0.001, r=radii[1]);
|
||||
|
||||
translate([0, 0, zs[4]])
|
||||
cylinder(h=zs[2]-zs[4]+0.002, r1=radii[3], r2=radii[1]);
|
||||
|
||||
translate([0, 0, zs[6]-0.002])
|
||||
cylinder(h=-zs[6], r=radii[3]);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// Special
|
||||
|
||||
module gasket_gardena_G3o4() {
|
||||
gasket();
|
||||
};
|
||||
|
||||
module gasket_gardena_G1() {
|
||||
gasket(r0=20/2, r1=31.5/2, d=3);
|
||||
};
|
||||
|
||||
module nozzle_gardena_G3o4 () {
|
||||
nozzle();
|
||||
};
|
||||
|
||||
module nozzle_gardena_G1 () {
|
||||
nozzle(radii=[19.6, 7, 10, 4.5, 8.5], zs=[-12, -14, -18, -18, -24, -22, -38],
|
||||
dthread=33.249, pthread=25.4/11);
|
||||
};
|
||||
|
||||
intersection() {
|
||||
translate([-50, 0, -50])
|
||||
color("Green")
|
||||
cube(100, 100, 100);
|
||||
union() {
|
||||
gasket_gardena_G1();
|
||||
nozzle_gardena_G1();
|
||||
};
|
||||
};
|
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 131 KiB |
@ -1,58 +0,0 @@
|
||||
/*
|
||||
PCO-1881 Bottle Neck
|
||||
|
||||
Based on http://imajeenyus.com/mechanical/20120508_bottle_top_threads/28mm-ISBT-PCO-1881-Finish-3784253-17.pdf
|
||||
|
||||
*/
|
||||
|
||||
use <thread_profile.scad> // https://github.com/MisterHW/IoP-satellite
|
||||
|
||||
module pco1881 () {
|
||||
// The PCO-1881 bottle neck (approximately) as described in the spec
|
||||
union() {
|
||||
difference() {
|
||||
union() {
|
||||
cylinder(h=20, r=24.20/2);
|
||||
cylinder(h=1.7, r=25.07/2);
|
||||
translate([0, 0, 9])
|
||||
cylinder(h=11.2-0.6-9, r1=24.2/2, r2=28.0/2);
|
||||
translate([0, 0, 11.2-0.6])
|
||||
cylinder(h=0.6, r=28.0/2);
|
||||
translate([0, 0, 11.2])
|
||||
cylinder(h=20-11.2, r=25.71/2);
|
||||
translate([0, 0, 14.88])
|
||||
cylinder(h=1, r1=33.0/2-3.732, r2=33.0/2);
|
||||
translate([0, 0, 14.88+1])
|
||||
cylinder(h=17-14.88-1, r=33.00/2);
|
||||
translate([0, 0, 17])
|
||||
cylinder(h=3, r=26.19/2);
|
||||
};
|
||||
|
||||
translate([0, 0, 13.94])
|
||||
rotate_extrude()
|
||||
translate([12.25+1.08, 0, 0])
|
||||
circle(1.08, $fn=50);
|
||||
color("Navy")
|
||||
translate([0, 0, -0.004])
|
||||
cylinder(h=20.008, r1=21.74/2, r2=10.870);
|
||||
};
|
||||
translate([0, 0, (1.70 + 1.92) / 2])
|
||||
straight_thread(
|
||||
section_profile = bottle_pco1881_neck_thread_profile(),
|
||||
higbee_arc = 10,
|
||||
r = bottle_pco1881_neck_thread_dia() / 2,
|
||||
turns = 650 / 360,
|
||||
pitch = bottle_pco1881_neck_thread_pitch(),
|
||||
fn = 60
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
*intersection() {
|
||||
color("Green")
|
||||
translate([-50, 0, -50])
|
||||
cube(100, 100, 100);
|
||||
pco1881();
|
||||
}
|
||||
|
||||
*pco1881();
|
@ -1,81 +0,0 @@
|
||||
threadlib
|
||||
+++++++++++++++++++++++++++
|
||||
|
||||
threadlib is a library of standard threads for OpenSCAD.
|
||||
|
||||
In contrast to other thread libraries, it does not make you look up diameters
|
||||
and pitches and maybe even thread-profiles in tables and norms: It has these
|
||||
tables built in.
|
||||
|
||||
Creating a thread is as simple as
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
thread("G1/2-ext", turns=10, higbee_arc=20);
|
||||
|
||||
to create a British Standard Pipe parallel external thread. Furthermore,
|
||||
threadlib allows for production tolerances by choosing thread dimensions well
|
||||
inside the ranges allowed by the norms.
|
||||
|
||||
|
||||
Usage
|
||||
===========================
|
||||
|
||||
To create a bolt (without head) with 10 turns of G1-inch thread:
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
bolt("G1", turns=10);
|
||||
|
||||
A nut:
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
nut("G1", turns=10, Douter=40);
|
||||
|
||||
Note that for a nut you also have to specify an outer diameter. The inner
|
||||
diameter is implicitly given by the thread designator ("G1" in this case).
|
||||
|
||||
If you only need the threads alone:
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
thread("G2 1/2-ext", turns=5);
|
||||
|
||||
Then, add the support you want. In the simplest case, a cylinder (which is what
|
||||
nut(...) uses):
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
specs = thread_specs("G2 1/2-ext");
|
||||
P = specs[0]; Rrot = specs[1]; Dsupport = specs[2];
|
||||
section_profile = specs[3];
|
||||
H = (5 + 1) * P;
|
||||
translate([0, 0, -P / 2])
|
||||
cylinder(h=H, d=Dsupport, $fn=120);
|
||||
|
||||
Here, we have used the function thread_specs(...) to look up the threads
|
||||
specifications - including the recommended diameter of the support structure.
|
||||
|
||||
|
||||
Extensibility
|
||||
===========================
|
||||
|
||||
Don't find some of the threads you need for your project? Don't worry: You can
|
||||
add your own:
|
||||
|
||||
.. code-block:: OpenSCAD
|
||||
|
||||
use <threadlib.scad>
|
||||
|
||||
MY_THREAD_TABLE = [
|
||||
["special", [pitch, Rrot, Dsupport,
|
||||
[[r0, z0], [r1, z1], ..., [rn, zn]]]]
|
||||
];
|
||||
|
||||
thread("special", turns=15, table=MY_THREAD_TABLE);
|
||||
|
||||
Care to share? Safe others from repeating the valuable work you have already
|
||||
accomplished and get the fame you deserve: Send in your tried and tested threads
|
||||
for addition to threadlib!
|
||||
|
Loading…
x
Reference in New Issue
Block a user