Skip to content

Instantly share code, notes, and snippets.

@CRamsan
Created August 12, 2014 08:19
Show Gist options
  • Save CRamsan/d00ba5da94d93fd54a32 to your computer and use it in GitHub Desktop.
Save CRamsan/d00ba5da94d93fd54a32 to your computer and use it in GitHub Desktop.
TARDIS in OpenSCAD
//Ref: http://www.wikihow.com/Build-a-TARDIS-Replica
//Dimentions have been modified
//Place the bottom, ceiling and four bars
module tardisFrame()
{
//Base
cube([100, 100, 7.5]);
//Corner Posts
translate([85,5,7.5])cube([10, 10, 200]);
translate([85,85,7.5])cube([10, 10, 200]);
translate([5,85,7.5])cube([10, 10, 200]);
translate([5,5,7.5])cube([10, 10, 200]);
//Ceiling
translate([5,5,207.5])cube([90, 90, 12.5]);
//Ceiling top panel1
translate([10, 10, 220])cube([80, 80, 10]);
//Ceiling top panel2
translate([15, 15, 230])cube([70, 70, 5]);
}
//Creates one entire side of the TARDIS
module fullSide(){
//Create one door
module sidePanel()
{
module horizontalColumn(){
cube([33,6, 10]);
}
module verticalColumn(){
cube([5,6, 200]);
}
module bar(){
cube([33,5, 1]);
}
//Side Panel, I use two to create a small gap between the doors
cube([34,4, 200]);
cube([35,3, 200]);
//Frame Horizontal Bars
translate([0, 0, 0])horizontalColumn();
translate([0, 0, 47.5])horizontalColumn();
translate([0, 0, 95])horizontalColumn();
translate([0, 0, 147.5])horizontalColumn();
translate([0, 0, 190])horizontalColumn();
//Frame Vertical Bars
translate([0, 0, 0])verticalColumn();
translate([29, 0, 0])verticalColumn();
//Windows
translate([1, 0, 173])bar();
translate([12, 0, 190])rotate([0,90,0])bar();
translate([21, 0, 190])rotate([0,90,0])bar();
}
//Place two doors next to each other. They are still facing inwards
module body(){
//Add the banner
translate([-5, 0, 201])cube([80,10, 12]);
//Place one door in place
translate([0, -2, 0])sidePanel();
//Place the second door in place
translate([70, -2, 0])mirror([1,0,0])sidePanel();
}
//Flip them so they look to the outside
translate([85, 10, 7.5])rotate([0,0,180])body();
}
module details(){
//Add four corners to the to the ceiling tile
translate([8,8,220])cube([10, 10, 7]);
translate([82,8,220])cube([10, 10, 7]);
translate([8,82,220])cube([10, 10, 7]);
translate([82,82,220])cube([10, 10, 7]);
module lantern(){
//Base
translate([0,0,-4])cube([15, 15, 3], center = true);
//Lantern body
cylinder(r = 5, h = 30, center = true);
//Top Cone
translate([0,0,13])cylinder(h = 7, r1 = 8, r2 = 1, center = false);
//Four bars
translate([5,5,2.5])cylinder(r = 0.5, h = 22, center = true);
translate([-5,5,2.5])cylinder(r = 0.5, h = 22, center = true);
translate([-5,-5,2.5])cylinder(r = 0.5, h = 22, center = true);
translate([5,-5,2.5])cylinder(r = 0.5, h = 22, center = true);
}
translate([50,50,240])lantern();
//Add a keyhole
translate([54,7.5,108])rotate([90,0,0])cylinder(r = 2, h = 2);
//Add a signage
translate([22,7,115])cube([20, 2,38]);
//Add the handle
translate([54,0,128])cube([1, 3,1]);
translate([54,0,128])cube([1, 1,8]);
translate([54,0,135])cube([1, 3,1]);
}
tardisFrame();
fullSide();
translate([100, 0, 0])rotate([0,0,90])fullSide();
translate([100, 100, 0])rotate([0,0,180])fullSide();
translate([0, 100, 0])rotate([0,0,270])fullSide();
details();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment