Skip to content

Commit

Permalink
Wider minor-radii of PCO-1881 threads
Browse files Browse the repository at this point in the history
  • Loading branch information
adrianschlatter committed Jul 26, 2021
2 parents 24fe4c4 + 06afba5 commit df44241
Show file tree
Hide file tree
Showing 20 changed files with 255 additions and 33 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
build/*.stl
.DS_Store
.vscode
*.stl
*.psd
25 changes: 25 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
BSD 2-Clause License

Copyright (c) 2019, Adrian Schlatter
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15 changes: 15 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
.PHONY: all
all: imgs build

.PHONY: imgs
imgs:
@$(MAKE) -C docs/imgs

.PHONY: build
build:
@$(MAKE) -C build

.PHONY: clean
clean:
@$(MAKE) -C docs/imgs clean
@$(MAKE) -C build clean
10 changes: 10 additions & 0 deletions PN1_3_narrow_fins.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
use <rocket_fins.scad>


module 3_narrow_fins() {
rocket_fins(nfins=3, Hcenter=40, Htip=20, shift=24,
clearance_r=32, clearance_z=-6);
};


3_narrow_fins();
10 changes: 10 additions & 0 deletions PN2_3_broad_fins.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
use <rocket_fins.scad>


module 3_broad_fins() {
rocket_fins(nfins=3, Hcenter=60, Htip=30, shift=19,
clearance_r=50, clearance_z=-20);
};


3_broad_fins();
10 changes: 10 additions & 0 deletions PN3_5_narrow_fins.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
use <rocket_fins.scad>


module 5_narrow_fins() {
rocket_fins(nfins=5, Hcenter=40, Htip=20, shift=24,
clearance_r=32, clearance_z=-6);
};


5_narrow_fins();
14 changes: 0 additions & 14 deletions README.rst

This file was deleted.

31 changes: 31 additions & 0 deletions bottle.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
A PET-Bottle
:author: Adrian Schlatter
*/

use <pco-1881.scad>


module bottle () {
profile = [[0, 0],
[26.19/2, 0],
[46, 70],
[46, 254],
[0, 254]];

translate([0, 0, 20])
union() {
rotate_extrude()
polygon(points=profile);

translate([0, 0, 254])
sphere(r=46);

translate([0, 0, -20])
pco1881();
};
};


bottle();
14 changes: 14 additions & 0 deletions build/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
os = /usr/local/bin/openscad
opts =
stls = PN1_3_narrow_fins.stl PN2_3_broad_fins.stl PN3_5_narrow_fins.stl

.PHONY: all
all: $(stls)

%.stl: ../%.scad
$(os) $(opts) -o $@ $<


.PHONY: clean
clean:
-rm $(stls) 2> /dev/null || true
49 changes: 49 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Fins for PET-Bottle Water-Rockets

<p align="middle">
<img alt="Image strip showing finned Coke-bottle water-rocket launch" src="imgs/rocket_launch.jpg" width="100%">
</p>

PET-bottle water rockets are fun. And if you have children, you already have
an engineering-, launch-, and recovery team. Let an adult take responsibility
for [safety](http://www.aircommandrockets.com/safety.htm): Exploding
pressure tanks (i.e., water rockets) are dangerous!
To learn more about water rockets, check out the excellent articles by
[Air Command Water Rockets](http://www.aircommandrockets.com).
The usual way to create a very simple rocket is:

- glue fins to PET bottle
- glue nozzle to PET bottle
- tape nose cone to PET, possibly adding some weight for stable flight

Then bring your launch pad to some vast, empty area, fuel your rocket
with water, pressurize using a bicycle pump, and launch.

_Tricky part_: Glueing to PET.

_Solution_: Screw-on fins that also provide
a thread-adapter from PCO-1881 (PET-bottle thread) to 1" British
Standard Pipe Thread (Gardena(tm) tap-connector).

<p align="left">
<img src="imgs/assembly.png" width="100%">
</p>

Note that the threads in C2 do _not_ act as seals: The lip of the bottle C1
will directly seal to the gasket inside the tap connector C3.

Some bottle-shapes may not fit into the fin-adapter. Coke bottles work nicely,
though. It should not matter much which type of garden hose connector you use
as long as it has a 1" British Standard Pipe Thread (often abbreviated
as G-1"). I use [these](https://www.gardena.com/int/products/watering/hose-fittings/tap-connector-33-3-mm-g-1/967312601/).


## Rocket-Fin Variants

These variants for C2 are currently available:

| Part-# | Name | Picture |
| -------| -------------- |----------------------------------------------------- |
| PN1 | 3 narrow fins | <img src="imgs/PN1_3_narrow_fins.png" height="50px"> |
| PN2 | 3 broad fins | <img src="imgs/PN2_3_broad_fins.png" height="50px"> |
| PN3 | 5 narrow fins | <img src="imgs/PN3_5_narrow_fins.png" height="50px"> |
17 changes: 17 additions & 0 deletions docs/imgs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
os = /usr/local/bin/openscad
im = /usr/local/bin/magick
opts =
imgs = PN1_3_narrow_fins.png PN2_3_broad_fins.png PN3_5_narrow_fins.png

.PHONY: all
all: $(imgs)

%.png: ../../%.scad
$(os) $(opts) --camera=0,0,0,52.2,0,168.5,700 --imgsize=2048,2046 \
-o $@ $<
$(im) mogrify -transparent "rgb(255, 255, 229)" $@
$(im) mogrify -trim $@

.PHONY: clean
clean:
-rm $(imgs) 2> /dev/null || true
Binary file added docs/imgs/PN1_3_narrow_fins.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/PN2_3_broad_fins.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/PN3_5_narrow_fins.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/assembly.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/rocket_launch.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion gardena.scad
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ module nozzle_gardena_G1 () {
intersection() {
translate([-50, 0, -50])
color("Green")
cube(100, 100, 100);
cube(100);
union() {
gasket_gardena_G3o4();
nozzle_gardena_G3o4();
Expand Down
4 changes: 2 additions & 2 deletions pco-1881.scad
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,6 @@ module pco1881 () {
intersection() {
color("Green")
translate([-50, 0, -50])
cube(100, 100, 100);
cube(100);
!pco1881($fn=120);
}
}
45 changes: 45 additions & 0 deletions rocket.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
Water Rocket Exploded Model
+++++++++++++++++++++++++++++
:author: Adrian Schlatter
*/

use <gardena.scad>
use <bottle.scad>
use <PN1_3_narrow_fins.scad>
use <PN2_3_broad_fins.scad>
use <PN3_5_narrow_fins.scad>


// rocket with rocket fins variant _3:
union() {
// bottle:
translate([0, 0, 50])
rotate([0, 0, 3])
color("Silver")
bottle($fn=120);

// rocket fins _3:
color("Gold")
5_narrow_fins();

// nozzle:
translate([0, 0, -2.8 - 20]) {
rotate([0, 0, -65])
color("Gray")
nozzle_gardena_G1();
gasket_gardena_G1();
};

};

// rocket fins variant _1:
translate([-200, 0, 0])
color("Gold")
3_narrow_fins();

// rocket fins variant _2:
translate([-200, 0, +70])
color("Gold")
3_broad_fins();
37 changes: 21 additions & 16 deletions WaterRocketAdapter1.scad → rocket_fins.scad
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
WaterRocketAdapter Type 1
Rocket Fin Adapter
++++++++++++++++++++++++++
Connects a PCO-1881-thread bottle to a Gardena G1 nozzle. The PET bottle seals
Expand All @@ -11,15 +11,16 @@ directly on the gasket of the Gardena nozzle. Key design aspects:
:author: Adrian Schlatter
:date: 2019-04-18
*/

use <threadlib/threadlib.scad>
use <gardena.scad>
use <pco-1881.scad>
use <bottle.scad>
use <fins.scad>

module WaterRocketAdapter1($fn=120)

module rocket_fins(nfins=3, Hcenter=40, Htip=20, shift=24,
clearance_r=32, clearance_z=-6, $fn=120)
{
tol = 0.2;
pco1881_Rmajor = thread_specs("PCO-1881-int")[2] / 2;
Expand All @@ -37,7 +38,8 @@ module WaterRocketAdapter1($fn=120)
[Rbrim + tol, 9.5 + Hgrip], [Rbrim + tol, 15.5],
[pco1881_Rmajor, 9.0], [pco1881_Rmajor, dH]];
clearance = [[0, section[6][1] + 10], section[6] + [8, 10],
section[7] + [0.5, 0], section[3], [50, -20], [0, -20]];
section[7] + [0.5, 0], section[3], [clearance_r, clearance_z],
[0, clearance_z]];
union() {
rotate_extrude() // entire body of adapter
offset(r=-1)
Expand All @@ -61,8 +63,8 @@ module WaterRocketAdapter1($fn=120)
translate([0, 0, dH + 3 * P_pco / 4])
thread("PCO-1881-int", turns=1.95);
difference() { // fins
translate([0, 0, 19])
fins(Hcenter=60, Htip=30, r=0.5, nfins=3);
translate([0, 0, shift])
fins(Hcenter=Hcenter, Htip=Htip, r=0.5, nfins=nfins);
rotate_extrude()
polygon(points=clearance);
};
Expand All @@ -73,19 +75,22 @@ module WaterRocketAdapter1($fn=120)
intersection() {
translate([-100, 0, -100])
color("Green")
cube([200, 200, 200]);
cube(200);
rotate([0, 0, 0])
union() {
rotate([0, 0, 3])
color("White") // botte neck
pco1881($fn=120);
translate([0, 0, -2.8]) { // gardena nozzle
translate([0, 0, 50])
rotate([0, 0, 3])
color("Silver") // bottle
bottle($fn=120);

color("Gold") // Adapter
!rocket_fins();

translate([0, 0, -2.8 - 20]) { // gardena nozzle
rotate([0, 0, -65])
color("Gray")
nozzle_gardena_G1();
*gasket_gardena_G1(); // gasket
gasket_gardena_G1(); // gasket
};
color("FireBrick") // Adapter
!WaterRocketAdapter1();
};
};
};

0 comments on commit df44241

Please sign in to comment.