Files
2025-06-30 17:14:30 +02:00

131 lines
3.9 KiB
OpenSCAD

$fn=60;
include<threads.scad>
include <BOSL2/std.scad>
include <BOSL2/shapes2d.scad>
include <boltsos_0.4.1/BOLTS.scad>
// Sight
color("grey", alpha=1) {
// Base
difference() {
translate([0,-5,0]) cuboid([20,50,40], rounding=2);
xcyl(l=20, d=12.5);
}
translate([0,-30 ,0]) rotate([-90,0,0]) tube(od=15, wall=3, h=7, chamfer=0.5);
// Eye
translate([2.5,0,0]) {
rotate([0,90,0]) {
tube(od=12, wall=3, h=22, chamfer=0.5);
translate([0,0,14.5]) tube(h=10, or1=6, or2=20, wall=3, chamfer=0.5);
}
}
}
// Screws
// Top
translate ([0,0,83.5]) rotate([0,180,0]) {
cylinder(h=15, d=14, $fn=6);
translate([0,0,15]) mirror([0,1,0]) RodStart(20, 3, thread_len=30, thread_diam=15, thread_pitch=4);
}
// Right
translate ([0,83.5,0]) rotate([90,0,0]) {
cylinder(h=15, d=14, $fn=6);
translate([0,0,15]) mirror([0,1,0]) RodStart(20, 3, thread_len=30, thread_diam=15, thread_pitch=4);
}
// Horizontal blades
color("green") {
// Haut
translate([0,0,22.5]) {
mirror([0,1,0]) RodEnd(20, 30, thread_len=31, thread_diam=16, thread_pitch=4);
translate([0,-2.5,0]) cuboid([20,105,5], rounding=1);
}
translate([0,-50,0]) {
rotate([90,0,0]) tube(od=20, wall=5.5, h=5, rounding=1);
}
translate([0,-52.5,7.5]) rotate([-90,0,0]) cuboid([20,35,5], rounding=1);
// Bas
union() {
translate([0,0,-25]) cuboid([20,80,10], rounding=1);
translate([0,15,-30]) tube(od=11, wall=1, h=5);
}
}
// Vertical blades
color("pink") {
// Droite
rotate([-90,0,0]) {
translate([0,0,22.5]) {
mirror([0,1,0]) RodEnd(20, 30, thread_len=31, thread_diam=16, thread_pitch=4);
cuboid([20,22,5], rounding=1);
}
}
// Gauche
* union() {
translate([0,-52,0]) ycyl(l=32, d=12, rounding=1);
translate([0,-67.5,9.5]) rotate([-90,0,0]) cuboid([20,31,5], rounding=1);
}
}
// Springs
color("orange", alpha=.5) {
translate([0,15,-35]) zcyl(l=9.5, d=9);
translate([0,-15,-35]) zcyl(l=9.5, d=9);
translate([0,-40,-0]) ycyl(l=20, d=9);
}
// Enclosure
outerWidth=30;
outerLength=141;
innerWidth=22;
innerLength=135;
color("cyan", alpha=0.5) {
translate([0,0,19]) difference() {
union() {
translate([0,0,10]) prismoid(size1=[outerWidth,outerLength], size2=[outerWidth,25], h=43, rounding=5);
translate([0,0,-25]) cuboid([outerWidth,outerLength,70], rounding=5, edges=[FRONT+RIGHT,FRONT+LEFT,BACK+RIGHT,BACK+LEFT]);
}
translate([0,0,-25]) cuboid([innerWidth,innerLength,70], rounding=1);
translate([0,0,10]) prismoid(size1=[innerWidth,innerLength], size2=[innerWidth,30], h=40, rounding=5);
translate([0,0,-19]) {
xcyl(l=60, d=38);
* cuboid([60,35,35], rounding=15);
translate([0,70,0]) ycyl(l=20, r=7);
translate([0,0,70]) zcyl(l=20, r=7);
}
}
difference() {
union() {
translate([0,60,-38]) cuboid([30,17,6], rounding=3);
translate([0,-60,-38]) cuboid([30,17,6], rounding=3);
}
translate([0,60,-38.5]) zcyl(l=10, r=2.25);
translate([0,60,-37]) rotate([180,0,0]) DIN931("M4");
translate([0,-60,-38.5]) zcyl(l=10, r=2.25);
translate([0,-60,-37]) rotate([180,0,0]) DIN931("M4");
}
}
// Cover
* translate([0,0,-44.5]) {
difference() {
cuboid([50,160,7], rounding=5, edges=[TOP,FRONT+RIGHT,FRONT+LEFT,BACK+RIGHT,BACK+LEFT]);
translate([0,60,3.5]) {
zcyl(l=10, r=2.25);
translate([0,0,-5]) zcyl(l=4, r=3.3);
}
translate([0,-60,3.5]) {
zcyl(l=10, r=2.25);
translate([0,0,-5]) zcyl(l=4, r=3.3);
}
}
translate([0,15,4]) {
zcyl(l=2, r=5.5);
tube(od=11, wall=1, h=5);
}
translate([0,-15,4]) {
zcyl(l=2, r=5.5);
tube(od=11, wall=1, h=5);
}
}