59 lines
1.4 KiB
OpenSCAD
59 lines
1.4 KiB
OpenSCAD
real_diam = 25.8;
|
|
real_depth = 40.2;
|
|
fudge = 0.1;
|
|
diam = real_diam + fudge;
|
|
depth = real_depth + fudge;
|
|
detail = 100;
|
|
thickness = 3;
|
|
plate = 80;
|
|
front = 32;
|
|
focus = 1.2;
|
|
|
|
module mock_scope(x, y) {
|
|
cylinder(h = depth + y, d = diam + x, $fn=detail);
|
|
}
|
|
|
|
module slices() {
|
|
translate([-diam,-focus/2,0]) cube([diam*2, focus, depth+0.02]);
|
|
rotate([0,0,90]) translate([-diam,-focus/2,0]) cube([diam*2, focus, depth+0.02]);
|
|
}
|
|
|
|
module aim_slices() {
|
|
difference() {
|
|
slices();
|
|
translate([0,0,depth-diam/2]) rotate([0,0,45]) cylinder(h=diam/2+2, d1=diam*3.14159/2, d2=focus*3.14159/2, $fn=4);
|
|
translate([0,0,1.2]) mock_scope(0.01,-diam/2);
|
|
|
|
}
|
|
}
|
|
|
|
module mock_scope2(x, y) {
|
|
difference() {
|
|
mock_scope(x, y);
|
|
aim_slices();
|
|
}
|
|
}
|
|
|
|
module billet() {
|
|
union() {
|
|
cylinder(h = depth, d = diam + thickness, $fn=detail);
|
|
cylinder(h = depth/front, d = (diam + thickness)*1.8, $fn=detail);
|
|
translate([-plate/2,-thickness/2,0]) cube([plate, thickness, depth/front]);
|
|
rotate([0,0,90]) translate([-plate/2,-thickness/2,0]) cube([plate, thickness, depth/front]);
|
|
//inner_cut();
|
|
}
|
|
}
|
|
|
|
|
|
module product() {
|
|
difference() {
|
|
billet();
|
|
translate([0,0,-0.01]) mock_scope2(0,thickness*2);
|
|
};
|
|
}
|
|
|
|
|
|
|
|
product();
|
|
//mock_scope2(0,0);
|
|
|