116 lines
3.2 KiB
OpenSCAD
116 lines
3.2 KiB
OpenSCAD
$fn=60;
|
|
|
|
include<threads.scad>
|
|
include <BOSL2/std.scad>
|
|
include <BOSL2/shapes2d.scad>
|
|
include <boltsos_0.4.1/BOLTS.scad>
|
|
|
|
module bolt() {
|
|
difference() {
|
|
union() {
|
|
cuboid([26,21,10], rounding=1);
|
|
translate([-10,0,0]) cuboid([6,66,10], rounding=1);
|
|
}
|
|
translate([-2.5,0,0]) zcyl(l=10, d=15);
|
|
}
|
|
translate([-2.5,0,-5]) mirror([0,1,0]) RodEnd(15, 20, thread_len=20, thread_diam=12, thread_pitch=4);
|
|
}
|
|
|
|
module blade() {
|
|
difference () {
|
|
translate([-7.5,0,0]) cuboid([26,8,66], rounding=1);
|
|
translate([0,3.5,0]) cuboid([6,5,70], rounding=1);
|
|
}
|
|
translate([-7,-4,20]) ycyl(l=3, d=8, rounding=1);
|
|
translate([-7,-4,-20]) ycyl(l=3, d=8, rounding=1);
|
|
}
|
|
|
|
module screw() {
|
|
cylinder(h=15, d=12, $fn=6);
|
|
translate([0,0,15]) mirror([0,1,0]) RodStart(20, 3, thread_len=40, thread_diam=12, thread_pitch=4);
|
|
}
|
|
|
|
* bolt();
|
|
* blade();
|
|
* screw();
|
|
|
|
// Screws
|
|
color("blue") {
|
|
translate([-5,94,0]) rotate([90,0,0]) screw();
|
|
translate([-5,0,94]) rotate([180,0,0]) screw();
|
|
}
|
|
|
|
// Horizontal blades
|
|
color("green") {
|
|
// Right
|
|
translate([-2.5,65,0]) rotate([90,0,0]) bolt();
|
|
// Left
|
|
translate([5,-62,0]) blade();
|
|
translate([-14,0,30]) cuboid([3,129,6], rounding=1);
|
|
translate([-14,0,-30]) cuboid([3,129,6], rounding=1);
|
|
}
|
|
|
|
// Vertictal blades
|
|
color("pink") {
|
|
// Top
|
|
translate([-2.5,0,65]) rotate([0,180,180]) bolt();
|
|
// Bottom
|
|
translate([5,0,-62]) rotate([90,0,0]) blade();
|
|
translate([-9.5,30.5,4]) cuboid([4,5,132], rounding=1);
|
|
translate([-9.5,-30.5,4]) cuboid([4,5,132], rounding=1);
|
|
}
|
|
|
|
// Springs
|
|
* color("orange", alpha=.5) {
|
|
translate([5,-76,20]) ycyl(l=8, d=9);
|
|
translate([5,-76,-20]) ycyl(l=8, d=9);
|
|
translate([5,20,-72]) zcyl(l=16, d=9);
|
|
translate([5,-20,-72]) zcyl(l=16, d=9);
|
|
}
|
|
|
|
// Target
|
|
color("grey", alpha=1) {
|
|
translate([3,0,0]) {
|
|
difference() {
|
|
cuboid([1,90,90]);
|
|
translate([0,40,40]) xcyl(l=3, d=4);
|
|
translate([0,40,-40]) xcyl(l=3, d=4);
|
|
translate([0,-40,-40]) xcyl(l=3, d=4);
|
|
translate([0,-40,40]) xcyl(l=3, d=4);
|
|
}
|
|
}
|
|
}
|
|
color("red", alpha=0.5) translate([4,0,0]) xcyl(l=1, d=80);
|
|
|
|
// Box
|
|
color("white", alpha=.5) {
|
|
difference() {
|
|
translate([-6,0,0]) cuboid([33,166,166], rounding=1);
|
|
translate([-2,0,0]) cuboid([29,160,160], rounding=1);
|
|
translate([-5,81,0]) ycyl(l=6, d=13);
|
|
translate([-5,0,81]) zcyl(l=6, d=13);
|
|
}
|
|
// Corners
|
|
translate([-2,0,0]) {
|
|
translate([-6,58,58]) cuboid([22,47,47], rounding=1);
|
|
translate([-6,-58,58]) cuboid([22,47,47], rounding=1);
|
|
translate([-6,58,-58]) cuboid([22,47,47], rounding=1);
|
|
translate([-6,-58,-58]) cuboid([22,47,47], rounding=1);
|
|
}
|
|
// Pins
|
|
translate([3,40,40]) xcyl(l=3, d=3, rounding=1);
|
|
translate([3,40,-40]) xcyl(l=3, d=3, rounding=1);
|
|
translate([3,-40,-40]) xcyl(l=3, d=3, rounding=1);
|
|
translate([3,-40,40]) xcyl(l=3, d=3, rounding=1);
|
|
}
|
|
|
|
// Grp Plate
|
|
* color("cyan", alpha=.3) translate([5.5,0,0]) cuboid([4,120,120], rounding=1);
|
|
|
|
// Cover
|
|
* color("white", alpha=0.5) {
|
|
translate([15,0,0]) difference() {
|
|
cuboid([3,166,166], rounding=1);
|
|
xcyl(l=5, d=80);
|
|
}
|
|
} |