Replacement Micro Drone (Extreme Fliers) Frame

A heavy-duty replacement body for the original (2011) Micro Drone from Extreme Fliers. It doesn't include a battery holder, but a piece of velcro will do.
$fn=50;
$armWidth=7.25;
$armHeight=$armWidth;
$armInnerWidth=4.75;
$armInnerHeight=$armInnerWidth;
$armLength=33/2;
$armWallThickness=($armWidth-$armInnerWidth)/2;
module armInner() {
translate([($armWidth/2),-($armWidth/2)+$armWallThickness,$armWallThickness]) {
cube([$armLength,$armInnerWidth,$armInnerHeight]);
}
}
module arm() {
module armOuter() {
translate([($armWidth/2),-$armWidth/2,0]) {
cube([$armLength-($armWidth/2),$armWidth,$armHeight]);
}
}
module armScrewsPost() {
translate([29/2,0,$armHeight]) {
cylinder(d=2.75, h=1.1);
}
}
module strut() {
translate([$armLength-2,0,0]) {
rotate([0,0,45]) {
cube([2,20,$armHeight]);
}
}
}
module armBody() {
union() {
armOuter();
armScrewsPost();
cylinder(h=$armHeight, r=$armWidth);
strut();
}
}
difference() {
armBody();
armScrewHole();
}
}
module armScrewHole() {
translate([29/2,0, $armHeight/2]) {
cylinder(h=5,d=1.25);
}
}
module arms() {
arm();
rotate([0,0,90]) arm();
rotate([0,0,180]) arm();
rotate([0,0,270]) arm();
}
module armInners() {
armInner();
rotate([0,0,90]) armInner();
rotate([0,0,180]) armInner();
rotate([0,0,270]) armInner();
}
difference() {
arms();
armInners();
}