//CUSTOMISABLE SIGN SEQUIN SUPPORT FRAME
//BIG CLIVE 27/5/2020
//If building with a raft, it can be left on.
$fn=40;
//You can adjust these 8 variables.
width=4; //number of horizontal sequins
height=4; //number of vertical sequins
diameter=20; //sequin diameter
gap=2; //gap between sequin edges
spacer=6; //height of sequin spacers
pin=1; //diameter of sequin pin
web=3; //web width
thickness=2; //web depth
//Make sure you leave the "=" and ";" intact.
//Don't change the variables below!
sequin=diameter+gap;
columns=width-1;
rows=height-1;
s=sequin/2;
w=web/2;
c=columns-1;
r=rows-1;
t=thickness-1;
difference(){
union(){
//vertical strips
for (x=[0:columns]){
translate([x*sequin,0,0])
cube([web,rows*sequin+web,thickness]);
}
//horizontal strips
for (y=[0:rows]){
translate([0,y*sequin,0])
cube([columns*sequin+web,web,thickness]);
}
//sequin standoffs
for (x=[0:columns]){
for (y=[0:rows]){
translate([x*sequin+w,y*sequin+w,t])
cylinder(h=spacer+1,d1=3,d2=3);
}
}
//mounting hole plate
translate([s+w,w,0])
cylinder(h=thickness,d1=10,d2=10);
translate([c*sequin+s+w,w,0])
cylinder(h=thickness,d1=10,d2=10);
translate([s+w,rows*sequin+w,0])
cylinder(h=thickness,d1=10,d2=10);
translate([c*sequin+s+w,rows*sequin+w,0])
cylinder(h=thickness,d1=10,d2=10);
}
//hollows in standoffs for pins
for (x=[0:columns]){
for (y=[0:rows]){
translate([x*sequin+(web/2),y*sequin+(web/2),t])
cylinder(h=spacer+2,d1=pin,d2=pin);
}
}
//screw holes in mounting plates
translate([s+w,w,-1])
cylinder(h=thickness+2,d1=4,d2=4);
translate([c*sequin+s+w,w,-1])
cylinder(h=thickness+2,d1=4,d2=4);
translate([s+w,rows*sequin+w,-1])
cylinder(h=thickness+2,d1=4,d2=4);
translate([c*sequin+s+w,rows*sequin+w,-1])
cylinder(h=thickness+2,d1=4,d2=4);
}
SequinSupportFrame.scad
2 kB