Skip to content

Instantly share code, notes, and snippets.

@patmandenver
Created November 15, 2019 02:00
Show Gist options
  • Select an option

  • Save patmandenver/8bb16d27bb2b991f63ba2701b09c14f3 to your computer and use it in GitHub Desktop.

Select an option

Save patmandenver/8bb16d27bb2b991f63ba2701b09c14f3 to your computer and use it in GitHub Desktop.
$fn=100;
dia=160;
platform_9_and_3_4(dia);
module platform_9_and_3_4(dia){
base(dia);
color("#FFFFFF"){
platform_text(dia);
kings_cross_text(dia);
}
color("#000000"){
9_and_3_4_text(dia);
}
}
module base(dia) {
union(){
color("#000000"){
linear_extrude(2){
circle(d=dia);
}
translate([0,0,2]){
union(){
linear_extrude(1){
difference(){
circle(d=dia);
circle(d=dia*(148/160));
}
}
}
}
}
translate([0,0,2]){
color("#FF0000"){
linear_extrude(1.6){
circle(d=dia*(140/160));
}
}
}
//To account for white center
color("#FFFFFF"){
translate([0,0,3.6]){
linear_extrude(0.6){
circle(d=dia*(99/160));
}
}
}
//Little white dots
color("#FFFFFF"){
translate([dia*(61/160),0,3.6]){
linear_extrude(0.6){
circle(d=dia*(9/160));
}
}
translate([dia*(-61/160),0,3.6]){
linear_extrude(0.6){
circle(d=dia*(9/160));
}
}
}
//Black Ring
color("#000000"){
translate([0,0,4.2]){
linear_extrude(0.4){
difference(){
circle(d=dia*(99/160));
circle(d=dia*(96/160));
}
}
}
}
}
}
module platform_text(dia){
text="PLATFORM";
myFont="Calisto MT:style=Bold";
fontSize=dia*(15/160);
num_l=len(text);
distance=dia*(60/160);
start_deg=22;
angle_between=(180-2*start_deg)/(num_l-1);
translate([0,0,3.6]){
linear_extrude(0.6){
for(i=[0:num_l-1]){
new_angle=angle_between*i + start_deg;
x=distance*cos(new_angle);
y=distance*sin(new_angle);
translate([-x,y,0]){
rotate(90-new_angle){
text(text[i], size=fontSize,
valign= "center",
halign="center", font=myFont);
}
}
}
}
}
}
module kings_cross_text(dia){
text="KING'S CROSS STATION";
myFont="Calisto MT:style=Bold";
fontSize=dia*(8/160);
num_l=len(text);
distance=dia*(60/160);
start_deg=15;
angle_between=(180-2*start_deg)/(num_l-1);
translate([0,0,3.6]){
linear_extrude(0.6){
for(i=[0:num_l-1]){
new_angle=angle_between*i + start_deg;
x=distance*cos(new_angle);
y=distance*sin(new_angle);
translate([-x,-y,0]){
rotate(new_angle-90){
text(text[i], size=fontSize,
valign= "center",
halign="center", font=myFont);
}
}
}
}
}
}
module 9_and_3_4_text(dia){
text="934";
myFont="Elephant:style=Regular";
//9
fontSize9=dia*(60/160);
translate([dia*(-15/160),0,4.2]){
linear_extrude(0.4){
text(text[0], size=fontSize9,
valign= "center",
halign="center", font=myFont);
}
}
//3
fontSize3=dia*(25/160);
translate([dia*(24/160),dia*(18/160),4.2]){
linear_extrude(0.4){
text(text[1], size=fontSize3,
valign= "center",
halign="center", font=myFont);
}
}
//4
fontSize4=dia*(25/160);
translate([dia*(24/160),dia*(-18/160),4.2]){
linear_extrude(0.4){
text(text[2], size=fontSize4,
valign= "center",
halign="center", font=myFont);
}
}
translate([dia*(26/160),0,4.2]){
linear_extrude(0.4){
square([dia*(20/160),dia*(3/160)],true);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment