Palik Oliwki, i nowy celownik na lunetę
This commit is contained in:
parent
df1afeff53
commit
446164021b
4 changed files with 129 additions and 29 deletions
|
|
@ -21,11 +21,11 @@ dz_ile_kw = 3;
|
|||
dz_ile_kol = 1;
|
||||
dz_t = 3;
|
||||
|
||||
module column_hex(ile_h, ile_d, size, h, angle) {
|
||||
module column_hex(ile_h, ile_d, size, h, angle, d) {
|
||||
for(i=[0:ile_h]) {
|
||||
translate([0,0,i*h]) rotate([0,0,i*(360/ile_d/2)]) union() {
|
||||
for (j=[0:360/ile_d:360]) {
|
||||
rotate([angle,30,j]) cylinder(d=size, $fn=6, h=100);
|
||||
rotate([angle,30,j]) cylinder(d1=0, d2=size, $fn=6, h=d/2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -42,7 +42,7 @@ union() {
|
|||
difference() {
|
||||
cylinder(d=palik_d, h=palik_h, $fn=360);
|
||||
down(0.1) cylinder(d=palik_d-2*t, h=palik_h+0.2, $fn=360);
|
||||
up(tab[2]/2) column_hex(tab[0],tab[1],tab[2],tab[3],tab[4]);
|
||||
up(tab[2]/2) column_hex(tab[0],tab[1],tab[2],tab[3],tab[4], palik_d);
|
||||
}
|
||||
// cienszy element do łączenia
|
||||
rotate([0,180,0]) difference() {
|
||||
|
|
|
|||
73
Oliwka/palik3.scad
Normal file
73
Oliwka/palik3.scad
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
include <BOSL2/std.scad>
|
||||
|
||||
h = 240;
|
||||
bot_h = 110;
|
||||
d = 70;
|
||||
t = 2;
|
||||
conn_h = 10;
|
||||
|
||||
conn_slop = 0.25;
|
||||
|
||||
hex_size = 15;
|
||||
hex_t = 1.5;
|
||||
|
||||
$fn = 360;
|
||||
|
||||
module column_hex(w, h, hex_size, t) {
|
||||
fwd(50) for(i=[0:1:h/(hex_size+t)]) {
|
||||
up(i*(hex_size+t)) left(i%2 * (hex_size+t)/2) union() {
|
||||
for (j=[-w:hex_size+t:w]) {
|
||||
right(j) rotate([270,90,0]) cylinder(d=hex_size, $fn=6, h=100);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
union() {
|
||||
difference() {
|
||||
cyl(d=d, h=h);
|
||||
difference() {
|
||||
cyl(d=d-t*2, h=h+0.1);
|
||||
down(h/2 - bot_h) difference() {
|
||||
cyl(d=d, h=t);
|
||||
xrot(90) up(hex_size/4) column_hex(d,d/2,hex_size/2, hex_t);
|
||||
}
|
||||
}
|
||||
left(d/2+0.1) down(h/2+0.1) back(t/2) cube([d+1, d+1, h+1]);
|
||||
}
|
||||
|
||||
difference() {
|
||||
cuboid([d,t,h]);
|
||||
down(h - bot_h) cuboid([d+1,t+1,h]);
|
||||
down(h/2 - bot_h) column_hex(d,h-bot_h-1,hex_size,hex_t);
|
||||
}
|
||||
}
|
||||
|
||||
left(d*2) union() {
|
||||
difference() {
|
||||
cyl(d=d, h=h);
|
||||
cyl(d=d-t*2, h=h+0.1);
|
||||
left(d/2+0.1) down(h/2+0.1) back(t/2) cube([d+1, d+1, h+1]);
|
||||
}
|
||||
|
||||
difference() {
|
||||
cuboid([d,t,h]);
|
||||
//down(h - bot_h) cuboid([d+1,t+1,h]);
|
||||
down(h/2) column_hex(d,h-1,hex_size,hex_t);
|
||||
}
|
||||
|
||||
down(h/2) difference() {
|
||||
union() {
|
||||
cyl(d=d-t*2 - conn_slop, h=conn_h*2);
|
||||
up(conn_h/2) cyl(d=d-t*2, h=conn_h);
|
||||
up(conn_h/2) cuboid([d,t,conn_h]);
|
||||
}
|
||||
difference() {
|
||||
cyl(d=d-t*4, h=conn_h*2 + 1);
|
||||
fwd(t) cuboid([d,t,conn_h]*2);
|
||||
}
|
||||
left(d/2+0.1) down(h+0.1) fwd(t/2 + conn_slop) cube([d+1, d+1, h*2+1]);
|
||||
}
|
||||
down(h/2) up(conn_h/2) fwd(t/2) cuboid([d,t*2,conn_h]);
|
||||
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@ include <BOSL2/screws.scad>
|
|||
// wystaje pałąk do przykręcenia (post)
|
||||
|
||||
// parameters
|
||||
length = 26; // ustaw poniżej 5 do testów wymiarów
|
||||
length = 4; // ustaw poniżej 5 do testów wymiarów
|
||||
|
||||
clamp_inner = 22.15;
|
||||
clamp_inner_acurracy = 50;
|
||||
|
|
|
|||
|
|
@ -8,21 +8,21 @@ include <BOSL2/screws.scad>
|
|||
// wystaje pałąk do przykręcenia (post)
|
||||
|
||||
// parameters
|
||||
length = 15; // ustaw poniżej 5 do testów wymiarów
|
||||
length = 9; // ustaw poniżej 5 do testów wymiarów
|
||||
|
||||
clamp_inner = 22.15;
|
||||
clamp_inner_acurracy = 50;
|
||||
clamp_thickness = 4;
|
||||
clamp_inner = 22.1;
|
||||
clamp_inner_acurracy = 90;
|
||||
clamp_thickness = 2;
|
||||
|
||||
c_s = length>5 ? 1 : 0.4; // chamfer_size używane tylko do testów
|
||||
rail_height = -9.4 + clamp_inner/2 + 6.8; // -9.4 is to center the picatinny
|
||||
|
||||
post_thickness=15;
|
||||
post_length=10;
|
||||
post_slit=2;
|
||||
post_thickness=7;
|
||||
post_length=9;
|
||||
post_slit=1;
|
||||
post_chamfer = 1.665;
|
||||
|
||||
nut_wall_t = -0.1;
|
||||
nut_wall_t = -1.5;
|
||||
|
||||
screw = "M2.5";
|
||||
info = screw_info(name=screw, head="socket");
|
||||
|
|
@ -31,12 +31,15 @@ screw_head_h = post_thickness - hh - nut_wall_t;
|
|||
|
||||
$slop = 0.1;
|
||||
|
||||
top_screw = 3.8;
|
||||
top_screw = 3.9;
|
||||
top_h = 5;
|
||||
top_w = 6;
|
||||
top_lock_hole_distance = 4;
|
||||
top_lock_hole_d = 1.8;
|
||||
|
||||
quality = 1;
|
||||
$fn=36*quality;
|
||||
|
||||
|
||||
difference() {
|
||||
// celownik
|
||||
|
|
@ -51,7 +54,7 @@ difference() {
|
|||
|
||||
// top front sights
|
||||
yrot(-90) up((clamp_inner + top_h)/2) union() {
|
||||
cuboid([length,top_w,top_h], rounding=2);
|
||||
cuboid([length,top_w,top_h], rounding=2, edges=TOP);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -66,10 +69,11 @@ difference() {
|
|||
|
||||
// miejsce na śrubę
|
||||
if (length > 5){
|
||||
for (i = [length*-1/4, length*1/4]) {
|
||||
tab = length>12?[length*-1/4, length*1/4]:[0];
|
||||
for (i = tab) {
|
||||
translate([(clamp_inner + post_length)/2,0,i])
|
||||
rotate([90,90,0])
|
||||
screw_hole(spec=screw, length=screw_head_h, head="socket", thread=0, $fn=100);
|
||||
screw_hole(spec=screw, length=screw_head_h, head="socket", thread=0, $fn=120);
|
||||
translate([(clamp_inner + post_length)/2,post_thickness/2 - nut_wall_t,i])
|
||||
rotate([90,90,0])
|
||||
nut_trap_inline(spec=screw, h=hh);
|
||||
|
|
@ -82,8 +86,12 @@ difference() {
|
|||
|
||||
// top front sights
|
||||
yrot(-90) up((clamp_inner + top_h)/2 - 0.2) union() {
|
||||
left(top_lock_hole_distance/2) cyl(h=top_h + 1, d=top_lock_hole_d, $fn=12);
|
||||
right(top_lock_hole_distance/2) cyl(d=top_screw, length=top_h + 1, $fn=12);
|
||||
if(length>12) {
|
||||
left(top_lock_hole_distance/2) cyl(h=top_h + 1, d=top_lock_hole_d, $fn=12*quality);
|
||||
right(top_lock_hole_distance/2) cyl(d=top_screw, length=top_h + 1, $fn=12*quality);
|
||||
} else {
|
||||
cyl(d=top_screw, length=top_h + 1, $fn=12*quality);
|
||||
}
|
||||
}
|
||||
|
||||
// debug - wyświetl rozmiar
|
||||
|
|
@ -95,27 +103,46 @@ difference() {
|
|||
}
|
||||
|
||||
// rear sight
|
||||
r_clamp_width = 20;
|
||||
r_clamp_th = 3.4;
|
||||
r_clamp_t = 1.5;
|
||||
r_clamp_l = 16;
|
||||
r_clamp_h = 10;
|
||||
r_clamp_w = r_clamp_th + 2*r_clamp_t;
|
||||
|
||||
r_clamp_hole_pos = 2.8;
|
||||
r_clamp_hole_d = 4.7;
|
||||
|
||||
r_sight_pos = 12;
|
||||
r_sight_pos_h = 0.5;
|
||||
r_sight_screw_d1 = 3.7;
|
||||
r_sight_screw_d2 = 5.4;
|
||||
r_sight_screw_head_d = 9.5;
|
||||
|
||||
back(50) union() {
|
||||
// slits to hold onto optic mount
|
||||
difference() {
|
||||
union() {
|
||||
left(10) cuboid([5.4,16,10]);
|
||||
right(10) cuboid([5.4, 16, 10]);
|
||||
left(r_clamp_width/2) cuboid([r_clamp_w,r_clamp_l,r_clamp_h]);
|
||||
right(r_clamp_width/2) cuboid([r_clamp_w, r_clamp_l, r_clamp_h]);
|
||||
}
|
||||
union() {
|
||||
left(10) fwd(2.1) cuboid([3.4, 12, 11]);
|
||||
right(10) fwd(2.1) cuboid([3.4, 12, 11]);
|
||||
fwd(2.7) yrot(90) cyl(d=4.5, h=100, $fn=12);
|
||||
left(r_clamp_width/2) fwd(r_clamp_t*2)
|
||||
cuboid([r_clamp_th, r_clamp_l, r_clamp_h+1]);
|
||||
right(r_clamp_width/2) fwd(r_clamp_t*2)
|
||||
cuboid([r_clamp_th, r_clamp_l, r_clamp_h+1]);
|
||||
fwd(r_clamp_hole_pos) yrot(90) cyl(d=r_clamp_hole_d, h=100, $fn=36*quality);
|
||||
// hole for screw head for peepsight screw
|
||||
back(12) down(1.5) yrot(90) fwd(1) up(-50) cyl(d=9, h=100, $fn=36);
|
||||
back(r_sight_pos) down(r_sight_pos_h) yrot(90) fwd(1) up(-50)
|
||||
cyl(d=r_sight_screw_head_d, h=100, $fn=36*quality);
|
||||
}
|
||||
}
|
||||
// rear part for sight
|
||||
back(12) down(0.5) difference() {
|
||||
down(0.5) cuboid([20,12,8]);
|
||||
down(0.5) cuboid([15, 12.1, 8.1]);
|
||||
yrot(90) fwd(1) up(50) cyl(d=3.7, h=100, $fn=12);
|
||||
yrot(90) fwd(1) up(-50) cyl(d=5.4, h=100, $fn=12);
|
||||
back(r_sight_pos) down(r_sight_pos_h) difference() {
|
||||
down(r_sight_pos_h) cuboid([20,12,8]);
|
||||
down(r_sight_pos_h) cuboid([15, 12.1, 8.1]);
|
||||
yrot(90) fwd(1) up(50) cyl(d=r_sight_screw_d1, h=100, $fn=12*quality);
|
||||
yrot(90) fwd(1) up(-50) cyl(d=r_sight_screw_d2, h=100, $fn=12*quality);
|
||||
}
|
||||
back(16.5) down(-1.5) cuboid([20,3,3]);
|
||||
back(16.5) down(4) cuboid([20,3,2]);
|
||||
|
|
|
|||
Loading…
Reference in a new issue