tłumik do CZ457
This commit is contained in:
parent
3211eb9047
commit
e2bc49dc87
1 changed files with 97 additions and 0 deletions
97
Sasza/Tłumik.scad
Normal file
97
Sasza/Tłumik.scad
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
/*
|
||||
|
||||
Silencer
|
||||
Inspired by the QuickCan Parametric Printable Silencer Tool
|
||||
quickcan.scad by Hillary Izabych. I couldn't find her or any
|
||||
way to contact her, and her project had no license.
|
||||
|
||||
I modified the silencer to print a threaded portion to screw onto
|
||||
barrel threads instead of as a muzzle brake slip-on device.
|
||||
|
||||
The thread should ensure better fitment and alignment, lessening
|
||||
the possibility of baffle strikes, and of course better ease of use.
|
||||
|
||||
*/
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
include <BOSL2/screws.scad>
|
||||
|
||||
test = 0; // 1 for exploded view
|
||||
$fn=36;
|
||||
|
||||
// overall dimensions
|
||||
len = 200;
|
||||
out_d = 22;
|
||||
t = 2;
|
||||
bullet_hole = 6; // for .22lr 5.6mm + some spare
|
||||
|
||||
// threaded portion
|
||||
th_len = 20;
|
||||
th_spec = str("1/2-20,", th_len/10); // change to your barrel thread spec
|
||||
$slop = 0.15; // For my printer, no slop results in an extremely tight thread.
|
||||
|
||||
// baffles
|
||||
baf_dist = 0;
|
||||
baf_h_num = 6;
|
||||
baf_h_d1 = 2;
|
||||
baf_h_d2 = 2.6;
|
||||
|
||||
|
||||
// Do not modify - internal calculations
|
||||
in_d = out_d - 2*t;
|
||||
baf_len = len - th_len;
|
||||
|
||||
module body() {
|
||||
difference() {
|
||||
cyl(d=out_d, h=len);
|
||||
cyl(d=in_d, h=len+0.1);
|
||||
}
|
||||
}
|
||||
|
||||
module baffle() {
|
||||
difference() {
|
||||
cyl(d1=out_d, d2=0, h=out_d/2);
|
||||
down(t*sqrt(2)) cyl(d1=out_d, d2=0, h=out_d/2);
|
||||
// holes
|
||||
for(i=[0:baf_h_num]) {
|
||||
zrot(60*i) left(in_d*3/7) cyl(d=baf_h_d1, h=len);
|
||||
zrot(60*i + 30) left(in_d*3/10) cyl(d=baf_h_d2, h=len);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module baffles() {
|
||||
difference() {
|
||||
down(baf_len/2) for(i=[0:out_d/2 + baf_dist:baf_len-out_d]) {
|
||||
up(i) baffle();
|
||||
}
|
||||
// hole for bullet
|
||||
cyl(d=bullet_hole, h=len);
|
||||
}
|
||||
}
|
||||
|
||||
module cap() {
|
||||
down(len/2) difference() {
|
||||
cyl(d=out_d, h=t);
|
||||
cyl(d=bullet_hole, h=t+1);
|
||||
}
|
||||
}
|
||||
|
||||
module thread() {
|
||||
up(len/2 - th_len/2) difference() {
|
||||
cyl(h=th_len, d=out_d);
|
||||
up(th_len/2 - 1)
|
||||
screw_hole(th_spec, thread=true, head="flat small", anchor="head_bot");
|
||||
cyl(h=out_d, d1=out_d, d2=0);
|
||||
}
|
||||
}
|
||||
|
||||
module silencer() {
|
||||
left(test*(out_d+5)) body();
|
||||
baffles();
|
||||
right(test*(out_d+5)) cap();
|
||||
right(test*(out_d+5)) thread();
|
||||
}
|
||||
|
||||
silencer();
|
||||
echo(th_spec);
|
||||
Loading…
Reference in a new issue