Bunch of updates.
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
$fn = 256;
|
||||
|
||||
d_i = 10.8; // Inner diameter of the cymbal mount hole
|
||||
|
||||
d_o_top = 24; // Diameter of the outer top of the cymbal support
|
||||
h_top = 11; // Height of the top part of the cymbal support
|
||||
|
||||
d_o_bot = 19; // Diameter of the outer bottom of the cymbal support
|
||||
h_bot = 10.2; // Height of the bottom part of the cymbal support
|
||||
|
||||
h_dome = 6.8; // Height of the dome part of the cymbal support
|
||||
h_neck = 5; // Height of the neck part of the cymbal support
|
||||
|
||||
h_flange = 17.5;
|
||||
w_flange = 3;
|
||||
|
||||
h_full = h_bot + h_neck + h_top + h_dome;
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
// Bottom part of the cymbal support
|
||||
translate([0, 0, h_bot/2 + 0.1])
|
||||
cylinder(h = h_bot + 0.2, d = d_o_bot, center = true);
|
||||
|
||||
// Neck of the cymbal support
|
||||
translate([0, 0, h_bot + h_neck / 2])
|
||||
cylinder(h = h_neck, d1 = d_o_bot, d2 = d_o_top, center = true);
|
||||
|
||||
// Top part of the cymbal support
|
||||
translate([0, 0, h_bot + h_neck + h_top/2 + 0.1])
|
||||
cylinder(h = h_top + 0.2, d = d_o_top, center = true);
|
||||
|
||||
// Dome on top of the cymbal support
|
||||
translate([0, 0, h_bot + h_neck + h_top])
|
||||
scale([1, 1, (2*h_dome + 2) / d_o_top])
|
||||
sphere(d = d_o_top);
|
||||
|
||||
// Flange at the bottom of the cymbal support
|
||||
translate([-w_flange / 2, d_i / 2, 0]) cube([w_flange, 22, h_flange]);
|
||||
|
||||
// screw support
|
||||
translate([d_o_bot / 2 - 0.2, 0, 9.2 / 2])
|
||||
rotate([0, -90, 0]) cylinder(h = 1, d = 9.2, center = true);
|
||||
|
||||
translate([d_o_bot / 2 - 0.7, -9.2 / 2, 9.2 / 2])
|
||||
cube([1, 9.2, h_bot]);
|
||||
|
||||
}
|
||||
|
||||
// Cut out the inner hole for mounting
|
||||
translate([0, 0, 13])
|
||||
cylinder(h = 26.02, d = d_i, center = true);
|
||||
|
||||
translate([0, 0, 27])
|
||||
cylinder(h = 2, d1 = d_i, d2 = 8.4, center = true);
|
||||
|
||||
translate([0, 0, 27 + (h_full - 27)/2])
|
||||
cylinder(h = 1 + h_full - 27, d = 8.4, center = true);
|
||||
|
||||
// Cut out the screw hole
|
||||
translate([d_o_bot / 2 - 0.2, 0, 9.2 / 2])
|
||||
rotate([0, -90, 0]) cylinder(h = d_o_bot + 1, d = 4.6, center = true);
|
||||
|
||||
// Cut off the top (flatten the dome)
|
||||
translate([0, 0, h_bot + h_neck + h_top + h_dome+ 2]) cube([d_o_top, d_o_top, 4], center = true);
|
||||
|
||||
// Cut off the flange at an angle
|
||||
translate([0, d_i/2 + 9, 0])
|
||||
rotate([33.18, 0, 0])
|
||||
translate([-(w_flange + 0.2) / 2, 0, -10])
|
||||
cube([w_flange + 0.2, h_flange + 0.2, 10]);
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
$fn=36;
|
||||
|
||||
ep = 0.01;
|
||||
height = 4.5;
|
||||
|
||||
iDepth = 3.5;
|
||||
oDepth = 9;
|
||||
|
||||
iWidth = 13;
|
||||
oWidth = 20;
|
||||
|
||||
clipWidth=5;
|
||||
|
||||
overhang=5;
|
||||
|
||||
pinClear = 2.2; // pin clearance
|
||||
slideClear = 1.8;
|
||||
|
||||
union() {
|
||||
// base bracket
|
||||
difference() {
|
||||
translate([-oWidth/2, 0, 0]) cube([oWidth, oDepth, height + ep]);
|
||||
|
||||
translate([-iWidth/2, -ep, -ep]) cube([iWidth, iDepth + ep, height + 3*ep]);
|
||||
}
|
||||
|
||||
// clip
|
||||
difference() {
|
||||
translate([-clipWidth/2, -overhang, height]) cube([clipWidth, oDepth + overhang, 4]);
|
||||
|
||||
color("red") union() {
|
||||
translate([-oWidth/2, -2.5, height + 1.25]) rotate([0, 90, 0]) cylinder(d=3, h=oWidth);
|
||||
translate([-clipWidth/2 - ep, -overhang - ep, height - ep]) cube([clipWidth + 2*ep, overhang + ep, 1.5 + ep]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
// all measurements in mm
|
||||
$fn=128;
|
||||
|
||||
// Version History
|
||||
// 1 - id=25.6, od1=31, od2=29, h=44, tabHeight=13, tabClearance=0.4
|
||||
// 2 - id=27, od1=31, od2=29, h=44, tabHeight=13, tabClearance=0.1
|
||||
// 3 - id=27, od1=31, od2=29, h=44, tabHeight=13, tabClearance=0
|
||||
// 4 - id=26, od1=31, od2=29, h=44, tabHeight=13, tabClearance=0
|
||||
// 5 - id=26, od1=31, od2=29, h=44, tabHeight=13, tabClearance=-0.1, angle in tab
|
||||
version = "5";
|
||||
|
||||
id = 26;
|
||||
od1 = 31;
|
||||
od2 = 29;
|
||||
h = 44;
|
||||
tabClearance = -0.1;
|
||||
tabHeight = 13;
|
||||
|
||||
module tab() {
|
||||
translate([id/2 + 0.2, 0, -6.5]) rotate([0, 0, 7]) difference() {
|
||||
// tab
|
||||
translate([0, -0.01, 0]) cube([1.6, 4.01, tabHeight]);
|
||||
// tab chamfers
|
||||
union() {
|
||||
translate([0 - 0.2, 2, 0]) rotate([-75, 0, 0]) cube([2, 4, 4]);
|
||||
translate([0 - 0.2, 2, tabHeight]) mirror([0, 0, 1]) rotate([-75, 0, 0]) cube([2, 4, 4]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module tabCutout() {
|
||||
translate([-id/2 - 3, -5, -(tabHeight + tabClearance)/2]) cube([6, 5.01, tabHeight + tabClearance]);
|
||||
}
|
||||
|
||||
module catchRing() {
|
||||
translate([0, 0, 9]) difference() {
|
||||
cylinder(h=0.8, d=od2, center = true);
|
||||
translate([0, 0, -0.05]) cylinder(h=1, d=id - 0.8, center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module mainCylinderBody() {
|
||||
difference() {
|
||||
union() {
|
||||
difference() {
|
||||
// outer cylinder
|
||||
cylinder(h=h, d1=od1, d2=od2, center = true);
|
||||
|
||||
// cylinder bore and top chamfer
|
||||
union() {
|
||||
// inner bore
|
||||
translate([0, 0, -0.01]) cylinder(h=h + 0.1, d=id, center = true);
|
||||
|
||||
// top chamfer
|
||||
translate([0, 0, h/2-0.02]) difference() {
|
||||
cylinder(h=2.2, d1=od1+3, d2=od2+3, center = true);
|
||||
translate([0, 0, -0.01]) cylinder(h=2.24, d1=od2+0.1, d2=id-0.2, center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
catchRing();
|
||||
}
|
||||
// cutout half
|
||||
translate([-(od2+4)/2, 0, -h/2 - 1]) cube([od1 + 4, od1, h + 2]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
mainCylinderBody();
|
||||
tab();
|
||||
}
|
||||
|
||||
union() {
|
||||
tabCutout();
|
||||
translate([0, -0.2-id/2, 4-h/2]) rotate([90, 0, 180])
|
||||
linear_extrude(0.8)
|
||||
text(str("v", version), size=6, halign="center", valign="center", font="Iosevka");
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
$fn=180;
|
||||
ow=23; // outer width
|
||||
od=18; // outer depth
|
||||
oh=10; // outer height
|
||||
oh=10; // outer height
|
||||
ep = 0.01;
|
||||
|
||||
iw=17.4; // inner width
|
||||
id=12.5; // inner depth
|
||||
id=12.5; // inner depth
|
||||
ih=7.6; // inner height
|
||||
|
||||
sphMul = 4;
|
||||
@@ -51,6 +51,10 @@ difference() {
|
||||
ct = 1.3; // cross thickness
|
||||
|
||||
// inner cylinder
|
||||
// there are conflicting constraints here: the diameter needs to be thick
|
||||
// enough to have strong walls, particularly at the points where the
|
||||
// cross cutaway comes close to them, but the whole cylinder also needs
|
||||
// to fit into the recess allowed in the keypost
|
||||
color("DimGray") translate([ow/2, od/2, 1.4]) cylinder(d=5.3, h=ih - 1.4);
|
||||
|
||||
// inner cross recess (post hole)
|
||||
|
||||
Reference in New Issue
Block a user