diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bcfb6d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +frame*.png diff --git a/README.md b/README.md index e0ee385..ac0ae28 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,8 @@ -# Space-Light-Button-Stands +Space Light Button Stands +========================= + +Little stands to hold the ikea zigbee buttons in the aux and main spaces + +![](./main_space_light_button-stand.gif) +![](./aux_space_light_button-stand.gif) diff --git a/aux_space_light_button_stand.gif b/aux_space_light_button_stand.gif new file mode 100644 index 0000000..d4adad8 Binary files /dev/null and b/aux_space_light_button_stand.gif differ diff --git a/aux_space_light_button_stand.scad b/aux_space_light_button_stand.scad index 09d139e..7b94999 100644 --- a/aux_space_light_button_stand.scad +++ b/aux_space_light_button_stand.scad @@ -3,43 +3,53 @@ radius=5; use ; -difference(){ - union(){ - hull(){ - translate([0,0,20]) - cylinder(h=1, d=45, center=true); - - translate([0,0,0]) - cylinder(h=1, d=45, center=true); - - translate([0,0,30]) - rotate([0,45,0]) - translate([5,0,0]) - mirrorCopy([1,0,0],[0,1,0]) - translate([(35-radius)/2,(35-radius)/2,0.5]) - cylinder(h=1,r=radius, center=true); - } - - translate([0,0,30]){ - rotate([0,45,0]){ - difference(){ - hull(){ +module stand(){ + render() + difference(){ + union(){ + hull(){ + translate([0,0,20]) + cylinder(h=1, d=45, center=true); + + translate([0,0,0]) + cylinder(h=1, d=45, center=true); + + translate([0,0,30]) + rotate([0,45,0]) translate([5,0,0]) mirrorCopy([1,0,0],[0,1,0]) translate([(35-radius)/2,(35-radius)/2,0.5]) cylinder(h=1,r=radius, center=true); - translate([0,0,0]) - mirrorCopy([1,0,0],[0,1,0]) - translate([(45-radius)/2,(45-radius)/2,24.5]) - cylinder(h=1,r=radius, center=true); + } + + translate([0,0,30]){ + rotate([0,45,0]){ + difference(){ + hull(){ + translate([5,0,0]) + mirrorCopy([1,0,0],[0,1,0]) + translate([(35-radius)/2,(35-radius)/2,0.5]) + cylinder(h=1,r=radius, center=true); + translate([0,0,0]) + mirrorCopy([1,0,0],[0,1,0]) + translate([(45-radius)/2,(45-radius)/2,24.5]) + cylinder(h=1,r=radius, center=true); + } + mirrorCopy([1,0,0]) + translate([25/2,0,25/2+0.5]) + cylinder(d=3.2, h=24, center=true); } - mirrorCopy([1,0,0]) - translate([25/2,0,25/2+0.5]) - cylinder(d=3.2, h=24, center=true); } } } + translate([0,0,10-1]) + cylinder(h=30, d=35, center=true); } - translate([0,0,10-1]) - cylinder(h=30, d=35, center=true); +} + +if($preview){ + rotate([0,0,360*$t]) + stand(); +}else{ + stand(); } \ No newline at end of file diff --git a/main_space_light_button_stand.gif b/main_space_light_button_stand.gif new file mode 100644 index 0000000..81167d9 Binary files /dev/null and b/main_space_light_button_stand.gif differ diff --git a/main_space_light_button_stand.scad b/main_space_light_button_stand.scad index 3b68060..f18f392 100644 --- a/main_space_light_button_stand.scad +++ b/main_space_light_button_stand.scad @@ -57,27 +57,36 @@ module pedistal(){ cylinder(d=3.2, h=24, center=true); } } -difference(){ - union(){ - hull(){ base(); ring0(); } - hull(){ ring0(); ring1(); } - hull(){ ring1(); ring2(); } - hull(){ ring2(); ring3(); } - hull(){ ring3(); ring4(); } - hull(){ ring4(); ring5(); } - hull(){ ring5(); ring6(); } - hull(){ ring6(); ring7(); } - pedistal(); +module column(){ + render() + difference(){ + union(){ + hull(){ base(); ring0(); } + hull(){ ring0(); ring1(); } + hull(){ ring1(); ring2(); } + hull(){ ring2(); ring3(); } + hull(){ ring3(); ring4(); } + hull(){ ring4(); ring5(); } + hull(){ ring5(); ring6(); } + hull(){ ring6(); ring7(); } + pedistal(); + } + + pcd(360/12)groove(); + + mirrorCopy([1,0,0]) + translate([25/2,0,25/2+0.5+110]) + cylinder(d=3.2, h=24, center=true); + + mirrorCopy([1,0,0],[0,1,0]) + translate([17.5,17.5,-4]) + selfTappingScrew(mSize=5, length=20, recessCap=10); } - - pcd(360/12)groove(); - - mirrorCopy([1,0,0]) - translate([25/2,0,25/2+0.5+110]) - cylinder(d=3.2, h=24, center=true); - - mirrorCopy([1,0,0],[0,1,0]) - translate([17.5,17.5,-4]) - selfTappingScrew(mSize=5, length=20, recessCap=10); } +if($preview){ + rotate([0,0,360*$t]) + column(); +}else{ + column(); +} \ No newline at end of file