Updates
This commit is contained in:
183
tir_sportif/dioptre-pédagogique/scad/screws.scad
Normal file
183
tir_sportif/dioptre-pédagogique/scad/screws.scad
Normal file
@@ -0,0 +1,183 @@
|
||||
$fn=80;
|
||||
|
||||
include <threads.scad>
|
||||
include <BOSL2/std.scad>
|
||||
include <BOSL2/gears.scad>
|
||||
|
||||
sl=75;
|
||||
td=11;
|
||||
tp=4;
|
||||
sw=5;
|
||||
cp=7;
|
||||
te1=12;
|
||||
te2=25;
|
||||
pa=20;
|
||||
|
||||
module l_screw() {
|
||||
mirror([0,1,0]) RodStart(sw*2, sw, thread_len=sl, thread_diam=td, thread_pitch=tp);
|
||||
translate([0,0,sw]) {
|
||||
linear_extrude(sw, center=true)
|
||||
spur_gear2d(circ_pitch=cp, teeth=te1, pressure_angle=pa);
|
||||
}
|
||||
/* translate([0,0,sl+sw]) zcyl(l=sw, d=td+1, rounding=1); */
|
||||
}
|
||||
module l_bolt() {
|
||||
difference() {
|
||||
cuboid([20,20,20], rounding=1);
|
||||
zcyl(l=20, d=15);
|
||||
}
|
||||
translate([0,0,-10]) mirror([0,1,0]) RodEnd(15, 20, thread_len=20, thread_diam=12, thread_pitch=4);
|
||||
}
|
||||
module r_screw() {
|
||||
RodStart(sw*2, sw, thread_len=sl, thread_diam=td, thread_pitch=tp);
|
||||
translate([0,0,sw]) {
|
||||
linear_extrude(sw, center=true)
|
||||
spur_gear2d(circ_pitch=cp, teeth=te1, pressure_angle=pa);
|
||||
}
|
||||
/* translate([0,0,sl+sw]) zcyl(l=sw, d=td+1, rounding=1); */
|
||||
}
|
||||
module r_bolt() {
|
||||
difference() {
|
||||
cuboid([20,20,20], rounding=1);
|
||||
zcyl(l=20, d=15);
|
||||
}
|
||||
translate([0,0,-10]) RodEnd(15, 20, thread_len=20, thread_diam=12, thread_pitch=4);
|
||||
}
|
||||
module plate() {
|
||||
/* Main */
|
||||
cuboid([45,3,45], rounding=1);
|
||||
translate([21,13,16]) cuboid([3,28,5], rounding=1);
|
||||
translate([-21,13,16]) cuboid([3,28,5], rounding=1);
|
||||
translate([21,13,-16]) cuboid([3,28,5], rounding=1);
|
||||
translate([-21,13,-16]) cuboid([3,28,5], rounding=1);
|
||||
//
|
||||
translate([16,-13,21]) cuboid([5,28,3], rounding=1);
|
||||
translate([-16,-13,21]) cuboid([5,28,3], rounding=1);
|
||||
translate([16,-13,-21]) cuboid([5,28,3], rounding=1);
|
||||
translate([-16,-13,-21]) cuboid([5,28,3], rounding=1);
|
||||
//
|
||||
difference() {
|
||||
cuboid([30,14,30], rounding=1);
|
||||
translate([0,-6,0]) cuboid([21,4,55], rounding=1);
|
||||
translate([0,6,0]) cuboid([55,4,21], rounding=1);
|
||||
}
|
||||
// Front
|
||||
translate([0,-26,0]) cuboid([45,3,45], rounding=1);
|
||||
translate([0,-31,0]) rotate([90,0,0]) tube(od=16, wall=2, h=10, rounding=1);
|
||||
// Back
|
||||
translate([0,26,0]) cuboid([45,3,45], rounding=1);
|
||||
}
|
||||
|
||||
/*[screws]*/
|
||||
/*[x_axis]*/
|
||||
color("cyan") {
|
||||
translate([-14,0,0]) l_bolt();
|
||||
translate([14,0,0]) l_bolt();
|
||||
}
|
||||
color("blue") {
|
||||
translate ([-14,0,sl/2+5]) rotate([0,180,14]) {
|
||||
translate([0,0,-10]) cylinder(h=15, d=td+1, $fn=6);
|
||||
l_screw();
|
||||
}
|
||||
translate ([14,0,sl/2+5]) rotate([0,180,0]) l_screw();
|
||||
}
|
||||
/*[y_axis */
|
||||
color("pink") {
|
||||
translate([-42,0,0]) rotate([-90,0,0]) r_bolt();
|
||||
translate([42,0,0]) rotate([-90,0,0]) l_bolt();
|
||||
}
|
||||
|
||||
color("red") {
|
||||
translate ([-42,-sl/2-5,0]) rotate([-90,6,0]) r_screw();
|
||||
|
||||
translate ([0,-sl/2,0]) rotate([90,0,0]) {
|
||||
cylinder(h=15, d=td+1, $fn=6);
|
||||
linear_extrude(sw, center=true)
|
||||
spur_gear2d(circ_pitch=cp, teeth=te2, pressure_angle=pa);
|
||||
}
|
||||
|
||||
translate ([42,-sl/2-5,0]) rotate([-90,-6,0]) l_screw();
|
||||
}
|
||||
/*[plates]*/
|
||||
translate([-28,0,0]) rotate([0,0,-90]) plate();
|
||||
translate([28,0,0]) rotate([0,0,90]) plate();
|
||||
|
||||
/*[enclosure]*/
|
||||
* color("white", alpha=.5) {
|
||||
difference() {
|
||||
cuboid([126,86,86], rounding=1);
|
||||
translate([3,0,0]) cuboid([126,80,80]);
|
||||
translate([0,0,41.5]) cuboid([70,50,5]);
|
||||
translate([0,-41.5,0]) cuboid([114,4,74]);
|
||||
cuboid([140,55,55], rounding=20);
|
||||
translate([-14,0,38.5]) zcyl(l=10, d=td+2);
|
||||
translate([14,0,40]) zcyl(l=4, d=td+1);
|
||||
translate([0,-38.5,0]) ycyl(l=10, d=td+2);
|
||||
translate([-42,-40,0]) ycyl(l=4, d=td+1);
|
||||
translate([42,-40,0]) ycyl(l=4, d=td+1);
|
||||
}
|
||||
color("grey") {
|
||||
translate([0,-33,0]) {
|
||||
ycyl(l=3, d=20);
|
||||
cuboid([10,2,85]);
|
||||
}
|
||||
}
|
||||
translate([-14,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1);
|
||||
translate([14,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1);
|
||||
rotate([90,0,0]) {
|
||||
translate([-42,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1);
|
||||
translate([42,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1);
|
||||
}
|
||||
/*[covers]*/
|
||||
// Top
|
||||
translate ([0,0,65]) {
|
||||
difference() {
|
||||
union() {
|
||||
cuboid([76,56,2], rounding=1);
|
||||
translate([0,0,-1.5]) cuboid([70,50,5], rounding=1);
|
||||
}
|
||||
translate([-14,0,-1]) zcyl(l=6, d=td+2);
|
||||
translate([14,0,-3]) zcyl(l=3, d=td+1);
|
||||
}
|
||||
}
|
||||
// Right
|
||||
translate ([0,-65,0]) {
|
||||
difference() {
|
||||
union() {
|
||||
cuboid([126,2,86], rounding=1);
|
||||
translate([0,1.5,0]) cuboid([113,5,73], rounding=1);
|
||||
}
|
||||
translate([0,1,0]) ycyl(l=6, d=td+2);
|
||||
translate([-42,3,0]) ycyl(l=3, d=td+1);
|
||||
translate([42,3,0]) ycyl(l=3, d=td+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*[grp_holder]*/
|
||||
* translate([68,0,0]) rotate([0,0,-90]) {
|
||||
difference() {
|
||||
union() {
|
||||
translate([0,0,16]) {
|
||||
rotate([90,0,0]) {
|
||||
linear_extrude(6, center=true)
|
||||
trapezoid(55, 20, 80, rounding=5);
|
||||
}
|
||||
}
|
||||
translate([0,0,100]) {
|
||||
cuboid([126,6,126], rounding=1);
|
||||
}
|
||||
}
|
||||
translate([0,0,23]) {
|
||||
rotate([90,0,0]) {
|
||||
linear_extrude(6, center=true)
|
||||
trapezoid(27, 30, 60, rounding=5);
|
||||
}
|
||||
}
|
||||
translate([0,-1.5,100]) cuboid([121,5,121]);
|
||||
* translate([0,0,100]) cuboid([116,7,116], rounding=2);
|
||||
ycyl(l=6, d=10, rounding=-3);
|
||||
}
|
||||
/*[plexi]*/
|
||||
color("cyan", alpha=.3) translate([0,-1,100]) cuboid([120,4,120], rounding=1);
|
||||
}
|
||||
Reference in New Issue
Block a user