Files
3D/tir_sportif/22lr_risers/scad/ammo_risers.scad
T
2026-06-15 11:43:37 +02:00

101 lines
3.0 KiB
OpenSCAD

$fn=60;
include <BOSL2/std.scad>
module bullets() {
for(x=[1:1:5]) {
for(y=[1:1:5]) {
translate([-38.5+x*14,-21+y*7,31.4]) {
rotate([180,0,0]) {
translate([0,0,12.7]) zcyl(l=25.4, d=5.72, rounding=2.81);
translate([0,0,7.785]) zcyl(l=15.57, d=5.74);
translate([0,0,.545]) zcyl(l=1.09, d=7.06, rounding=.545);
}
}
}
}
for(x=[1:1:5]) {
for(y=[1:1:5]) {
translate([-45.5+x*14,-21+y*7,36.4]) {
rotate([180,0,0]) {
translate([0,0,12.7]) zcyl(l=25.4, d=5.72, rounding=2.81);
translate([0,0,7.785]) zcyl(l=15.57, d=5.74);
translate([0,0,.545]) zcyl(l=1.09, d=7.06, rounding=.545);
}
}
}
}
}
module cci_holder() {
color("grey", alpha=1) {
difference() {
translate([0,0,21]) cuboid([70,37,4]);
translate([-38.5,-21,22]) {
for(i=[1:1:5]) {
for(j=[1:1:10]) {
translate([j*7,i*7,0]) zcyl(l=10, d=5.8);
}
}
}
}
}
}
module federal_holder() {
color("grey", alpha=1) {
difference() {
translate([0,0,11]) cuboid([73,40,22]);
translate([0,0,8]) cuboid([70,50,20], rounding=3);
translate([-38.5,-21,22]) {
for(i=[1:1:5]) {
for(j=[1:1:10]) {
translate([j*7,i*7,0]) zcyl(l=10, d=5.8);
}
}
}
}
}
}
bullets();
federal_holder();
cci_holder();
base_l=77;
base_w=45;
plate_l=70;
plate_w=37.5;
riser_l=70;
riser_w=35;
riser_h=6;
// federal_riser_vertical
color("blue", alpha=1) {
cuboid([base_l,base_w,4], rounding=4, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=TOP);
cuboid([riser_l,riser_w,riser_h], rounding=1, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=BOT);
for (i = [-32:14:24]) {
translate([i,0,0]) cuboid([6,riser_w,11], rounding=1, anchor=BOT);
}
}
// federal_riser_horizontal
color("blue", alpha=1) {
cuboid([base_l,base_w,4], rounding=4, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=TOP);
cuboid([riser_l,riser_w,riser_h], rounding=1, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=BOT);
for (i = [-14.5:14.5:14.5]) {
translate([0,i,0]) cuboid([riser_l,6,11], rounding=1, anchor=BOT);
}
}
// cci riser
!color("orange", alpha=1) {
difference() {
rect_tube(size=[base_l,base_w], isize=[riser_l+1,riser_w+1], h=23, rounding=4, irounding=1, anchor=BOT);
translate([0,0,20]) rect_tube(size=[plate_l+1,plate_w+1], wall=3, h=3, rounding=1, anchor=BOT);
*translate([0,0,23]) cuboid([73,40,7]);
translate([0,base_w/2,23]) ycyl(l=base_w/2-riser_w/2, d=20, rounding=-1, anchor=BACK);
translate([0,-base_w/2,23]) ycyl(l=base_w/2-riser_w/2, d=20, rounding=-1, anchor=FRONT);
}
}