Reinforced QD Propane Adapter Tool

Having just emptied a propane tank while making bacon, I couldn’t find any of the wrench adapters I made to remove the QD adapter from the tank’s POL fitting. With memory of the broken garden valve wrench still fresh, I tweaked the solid model to include a trio of 1 mm music wire reinforcements:

Propane QD Adapter Tool - reinforced - Slic3r
Propane QD Adapter Tool – reinforced – Slic3r

Holes that small require clearing with a 1 mm drill, after which ramming the wires in place poses no problem:

Reinforced QD Adapter Tool - inserting wire
Reinforced QD Adapter Tool – inserting wire

Except for the one that got away:

Reinforced QD Adapter Tool - errant wire
Reinforced QD Adapter Tool – errant wire

The music wire came from a coil and each snippet required gentle straightening; perhaps that one wasn’t sufficiently bar-straight.

Anyhow, I printed two tools for that very reason:

Reinforced QD Adapter Tool - side view
Reinforced QD Adapter Tool – side view

They’re now where I can’t miss ’em the next time I need them, although that’s not where the previous ones reside.

The OpenSCAD source code as a GitHub Gist:

// Propane tank QD connector adapter tool
// Ed Nisley KE4ZNU November 2012
// 2018-04-08 toss MCAD includes overboard
// 2020-07-27 add reinforcing rods
//- Extrusion parameters must match reality!
// Print with about half a dozen perimeter threads and 50% infill
ThreadThick = 0.25;
ThreadWidth = 2.0 * ThreadThick;
HoleWindage = 0.2;
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
Protrusion = 0.1; // make holes end cleanly
inch = 25.4;
//----------------------
// Dimensions
WrenchSize = (5/8) * inch; // across the flats
WrenchThick = 10;
NoseDia = 8.6;
NoseLength = 9.0;
LockDia = 12.5;
LockRingLength = 1.0;
LockTaperLength = 1.5;
TriDia = 15.1;
TriWide = 12.2; // from OD across center to triangle side
TriOffset = TriWide - TriDia/2; // from center to triangle side
TriLength = 9.8;
NeckDia = TriDia;
NeckLength = 4.0;
RebarOD = 1.0; // music wire pin 1 mm = 39 mil
RebarLength = WrenchThick + NeckLength + TriLength;
//----------------------
// Useful routines
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(r=(FixDia + HoleWindage)/2,
h=Height,
$fn=Sides);
}
//-------------------
// Build it...
$fn = 4*6;
union() {
translate([0,0,(WrenchThick + NeckLength + TriLength - LockTaperLength - LockRingLength + Protrusion)])
cylinder(r1=NoseDia/2,r2=LockDia/2,h=LockTaperLength);
translate([0,0,(WrenchThick + NeckLength + TriLength - LockRingLength)])
cylinder(r=LockDia/2,h=LockRingLength);
difference() {
union() {
translate([0,0,WrenchThick/2])
cube([WrenchSize,WrenchSize,WrenchThick],center=true);
cylinder(r=TriDia/2,h=(WrenchThick + NeckLength +TriLength));
cylinder(r=NoseDia/2,h=(WrenchThick + NeckLength + TriLength + NoseLength));
}
for (a=[-1:1]) {
rotate(a*120)
translate([(TriOffset + WrenchSize/2),0,(WrenchThick + NeckLength + TriLength/2 + Protrusion/2)])
cube([WrenchSize,WrenchSize,(TriLength + Protrusion)],center=true);
}
for (a=[-1:1]) {
rotate(a*120 + 60)
translate([NoseDia/2,0,-Protrusion])
PolyCyl(RebarOD,RebarLength,6);
}
}
}

Spam comments get trashed, so don't bother. Comment moderation may cause a delay.

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s