You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.2 KiB
82 lines
2.2 KiB
$fn=36;
|
|
|
|
PCB_style=1; //1=Cutted board 2=with frame border
|
|
PCB_size_X=2.54*20;
|
|
PCB_size_Y=2.54*19;
|
|
PCB_size_Z=1;
|
|
PCB_pitch=2.54;
|
|
PCB_holes_diameter=1;
|
|
PCB_copper_rings_diameter=2.15;
|
|
PCB_copper_rings_thickness=0.1;
|
|
PCB_color="Green";
|
|
PCB_rings_color="DarkGoldenrod";
|
|
|
|
module PCB(PCB_size_X,PCB_size_Y,PCB_size_Z,PCB_pitch)
|
|
translate([-PCB_pitch*round(PCB_size_X/PCB_pitch/2),-PCB_pitch*round(PCB_size_Y/PCB_pitch/2),0])
|
|
{
|
|
if(PCB_style==1)
|
|
difference()
|
|
{
|
|
union()
|
|
{
|
|
color(PCB_color)
|
|
cube([PCB_size_X,PCB_size_Y,PCB_size_Z]);
|
|
|
|
color(PCB_rings_color)
|
|
intersection()
|
|
{
|
|
for(a=[0:PCB_pitch:PCB_size_X+PCB_pitch])
|
|
{
|
|
for(b=[0:PCB_pitch:PCB_size_Y+PCB_pitch])
|
|
{
|
|
translate([a,b,-PCB_copper_rings_thickness])
|
|
cylinder(d=PCB_copper_rings_diameter,h=PCB_size_Z+PCB_copper_rings_thickness*2);
|
|
}
|
|
}
|
|
translate([0,0,-PCB_size_Z/2])
|
|
cube([PCB_size_X,PCB_size_Y,PCB_size_Z*2]);
|
|
}
|
|
}
|
|
color(PCB_rings_color)
|
|
for(a=[0:PCB_pitch:PCB_size_X+PCB_pitch])
|
|
{
|
|
for(b=[0:PCB_pitch:PCB_size_Y+PCB_pitch])
|
|
{
|
|
translate([a,b,-PCB_size_Z/2])
|
|
cylinder(d=PCB_holes_diameter,h=PCB_size_Z*2);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(PCB_style==2)
|
|
difference()
|
|
{
|
|
union()
|
|
{
|
|
color(PCB_color)
|
|
cube([PCB_size_X,PCB_size_Y,PCB_size_Z]);
|
|
|
|
color(PCB_rings_color)
|
|
for(a=[PCB_pitch:PCB_pitch:PCB_size_X-PCB_pitch/2])
|
|
{
|
|
for(b=[PCB_pitch:PCB_pitch:PCB_size_Y-PCB_pitch/2])
|
|
{
|
|
translate([a,b,-PCB_copper_rings_thickness])
|
|
cylinder(d=PCB_copper_rings_diameter,h=PCB_size_Z+PCB_copper_rings_thickness*2);
|
|
}
|
|
}
|
|
}
|
|
|
|
color(PCB_rings_color)
|
|
for(a=[PCB_pitch:PCB_pitch:PCB_size_X-PCB_pitch/2])
|
|
{
|
|
for(b=[PCB_pitch:PCB_pitch:PCB_size_Y-PCB_pitch/2])
|
|
{
|
|
translate([a,b,-PCB_size_Z/2])
|
|
cylinder(d=PCB_holes_diameter,h=PCB_size_Z*2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
PCB(PCB_size_X,PCB_size_Y,PCB_size_Z,PCB_pitch);
|