101 lines
3.0 KiB
OpenSCAD
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);
|
|
}
|
|
}
|