tape_thickness = 1.2; distance_between_parts = 4; parts = 800; //amount of parts in total_distance = parts*distance_between_parts; inner_diameter=16; tape_width= 8; part_width=tape_width+2.4; turns= 25;// https://de.planetcalc.com/9063/ $fa = 1; $fs = 0.5; outerdiameter=72; boxdim=outerdiameter+10; boxdimhalf = boxdim/2; offset_insert_view=-boxdimhalf-0.001+(boxdimhalf-outerdiameter/2+tape_thickness*1.2/2); difference() { color("grey")cube([boxdim,boxdim,part_width],center=true); translate([0,0,-tape_width/2]){ linear_extrude(part_width-0.001){ circle(d=outerdiameter); } } translate([offset_insert_view,-20,1]) cube([tape_thickness*1.2,boxdimhalf+3.001,part_width-0.4],center=true); //Tape inlet translate([-boxdimhalf,-0.75*boxdimhalf,0])cube([(boxdimhalf-outerdiameter/2)*2+tape_thickness*1.2/2+0.001,10,tape_width],center=true); //viewing window translate([boxdimhalf-8,-boxdimhalf+2,0])rotate([0,0,30]) cube([8,10,tape_width+4],center=true); //Retention space for front magazine clip translate([boxdimhalf-3,boxdimhalf-3,0])rotate([0,0,30]) cube([8,30,tape_width+4],center=true); translate([boxdimhalf+2,boxdimhalf-6,0])rotate([0,0,80]) cube([8,30,tape_width+4],center=true); translate([boxdimhalf+1.5,boxdimhalf-3.3,0])cube([30,8,tape_width+4],center=true); } translate([offset_insert_view+tape_thickness*1.2*0.999,-20,0.001]) color("grey")cube([tape_thickness*1.2,boxdimhalf+3.001-17,part_width],center=true); // Merge plate near inlet difference(){ //retention spring translate([0,boxdimhalf+2,0])color("grey") rotate([0,0,90]) cube([10,5,part_width+0.001],center=true); translate([-3.85,boxdimhalf+1.5,-part_width/2-0.5]) linear_extrude(part_width+1){ circle(d=4); } translate([3.85,boxdimhalf+1.5,-part_width/2-0.5]) linear_extrude(part_width+1){ circle(d=4); } } difference(){ //Retention Clip with Spring translate([0,boxdimhalf+6,0]) color("grey")cube([boxdim,6,part_width],center=true); translate([-boxdimhalf+10,boxdimhalf+2,0]) rotate([0,0,-8])cube([boxdimhalf,6,tape_width+3],center=true); translate([boxdimhalf+2.5,boxdimhalf+4,0])rotate([0,0,-15]) cube([8,20,part_width+2],center=true); } difference(){//Retention Clip with Spring translate([boxdimhalf,boxdimhalf+4,0]) color("grey")cube([10,10,part_width],center=true); translate([boxdimhalf+2.5,boxdimhalf+4,0])rotate([0,0,-15]) cube([8,20,part_width+2],center=true); }