Compare commits
2 Commits
3fd141649f
...
9e771b3125
Author | SHA1 | Date | |
---|---|---|---|
9e771b3125 | |||
ce3aa19da3 |
@ -74,4 +74,4 @@ module messerschmitt() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
messerschmidt();
|
messerschmitt();
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//$fn=50;
|
$fn=50;
|
||||||
ep=0.1;
|
ep=0.1;
|
||||||
|
|
||||||
// Create a module so you can call it like a normal OpenSCAD function, like
|
// Create a module so you can call it like a normal OpenSCAD function, like
|
||||||
@ -54,4 +54,4 @@ module fighterZero() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//fighterZero();
|
fighterZero();
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
$fn=120;
|
//$fn=120;
|
||||||
|
$fn=16;
|
||||||
ep=0.1;
|
ep=0.1;
|
||||||
|
|
||||||
module reference() {
|
module reference() {
|
||||||
|
60
board-games/axis-and-allies/unit-chip.scad
Normal file
60
board-games/axis-and-allies/unit-chip.scad
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
$fn = 256;
|
||||||
|
od = 21.5;
|
||||||
|
id = 15;
|
||||||
|
h = 2;
|
||||||
|
ep = 0.01;
|
||||||
|
recess = 0.8;
|
||||||
|
|
||||||
|
tiltAngle = 60;
|
||||||
|
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
translate([0, 0, (sin(tiltAngle) * od) / 2]) rotate([0, tiltAngle, 0]) union() {
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
cylinder(d=od, h=h - recess + ep);
|
||||||
|
// Top protrustion
|
||||||
|
translate([0, 0, h - recess]) cylinder(d1=id + recess*2 + 0.2, d2=id, h=recess);
|
||||||
|
//translate([0, 0, h - recess]) cylinder(d=id, h=recess);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bottom cut
|
||||||
|
color("red") translate([0, 0, -ep])
|
||||||
|
cylinder(d1=id + recess*2 + 0.4, d2=id + 0.4, h=recess);
|
||||||
|
//cylinder(d=id + 0.8, h=recess);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
translate([-(cos(tiltAngle) * (id - 2)) / 2 + 0.25, -0.4, 0])
|
||||||
|
cube([cos(tiltAngle) * (id - 2), 0.8, sin(tiltAngle) * od]);
|
||||||
|
|
||||||
|
color("blue") union() {
|
||||||
|
translate([0, 0, (sin(tiltAngle) * od) / 2])
|
||||||
|
rotate([0, tiltAngle, 0])
|
||||||
|
translate([-sin(tiltAngle) * od, -0.5, recess - 0.2])
|
||||||
|
cube([2 * od, 1, od]);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0.6, 0, (sin(tiltAngle) * od) / 2 - 1]) rotate([0, tiltAngle, 0])
|
||||||
|
union() {
|
||||||
|
difference() {
|
||||||
|
color("pink") cylinder(d=od, h=h - recess + ep);
|
||||||
|
|
||||||
|
color("blue") translate([-1, 0, -ep])
|
||||||
|
union() {
|
||||||
|
cylinder(d=od, h=h - recess + 3*ep);
|
||||||
|
//translate([-2, (od + 2*ep) / 2, -ep])
|
||||||
|
translate([-(od / 2) - 2, -(od + 2*ep) / 2, -ep])
|
||||||
|
cube([od, od + 4*ep, h]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([-od, -od/2, -2]) cube([2 * od, od, 2]);
|
||||||
|
}
|
@ -14,8 +14,12 @@ difference() {
|
|||||||
// channel
|
// channel
|
||||||
cube([30, 13, length + 10]);
|
cube([30, 13, length + 10]);
|
||||||
|
|
||||||
// angled support
|
// angled supports (X-axis)
|
||||||
translate([16, 9, -8]) rotate([0, -10, 0]) cube([30, 4, length + 10]);
|
translate([16, 9, -8]) rotate([0, -10, 0]) cube([30, 4, length + 10]);
|
||||||
|
translate([16, 0, -8]) rotate([0, -10, 0]) cube([30, 4, length + 10]);
|
||||||
|
|
||||||
|
// angled supports (y-axis)
|
||||||
|
translate([0, 12, -1]) rotate([15, 0, 0]) cube([4, 10, 40]);
|
||||||
|
|
||||||
// base
|
// base
|
||||||
cube([50, 32, 4]);
|
cube([50, 32, 4]);
|
||||||
|
71
replacement-parts/keycaps/ctrl-key.scad
Normal file
71
replacement-parts/keycaps/ctrl-key.scad
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
$fn=180;
|
||||||
|
ow=23; // outer width
|
||||||
|
od=18; // outer depth
|
||||||
|
oh=10; // outer height
|
||||||
|
ep = 0.01;
|
||||||
|
|
||||||
|
iw=17.4; // inner width
|
||||||
|
id=12.5; // inner depth
|
||||||
|
ih=7.6; // inner height
|
||||||
|
|
||||||
|
sphMul = 4;
|
||||||
|
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
translate([-ow/2, -od/2, 0]) union() {
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
cube([ow, od, oh]);
|
||||||
|
}
|
||||||
|
|
||||||
|
union() {
|
||||||
|
color("SlateGray") union() {
|
||||||
|
// right cut (+x)
|
||||||
|
rotate([0, 15, 0]) translate([-8, -ep, 0]) cube([8, od + 2*ep, 2*oh]);
|
||||||
|
|
||||||
|
// left cut (-x)
|
||||||
|
translate([ow, -ep, 0]) rotate([0, -15, 0]) cube([8, od + 2*ep, 2*oh]);
|
||||||
|
|
||||||
|
// front cut (-y)
|
||||||
|
rotate([-20, 0, 0]) translate([-ep, -8, 0]) cube([ow + 2*ep, 8, 2*oh]);
|
||||||
|
|
||||||
|
// back cut (+y)
|
||||||
|
translate([-ep, od, 0]) rotate([5, 0, 0]) cube([ow + 2*ep, 8, 2*oh]);
|
||||||
|
|
||||||
|
// top cut
|
||||||
|
translate([ow/2, od/2 + 6, ow*sphMul + oh - 1.4]) sphere(r=ow*sphMul);
|
||||||
|
}
|
||||||
|
|
||||||
|
// inside recess
|
||||||
|
color("SeaGreen") union() {
|
||||||
|
translate([(ow - iw)/2, (od - id)/2 + 1, -ep]) cube([iw , id, ih + ep]);
|
||||||
|
translate([(ow - iw)/2, (od - id)/2 + 1, ih]) rotate([0, 15, 0]) translate([0, 0, -ih-ep]) cube([2 , id, ih + ep]);
|
||||||
|
translate([iw + (ow - iw)/2, (od - id)/2 + 1, ih]) rotate([0, -15, 0]) translate([-2, 0, -ih-ep]) cube([2 , id, ih + ep]);
|
||||||
|
translate([(ow - iw)/2, (od - id)/2 + 1, ih]) rotate([-20, 0, 0]) translate([0, 0, -ih-ep]) cube([iw , 4, ih + ep]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
cw = 4.3; // cross width
|
||||||
|
ct = 1.3; // cross thickness
|
||||||
|
|
||||||
|
// inner cylinder
|
||||||
|
color("DimGray") translate([ow/2, od/2, 1.4]) cylinder(d=5.3, h=ih - 1.4);
|
||||||
|
|
||||||
|
// inner cross recess (post hole)
|
||||||
|
color("MediumSeaGreen") translate([ow/2, od/2, 1-ep]) union() {
|
||||||
|
translate([-(ct/2), -(cw/2), 0]) cube([ct, cw, ih - 2 + ep]);
|
||||||
|
translate([-(cw/2), -(ct/2), 0]) cube([cw, ct, ih - 2 + ep]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
color("Gainsboro") union() {
|
||||||
|
translate([-1.8, 0, 0]) rotate([0, 0, 45]) translate([0, od/2 + 2.8, oh-1]) rotate([45, 0, 0]) cube([8, 2, 8], center=true);
|
||||||
|
translate([1.8, 0, 0]) rotate([0, 0, -45]) translate([0, od/2 + 2.8, oh-1]) rotate([45, 0, 0]) cube([8, 2, 8], center=true);
|
||||||
|
|
||||||
|
translate([-1.8, 1, 0]) rotate([0, 0, 135]) translate([0, od/2 + 2.8, oh-1.8]) rotate([45, 0, 0]) cube([8, 2, 8], center=true);
|
||||||
|
translate([1.8, 1, 0]) rotate([0, 0, -135]) translate([0, od/2 + 2.8, oh-1.8]) rotate([45, 0, 0]) cube([8, 2, 8], center=true);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user