Cleanup
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
$fn=12;
|
||||
|
||||
difference(){
|
||||
cube([20,80,10]);
|
||||
translate([20/2,80/4,50/2])
|
||||
#cylinder(h=51,r=1.5,center=true);
|
||||
translate([20/2,80/4*3,50/2])
|
||||
#cylinder(h=51,r=1.5,center=true);
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
$fn=12;
|
||||
|
||||
difference(){
|
||||
cube([20,80,40]);
|
||||
translate([20/2,80/4,40/2])
|
||||
#cylinder(h=46,r=3,center=true);
|
||||
translate([20/2,80/4*3,40/2])
|
||||
#cylinder(h=46,r=3,center=true);
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
$fn=12;
|
||||
|
||||
difference(){
|
||||
cube([20,80,45]);
|
||||
translate([20/2,80/4,45/2])
|
||||
#cylinder(h=46,r=3,center=true);
|
||||
translate([20/2,80/4*3,45/2])
|
||||
#cylinder(h=46,r=3,center=true);
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
$fn=12;
|
||||
|
||||
difference(){
|
||||
cube([20,80,50]);
|
||||
translate([20/2,80/4,50/2])
|
||||
#cylinder(h=51,r=3,center=true);
|
||||
translate([20/2,80/4*3,50/2])
|
||||
#cylinder(h=51,r=3,center=true);
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,66 @@
|
||||
showAssembled=0;
|
||||
|
||||
$fn=12;
|
||||
|
||||
flagHeight=15;
|
||||
flagWidth=25;
|
||||
flagDepth=10;
|
||||
baseThickness=4;
|
||||
chainHolderDiameter=4;
|
||||
|
||||
gutterHeight=5;
|
||||
gutterWidth=4;
|
||||
|
||||
// slice it for printing
|
||||
if (showAssembled) {
|
||||
wholeModel();
|
||||
} else {
|
||||
translate([0,0,baseThickness]) rotate([180,0,180])
|
||||
difference(){
|
||||
wholeModel();
|
||||
translate([-50,-50,baseThickness]) cube(100);
|
||||
}
|
||||
|
||||
translate([-20,0,-baseThickness]) difference(){
|
||||
wholeModel();
|
||||
translate([-50,-50,-100+baseThickness]) cube(100);
|
||||
}
|
||||
}
|
||||
|
||||
module wholeModel(){
|
||||
difference() {
|
||||
union() {
|
||||
translate([0,-gutterWidth/2,gutterHeight/2-(gutterHeight-1)]){
|
||||
cube([flagDepth,flagWidth-gutterWidth,gutterHeight-2], center=true);
|
||||
}
|
||||
|
||||
translate([0,-gutterWidth,(flagHeight-gutterHeight)/2]){
|
||||
cube([flagDepth,flagWidth,flagHeight-gutterHeight], center=true);
|
||||
}
|
||||
|
||||
translate([0,-(flagWidth+20)/2,baseThickness/2]){
|
||||
difference(){
|
||||
cube([flagDepth,20,baseThickness], center=true);
|
||||
translate([0,0,0])
|
||||
cylinder(h=baseThickness+1,r=2.5,center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
// screw holes
|
||||
translate([0,flagWidth*.12,flagHeight*.65]) rotate([0,0,0]) cylinder(h=flagHeight/4,d=4.5, center=true);
|
||||
translate([0,flagWidth*.12,flagHeight/4]) rotate([0,0,0]) cylinder(h=flagHeight+1,d=1.5, center=true);
|
||||
translate([0,-flagWidth*.45,flagHeight*.65]) rotate([0,0,0]) cylinder(h=flagHeight/4,d=4.5, center=true);
|
||||
translate([0,-flagWidth*.45,flagHeight/4]) rotate([0,0,0]) cylinder(h=flagHeight+1,d=1.5, center=true);
|
||||
|
||||
translate([0,2,baseThickness]){
|
||||
chainHolder();
|
||||
translate([0,chainHolderDiameter+.5,0]) chainHolder();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module chainHolder() {
|
||||
translate([-flagDepth/3,-flagWidth/2+2,0]) rotate([0,90,0]) cylinder(h=flagDepth/2+1,d=chainHolderDiameter, center=true);
|
||||
translate([flagDepth/3,-flagWidth/2+2,0]) rotate([0,90,0]) cylinder(h=flagDepth/2+1,d=chainHolderDiameter, center=true);
|
||||
translate([0,-flagWidth/2+2,0]) rotate([0,90,0]) cylinder(h=flagDepth,d=1, center=true);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
$fn=12;
|
||||
|
||||
flagHeight=35;
|
||||
flagWidth=25;
|
||||
baseThickness=2;
|
||||
|
||||
gutterHeight=5;
|
||||
gutterWidth=4;
|
||||
|
||||
translate([0,-gutterWidth/2,gutterHeight/2-gutterHeight]){
|
||||
cube([10,flagWidth-gutterWidth,gutterHeight], center=true);
|
||||
}
|
||||
|
||||
translate([0,-gutterWidth,(flagHeight-gutterHeight)/2]){
|
||||
#cube([10,flagWidth,flagHeight-gutterHeight], center=true);
|
||||
}
|
||||
|
||||
translate([0,-(flagWidth+20)/2,2/2]){
|
||||
difference(){
|
||||
cube([10,20,baseThickness], center=true);
|
||||
translate([0,0,0])
|
||||
#cylinder(h=4,r=2.5,center=true);
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,52 @@
|
||||
switchHeight = 5;
|
||||
switchWidth = 12;
|
||||
switchLength = 20;
|
||||
|
||||
switchHoleFromFront = 9; // we assume "front" is the left here, adjust for right
|
||||
switchHoleFromSide = 5.5;
|
||||
switchHoleSpacing = 9;
|
||||
|
||||
baseWidth = 12;
|
||||
baseLength = 25;
|
||||
baseThickness = 2;
|
||||
|
||||
slotWidth = 3;
|
||||
slotLength = 15;
|
||||
slotCenterFromBack = 11;
|
||||
slotFromSide = 6;
|
||||
slotSpacing = 9;
|
||||
|
||||
filletSize = 3;
|
||||
|
||||
$fn=10;
|
||||
|
||||
// switch mount
|
||||
difference(){
|
||||
cube([switchWidth,switchLength,switchHeight]);
|
||||
translate([switchHoleFromFront, switchHoleFromSide, 10/2+switchHeight/2+0.1]) {
|
||||
#cylinder(h=10, r=1, center=true);
|
||||
}
|
||||
translate([switchHoleFromFront, switchHoleFromSide+switchHoleSpacing, 10/2+switchHeight/2+0.1]) {
|
||||
#cylinder(h=10, r=1, center=true);
|
||||
}
|
||||
}
|
||||
// base
|
||||
translate([0,-baseLength,0]){
|
||||
difference(){
|
||||
cube([baseWidth,baseLength,baseThickness]);
|
||||
translate([slotFromSide,slotCenterFromBack,baseThickness/2]){
|
||||
cube([slotWidth,slotLength,baseThickness+0.2], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
// fillet
|
||||
translate([0,-filletSize,baseThickness]) {
|
||||
prism(baseWidth,filletSize,filletSize);
|
||||
}
|
||||
|
||||
module prism(l, w, h){
|
||||
polyhedron(//pt 0 1 2 3 4 5
|
||||
points=[[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
|
||||
faces=[[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
|
||||
);
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,56 @@
|
||||
switchHeight = 20;
|
||||
switchWidth = 12;
|
||||
switchLength = 20;
|
||||
|
||||
switchHoleFromFront = 9; // we assume "front" is the left here, adjust for right
|
||||
switchHoleFromSide = 5.5;
|
||||
switchHoleSpacing = 9;
|
||||
|
||||
baseWidth = 20;
|
||||
baseLength = 25;
|
||||
baseThickness = 2;
|
||||
|
||||
slotWidth = 2;
|
||||
slotLength = 15;
|
||||
slotCenterFromBack = 11;
|
||||
slotFromSide = 5.5;
|
||||
slotSpacing = 9;
|
||||
|
||||
filletSize = 5;
|
||||
|
||||
$fn=10;
|
||||
|
||||
// switch mount
|
||||
difference(){
|
||||
cube([switchWidth,switchLength,switchHeight]);
|
||||
translate([switchHoleFromFront, switchHoleFromSide, 10/2+switchHeight/2+0.1]) {
|
||||
#cylinder(h=10, r=1, center=true);
|
||||
}
|
||||
translate([switchHoleFromFront, switchHoleFromSide+switchHoleSpacing, 10/2+switchHeight/2+0.1]) {
|
||||
#cylinder(h=10, r=1, center=true);
|
||||
}
|
||||
}
|
||||
// base
|
||||
translate([0,-baseLength,0]){
|
||||
difference(){
|
||||
cube([baseWidth,baseLength,baseThickness]);
|
||||
translate([slotFromSide,slotCenterFromBack,baseThickness/2]){
|
||||
cube([slotWidth,slotLength,baseThickness+0.2], center=true);
|
||||
}
|
||||
translate([slotFromSide+slotSpacing,slotCenterFromBack,baseThickness/2]){
|
||||
cube([slotWidth,slotLength,baseThickness+0.2], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
// fillet
|
||||
translate([0,-filletSize,baseThickness]) {
|
||||
prism(baseWidth,filletSize,filletSize);
|
||||
}
|
||||
|
||||
module prism(l, w, h){
|
||||
polyhedron(//pt 0 1 2 3 4 5
|
||||
points=[[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
|
||||
faces=[[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
|
||||
);
|
||||
}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user