Updates
This commit is contained in:
3
tir_sportif/dioptre-pédagogique/scad/README.md
Normal file
3
tir_sportif/dioptre-pédagogique/scad/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
### OpenSCAD files
|
||||
|
||||
Edit with [OpenSCAD](https://openscad.org/index.html).
|
||||
52
tir_sportif/dioptre-pédagogique/scad/ballJoint.scad
Normal file
52
tir_sportif/dioptre-pédagogique/scad/ballJoint.scad
Normal file
@@ -0,0 +1,52 @@
|
||||
// Ball joint in SCAD by Erik de Bruijn
|
||||
// Based on a design by Makerblock ( http://makerblock.com/2010/03/blender-help/ )
|
||||
size=10; // size of the ball joint
|
||||
joint_spacing =0.5; // some space between them?
|
||||
joint_thickness = 2; // thickness of the arms
|
||||
joint_arms = 5; // how many arms do you want?
|
||||
arm_width = 10; // actually: how much is removed from the arms Larger values will remove more
|
||||
|
||||
//render settings
|
||||
$fs=0.8; // def 1, 0.2 is high res
|
||||
$fa=4;//def 12, 3 is very nice
|
||||
|
||||
//print();
|
||||
demo(); // turn on animation, FPS 15, steps 200
|
||||
|
||||
module demo()
|
||||
{
|
||||
ball();
|
||||
rotate([sin($t*720)*28,cos($t*360*4)*28,cos($t*360*2)*20]) joint();
|
||||
|
||||
}
|
||||
module print()
|
||||
{
|
||||
translate([size*2+10,0,0]) ball();
|
||||
rotate([0,180,0]) joint();
|
||||
}
|
||||
|
||||
module ball()
|
||||
{
|
||||
sphere(r=size);
|
||||
translate([0,0,-size]) cylinder(r1=8,r2=6,h=3);
|
||||
translate([0,0,-size-3]) cylinder(r=8,h=3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
module joint()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
sphere(r=size+joint_spacing+joint_thickness);
|
||||
sphere(r=size+joint_spacing);
|
||||
translate([0,0,-size-3]) cube([size+joint_spacing+joint_thickness+25,size+joint_spacing+joint_thickness+25,18],center=true);
|
||||
for(i=[0:joint_arms])
|
||||
{
|
||||
rotate([0,0,360/joint_arms*i]) translate([-arm_width/2,0, -size/2-4])
|
||||
cube([arm_width,size+joint_spacing+joint_thickness+20,size+6]);
|
||||
}
|
||||
}
|
||||
translate([0,0,size-2]) cylinder(r2=8,r1=8,h=5);
|
||||
|
||||
}
|
||||
38
tir_sportif/dioptre-pédagogique/scad/blades.scad
Normal file
38
tir_sportif/dioptre-pédagogique/scad/blades.scad
Normal file
@@ -0,0 +1,38 @@
|
||||
$fn=60;
|
||||
|
||||
include<threads.scad>
|
||||
include <BOSL2/std.scad>
|
||||
include <BOSL2/shapes2d.scad>
|
||||
include <boltsos_0.4.1/BOLTS.scad>
|
||||
|
||||
// Lames horizontales
|
||||
color("green") {
|
||||
// Haut
|
||||
rotate([0,90,0]) translate([-10,0,2.5]) {
|
||||
translate([0,0,22.5]) {
|
||||
mirror([0,1,0]) RodEnd(20, 32, thread_len=32, 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([80,0,5]) {
|
||||
cuboid([20,80,10], rounding=1);
|
||||
translate([0,15,5]) tube(od=11, wall=1, h=5);
|
||||
translate([0,-15,5]) tube(od=11, wall=1, h=5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Lames verticales
|
||||
color("pink") {
|
||||
// Droite
|
||||
translate([-20,0,10]) rotate([0,90,0]) {
|
||||
mirror([0,1,0]) RodEnd(20, 30, thread_len=31, thread_diam=16, thread_pitch=4);
|
||||
cuboid([20,22,5], rounding=1);
|
||||
}
|
||||
}
|
||||
116
tir_sportif/dioptre-pédagogique/scad/blades_grp.scad
Normal file
116
tir_sportif/dioptre-pédagogique/scad/blades_grp.scad
Normal file
@@ -0,0 +1,116 @@
|
||||
$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);
|
||||
}
|
||||
}
|
||||
53
tir_sportif/dioptre-pédagogique/scad/blades_v2.scad
Normal file
53
tir_sportif/dioptre-pédagogique/scad/blades_v2.scad
Normal file
@@ -0,0 +1,53 @@
|
||||
$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);
|
||||
}
|
||||
|
||||
* bolt();
|
||||
* blade();
|
||||
|
||||
// Horizontal blades
|
||||
color("green") {
|
||||
translate([-50,0,15]) rotate([0,-90,0]) {
|
||||
// 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") {
|
||||
translate([50,0,15]) rotate([-90,-90,0]) {
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
29
tir_sportif/dioptre-pédagogique/scad/cover.scad
Normal file
29
tir_sportif/dioptre-pédagogique/scad/cover.scad
Normal file
@@ -0,0 +1,29 @@
|
||||
$fn=60;
|
||||
|
||||
include<threads.scad>
|
||||
include <BOSL2/std.scad>
|
||||
include <BOSL2/shapes2d.scad>
|
||||
include <boltsos_0.4.1/BOLTS.scad>
|
||||
|
||||
// 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);
|
||||
}
|
||||
/*}*/
|
||||
131
tir_sportif/dioptre-pédagogique/scad/dioptre.scad
Normal file
131
tir_sportif/dioptre-pédagogique/scad/dioptre.scad
Normal file
@@ -0,0 +1,131 @@
|
||||
$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);
|
||||
}
|
||||
}
|
||||
319
tir_sportif/dioptre-pédagogique/scad/dioptre_v2.scad
Normal file
319
tir_sportif/dioptre-pédagogique/scad/dioptre_v2.scad
Normal file
@@ -0,0 +1,319 @@
|
||||
$fn=60;
|
||||
|
||||
// Ball joint
|
||||
size=8; // size of the ball joint
|
||||
joint_spacing =0.75; // some space between them?
|
||||
joint_thickness = 2; // thickness of the arms
|
||||
joint_arms = 4; // how many arms do you want?
|
||||
arm_width = 7; // actually: how much is removed from the arms Larger values will remove more
|
||||
|
||||
// Finger
|
||||
f_len=45;
|
||||
f_dia=5;
|
||||
|
||||
// Render settings
|
||||
$fs=0.8; // def 1, 0.2 is high res
|
||||
$fa=4;//def 12, 3 is very nice
|
||||
|
||||
/*[Torus]*/
|
||||
ShowTorus = false;
|
||||
Torus_Diameter = 9.5; //[.1:.01:400]
|
||||
Torus_Circle_Radius = 7; //[.1:.01:400]
|
||||
Torus_Fragments = 60; //[1:.01:200]
|
||||
Rotate_TorusX = 90; //[0:.01:360]
|
||||
Rotate_TorusY = 0; //[0:.01:360]
|
||||
Rotate_TorusZ = 0; //[0:.01:360]
|
||||
Move_TorusX = 0; //[-400:.01:400]
|
||||
Move_TorusY = 0; //[-400:.01:400]
|
||||
Move_TorusZ = -18; //[-400:.01:400]
|
||||
|
||||
include<ujoint.scad>
|
||||
include<threads.scad>
|
||||
include <BOSL2/std.scad>
|
||||
include <BOSL2/shapes2d.scad>
|
||||
include <BOSL2/gears.scad>
|
||||
include <boltsos_0.4.1/BOLTS.scad>
|
||||
|
||||
module 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 ball() {
|
||||
sphere(r=size);
|
||||
/* translate([0,0,-size]) cylinder(r1=f_dia-2,r2=f_dia-4,h=3); */
|
||||
translate([0,0,-f_len/2-3]) /* cylinder(r=8,h=3); */ zcyl(l=f_len, d=f_dia, rounding=2.5);
|
||||
}
|
||||
|
||||
module ball2() {
|
||||
sphere(r=size);
|
||||
/* translate([0,0,-size]) cylinder(r1=f_dia-2,r2=f_dia-4,h=3); */
|
||||
translate([0,0,-f_len/3+3]) /* cylinder(r=8,h=3); */ tube(od=f_dia+3, wall=1, l=f_len/3, rounding=1);
|
||||
}
|
||||
|
||||
module joint() {
|
||||
difference()
|
||||
{
|
||||
sphere(r=size+joint_spacing+joint_thickness);
|
||||
sphere(r=size+joint_spacing);
|
||||
translate([0,0,-size-3]) cube([size+joint_spacing+joint_thickness+25,size+joint_spacing+joint_thickness+25,18],center=true);
|
||||
for(i=[0:joint_arms])
|
||||
{
|
||||
rotate([0,0,360/joint_arms*i]) translate([-arm_width/2,0, -size/2-4])
|
||||
cube([arm_width,size+joint_spacing+joint_thickness+20,size+6]);
|
||||
}
|
||||
}
|
||||
translate([0,0,size-2]) cylinder(r2=8,r1=8,h=5);
|
||||
|
||||
}
|
||||
|
||||
module Torus() {
|
||||
InnerRadius = Torus_Circle_Radius/2;
|
||||
OuterRadius = Torus_Diameter/2-Torus_Circle_Radius/2;
|
||||
rotate(a = [Rotate_TorusX, 0, 0])
|
||||
rotate(a = [0, Rotate_TorusY, 0])
|
||||
rotate(a = [0, 0, Rotate_TorusZ])
|
||||
translate([Move_TorusX, 0, 0])
|
||||
translate([0, Move_TorusY, 0])
|
||||
translate([0, 0, Move_TorusZ])
|
||||
|
||||
if (ShowTorus) {
|
||||
rotate_extrude(convexity = 10, $fn = Torus_Fragments)
|
||||
translate([Torus_Diameter, 0, 0])
|
||||
circle(r = Torus_Circle_Radius, $fn = 144);
|
||||
}
|
||||
else {
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*[screws]*/
|
||||
color("blue") {
|
||||
translate ([0,14,51]) rotate([0,180,0]) {
|
||||
cylinder(h=15, d=12, $fn=6);
|
||||
translate([0,0,15]) {
|
||||
mirror([0,1,0]) RodStart(20, 3, thread_len=68, thread_diam=11, thread_pitch=4);
|
||||
linear_extrude(5)
|
||||
spur_gear2d(circ_pitch=7, teeth=16, pressure_angle=14);
|
||||
}
|
||||
}
|
||||
translate ([0,52,51]) rotate([0,180,0]) {
|
||||
* cylinder(h=15, d=12, $fn=6);
|
||||
translate([0,0,15]) {
|
||||
mirror([0,1,0]) RodStart(20, 3, thread_len=68, thread_diam=11, thread_pitch=4);
|
||||
linear_extrude(5)
|
||||
rotate([0,0,10]) spur_gear2d(circ_pitch=7, teeth=16, pressure_angle=14);
|
||||
}
|
||||
}
|
||||
}
|
||||
color("red") {
|
||||
translate ([51,-14,0]) rotate([0,-90,0]) {
|
||||
cylinder(h=15, d=12, $fn=6);
|
||||
translate([0,0,15]) {
|
||||
mirror([0,1,0]) RodStart(20, 3, thread_len=68, thread_diam=11, thread_pitch=4);
|
||||
linear_extrude(5)
|
||||
spur_gear2d(circ_pitch=7, teeth=16, pressure_angle=14);
|
||||
}
|
||||
}
|
||||
translate ([36.5,33,0]) rotate([0,-90,0]) {
|
||||
linear_extrude(5)
|
||||
rotate([0,0,8]) spur_gear2d(circ_pitch=7, teeth=24, pressure_angle=14);
|
||||
}
|
||||
translate ([51,80,0]) rotate([0,-90,0]) {
|
||||
* cylinder(h=15, d=12, $fn=6);
|
||||
translate([0,0,15]) {
|
||||
mirror([0,1,0]) RodStart(20, 3, thread_len=68, thread_diam=11, thread_pitch=4);
|
||||
linear_extrude(5)
|
||||
spur_gear2d(circ_pitch=7, teeth=16, pressure_angle=14);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*[rings]*/
|
||||
* color("grey") {
|
||||
translate ([0,15,-34.5]) {
|
||||
tube(od=15, wall=1.8, h=5, rounding=1);
|
||||
}
|
||||
translate ([-34.5,-15,0]) {
|
||||
rotate([0,90,0]) {
|
||||
tube(od=15, wall=1.8, h=5, rounding=1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*[rotule]*/
|
||||
/*[y_axis]*/
|
||||
* color("cyan") {
|
||||
translate([0,14,0]) {
|
||||
bolt();
|
||||
}
|
||||
}
|
||||
/*[x_axis */
|
||||
* color("pink") {
|
||||
translate([0,-14,0]) {
|
||||
rotate([0,90,0]) {
|
||||
bolt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*[plate1]*/
|
||||
translate([0,0,0]) {
|
||||
/* 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);
|
||||
// Sight
|
||||
* translate([0,-33,0]) {
|
||||
rotate([90,0,0]) {
|
||||
tube(od=12, wall=3, h=12, chamfer=0.5);
|
||||
translate([0,0,10.5]) tube(h=10, or1=6, or2=20, wall=3, chamfer=0.5);
|
||||
}
|
||||
}
|
||||
// Back
|
||||
translate([0,26,0]) cuboid([45,3,45], rounding=1);
|
||||
// Joint
|
||||
* translate([0,38,0]) rotate([90,0,0]) joint();
|
||||
}
|
||||
|
||||
/*[plate2]*/
|
||||
translate([0,66,0]) rotate([0,0,180]) {
|
||||
/* 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);
|
||||
// Sight
|
||||
* translate([0,-33,0]) {
|
||||
rotate([90,0,0]) {
|
||||
tube(od=12, wall=3, h=12, chamfer=0.5);
|
||||
translate([0,0,10.5]) tube(h=10, or1=6, or2=20, wall=3, chamfer=0.5);
|
||||
}
|
||||
}
|
||||
// Back
|
||||
translate([0,26,0]) cuboid([45,3,45], rounding=1);
|
||||
// Joint
|
||||
* translate([0,38,0]) rotate([90,0,0]) joint();
|
||||
}
|
||||
|
||||
/*[balls]*/
|
||||
* color("orange") {
|
||||
translate([0,38,0]) {
|
||||
rotate([90,0,0]) ball();
|
||||
}
|
||||
translate([0,98,0]) {
|
||||
rotate([-90,0,0]) ball2();
|
||||
}
|
||||
}
|
||||
|
||||
/*[enclosure]*/
|
||||
color("white", alpha=.5) {
|
||||
difference() {
|
||||
translate([0,15,0]) cuboid([80,100,80], rounding=1);
|
||||
translate([0,15,0]) cuboid([74,110,74], rounding=1);
|
||||
cuboid([60,40,60], rounding=20);
|
||||
translate([0,14,37.5]) {
|
||||
zcyl(l=10, d=14);
|
||||
}
|
||||
translate([37.5,-14,0]) {
|
||||
xcyl(l=10, d=14);
|
||||
}
|
||||
}
|
||||
translate([0,64,0]) {
|
||||
difference() {
|
||||
union() {
|
||||
cuboid([80,3,80], rounding=1);
|
||||
translate([0,39,100]) {
|
||||
cuboid([160,3,160], rounding=1);
|
||||
}
|
||||
}
|
||||
ycyl(l=3, d=f_dia+2, rounding=-1.5);
|
||||
translate([0,39,100]) {
|
||||
cuboid([110,4,110], rounding=1);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Screw guides
|
||||
translate ([-37,-15,0]) {
|
||||
rotate([0,90,0]) {
|
||||
tube(od=17, wall=1, h=4, rounding=1);
|
||||
}
|
||||
}
|
||||
translate ([0,15,-37]) {
|
||||
tube(od=17, wall=1, h=4, rounding=1);
|
||||
}
|
||||
// Back
|
||||
translate([0,114,0]) {
|
||||
cuboid([80,3,80], rounding=1);
|
||||
translate([0,0,100]) {
|
||||
cuboid([160,3,160], rounding=1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*[grp_holder]*/
|
||||
* translate([0,108,0]) {
|
||||
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=f_dia+.5, rounding=-3);
|
||||
}
|
||||
/*[plexi]*/
|
||||
color("cyan", alpha=.3) translate([0,-1,100]) cuboid([120,4,120], rounding=1);
|
||||
}
|
||||
/*[ball2]*/
|
||||
* translate([0,98,0]) rotate([-90,0,0]) joint();
|
||||
33
tir_sportif/dioptre-pédagogique/scad/enclosure.scad
Normal file
33
tir_sportif/dioptre-pédagogique/scad/enclosure.scad
Normal file
@@ -0,0 +1,33 @@
|
||||
$fn=60;
|
||||
|
||||
include<threads.scad>
|
||||
include <BOSL2/std.scad>
|
||||
include <BOSL2/shapes2d.scad>
|
||||
include <boltsos_0.4.1/BOLTS.scad>
|
||||
|
||||
// Enclosure
|
||||
color("cyan") {
|
||||
translate([0,0,19]) difference() {
|
||||
union() {
|
||||
translate([0,0,10]) prismoid(size1=[30,141], size2=[20,30], h=43, rounding=5);
|
||||
translate([0,0,-25]) cuboid([30,141,70], rounding=5, edges=[FRONT+RIGHT,FRONT+LEFT,BACK+RIGHT,BACK+LEFT]);
|
||||
}
|
||||
translate([0,0,-25]) cuboid([22,135,70], rounding=1);
|
||||
translate([0,0,10]) prismoid(size1=[22,135], size2=[20,30], h=40, rounding=5);
|
||||
translate([0,0,-19]) {
|
||||
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");
|
||||
}
|
||||
}
|
||||
66
tir_sportif/dioptre-pédagogique/scad/knob.scad
Normal file
66
tir_sportif/dioptre-pédagogique/scad/knob.scad
Normal file
@@ -0,0 +1,66 @@
|
||||
//knob parameters
|
||||
KNOB_HEIGHT=10;
|
||||
KNOB_DIAM=30;
|
||||
|
||||
//screw parameters
|
||||
SCREWHEAD_FACETOFACE=11;
|
||||
SCREWHEAD_DEPTH=8;
|
||||
THRU_HOLE_DIAM=0;
|
||||
|
||||
//grippy cutouts parameters
|
||||
NUM_GRIP_CUTOUTS=16;
|
||||
GRIP_CUTOUT_DIAM=4;
|
||||
CUTOUT_RADIUS_ADJ=1;
|
||||
|
||||
module FaceToFaceHex(width,height){
|
||||
cube([width/sqrt(3),width,height],center = true,$fn=64);
|
||||
rotate([0,0,120])cube([width/sqrt(3),width,height],center = true);
|
||||
rotate([0,0,240])cube([width/sqrt(3),width,height],center = true);
|
||||
|
||||
}
|
||||
// a=angle, r=radius of rotation
|
||||
module rotate_on_circle(angle, radius) {
|
||||
dx=radius*sin(angle);
|
||||
dy=radius*cos(angle);
|
||||
translate([dx,dy,0])
|
||||
children();
|
||||
}
|
||||
|
||||
difference(){
|
||||
//Knob
|
||||
union(){
|
||||
translate([0, 0, -(((KNOB_HEIGHT-SCREWHEAD_DEPTH)/2)+0.01)])
|
||||
cylinder(r=KNOB_DIAM/2, h=KNOB_HEIGHT, center=true,$fn=64);
|
||||
translate([0, 0, -(((KNOB_HEIGHT-SCREWHEAD_DEPTH+KNOB_HEIGHT)/2))]) {
|
||||
* cylinder(r=KNOB_DIAM/4, h=KNOB_HEIGHT/2, center=true,$fn=64);
|
||||
}
|
||||
};
|
||||
|
||||
//screw
|
||||
union(){
|
||||
//screwHead
|
||||
FaceToFaceHex(SCREWHEAD_FACETOFACE,SCREWHEAD_DEPTH);
|
||||
//screwHole
|
||||
translate([0, 0, -(((KNOB_HEIGHT+SCREWHEAD_DEPTH)/2)+0.001)])
|
||||
cylinder(r=THRU_HOLE_DIAM/2, h=KNOB_HEIGHT+KNOB_HEIGHT/2+0.001, center=true,$fn=64);
|
||||
};
|
||||
|
||||
//grippyCutouts
|
||||
for(i=[1:NUM_GRIP_CUTOUTS]){
|
||||
rot_angle=(360/NUM_GRIP_CUTOUTS)*i;
|
||||
translate([0,0,-(((KNOB_HEIGHT-SCREWHEAD_DEPTH)/2)+0.01)])
|
||||
rotate_on_circle(rot_angle,(KNOB_DIAM/2)+CUTOUT_RADIUS_ADJ)
|
||||
cylinder(r=GRIP_CUTOUT_DIAM/2,h=KNOB_HEIGHT+0.01,center=true,$fn=64);
|
||||
};
|
||||
|
||||
//top filet
|
||||
translate([0, 0,-(((KNOB_HEIGHT-SCREWHEAD_DEPTH)/2)-0.1)])
|
||||
rotate_extrude()
|
||||
polygon(points = [[KNOB_DIAM,KNOB_HEIGHT], [0,KNOB_HEIGHT+2],[0,KNOB_HEIGHT],[KNOB_DIAM/1.29,0]],$fn=100);
|
||||
//down filet
|
||||
color("pink") {
|
||||
translate([0, 0,-(((KNOB_HEIGHT-SCREWHEAD_DEPTH)/2)+0.1)])
|
||||
rotate_extrude()
|
||||
polygon(points = [[-KNOB_DIAM,-KNOB_HEIGHT], [0,-KNOB_HEIGHT-2],[0,-KNOB_HEIGHT],[-KNOB_DIAM/1.29,0]],$fn=100);
|
||||
}
|
||||
}
|
||||
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);
|
||||
}
|
||||
25
tir_sportif/dioptre-pédagogique/scad/sight.scad
Normal file
25
tir_sportif/dioptre-pédagogique/scad/sight.scad
Normal file
@@ -0,0 +1,25 @@
|
||||
$fn=60;
|
||||
|
||||
include<threads.scad>
|
||||
include <BOSL2/std.scad>
|
||||
include <BOSL2/shapes2d.scad>
|
||||
include <boltsos_0.4.1/BOLTS.scad>
|
||||
|
||||
// Sight
|
||||
color("grey") {
|
||||
// Base
|
||||
translate([0,0,20]) {
|
||||
rotate ([-90,0,0]) {
|
||||
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([0,50,-9]) {
|
||||
tube(od=12, wall=3, h=22, chamfer=0.5);
|
||||
translate([0,0,16]) tube(h=15, or1=6, or2=20, wall=3, chamfer=0.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
32
tir_sportif/dioptre-pédagogique/scad/torus.scad
Normal file
32
tir_sportif/dioptre-pédagogique/scad/torus.scad
Normal file
@@ -0,0 +1,32 @@
|
||||
/*[Torus]*/
|
||||
ShowTorus = false;
|
||||
Torus_Diameter = .1; //[.1:.01:400]
|
||||
Torus_Circle_Radius = .1; //[.1:.01:400]
|
||||
Torus_Fragments = 10; //[1:.01:200]
|
||||
Rotate_TorusX = 0; //[0:.01:360]
|
||||
Rotate_TorusY = 0; //[0:.01:360]
|
||||
Rotate_TorusZ = 0; //[0:.01:360]
|
||||
Move_TorusX = 0; //[-400:.01:400]
|
||||
Move_TorusY = 0; //[-400:.01:400]
|
||||
Move_TorusZ = 0; //[-400:.01:400]
|
||||
|
||||
module Torus() {
|
||||
InnerRadius = Torus_Circle_Radius/2;
|
||||
OuterRadius = Torus_Diameter/2-Torus_Circle_Radius/2;
|
||||
rotate(a = [Rotate_TorusX, 0, 0])
|
||||
rotate(a = [0, Rotate_TorusY, 0])
|
||||
rotate(a = [0, 0, Rotate_TorusZ])
|
||||
translate([Move_TorusX, 0, 0])
|
||||
translate([0, Move_TorusY, 0])
|
||||
translate([0, 0, Move_TorusZ])
|
||||
|
||||
if (ShowTorus){
|
||||
rotate_extrude(convexity = 10, $fn = Torus_Fragments)
|
||||
translate([Torus_Diameter, 0, 0])
|
||||
circle(r = Torus_Circle_Radius, $fn = 144);
|
||||
}
|
||||
else {
|
||||
//
|
||||
}}
|
||||
|
||||
// Torus();
|
||||
Reference in New Issue
Block a user