e = 0.25;
s = N[1/Sqrt[2]];
h = 0.5;
hh = 0.6;
a = {{1,-e,0},{1,e,0},{e,1,0},{-e,1,0},
     {-1,e,0},{-1,-e,0},{-e,-1,0},{e,-1,0},{1,-e,0}};
     
b = s{{1+e,1-e,0},{1-e,1+e,0},{-1+e,1+e,0},{-1-e,1-e,0},
      {-1-e,-1+e,0},{-1+e,-1-e,0},{1-e,-1-e,0},
      {1+e,-1+e,0},{1+e,1-e,0}};

u = {{0,0,1},{0,0,1},{0,0,1},{0,0,1},
     {0,0,1},{0,0,1},{0,0,1},{0,0,1},{0,0,1}};
uu = {0,0,1};
p0 = Polygon[a];
p1 = Polygon[a + h u];
p2 = Polygon[a + 2 u];
p3 = Polygon[a + (2+h) u];
p4 = Polygon[a + 4 u];
p5 = Polygon[a + (4+h) u];
pt = {p1,p3,p5};
pb = {p0,p2,p4};
r1 = Polygon[{a[[2]],a[[3]],h uu + a[[3]], h uu + a[[2]], a[[2]]}];
r2 = Polygon[{a[[4]],a[[5]],h uu + a[[5]], h uu + a[[4]], a[[4]]}];
r3 = Polygon[{a[[6]],a[[7]],h uu + a[[7]], h uu + a[[6]], a[[6]]}];
r4 = Polygon[{a[[8]],a[[9]],h uu + a[[9]], h uu + a[[8]], a[[8]]}];
r5 = Polygon[{2 uu + a[[2]],2 uu + a[[3]],2 uu + h uu + a[[3]],
	 2 uu + h uu + a[[2]], 2 uu + a[[2]]}];
r6 = Polygon[{2 uu + a[[4]],2 uu + a[[5]],2 uu + h uu + a[[5]], 
	 2 uu + h uu + a[[4]],2 uu +  a[[4]]}];
r7 = Polygon[{2 uu + a[[6]],2 uu + a[[7]],2 uu + h uu + a[[7]],
	 2 uu + h uu + a[[6]], 2 uu + a[[6]]}];
r8 = Polygon[{2 uu + a[[8]],2 uu + a[[9]],2 uu + h uu + a[[9]],
	 2 uu + h uu + a[[8]], 2 uu + a[[8]]}];
r9 = Polygon[{4 uu + a[[2]],4 uu + a[[3]],4 uu + h uu + a[[3]],
	 4 uu + h uu + a[[2]], 4 uu + a[[2]]}];
r10 = Polygon[{4 uu + a[[4]],4 uu + a[[5]],4 uu + h uu + a[[5]], 
	4 uu + h uu + a[[4]],4 uu +  a[[4]]}];
r11 = Polygon[{4 uu + a[[6]],4 uu + a[[7]],4 uu + h uu + a[[7]],
	 4 uu + h uu + a[[6]], 4 uu + a[[6]]}];
r12 = Polygon[{4 uu + a[[8]],4 uu + a[[9]],4 uu + h uu + a[[9]],
	 4 uu + h uu + a[[8]], 4 uu  + a[[8]]}];
r = {r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12};
q1 = Polygon[b + u];
q2 = Polygon[b + u (1+h)];
q3 = Polygon[b + 3 u];
q4 = Polygon[b + u (3+h)];
q5 = Polygon[b + 5 u];
q6 = Polygon[b + u (5+h)];
qt = {q2,q4,q6};
qb = {q1,q3,q5};
s1 = Polygon[{uu + b[[2]],uu + b[[3]],uu + h uu + b[[3]], 
		uu + h uu + b[[2]], uu + b[[2]]}];
s2 = Polygon[{uu + b[[4]],uu + b[[5]],uu + h uu + b[[5]], 
		uu + h uu + b[[4]],uu +  b[[4]]}];
s3 = Polygon[{uu + b[[6]],uu + b[[7]],uu + h uu + b[[7]],
		uu + h uu + b[[6]], uu + b[[6]]}];
s4 = Polygon[{uu + b[[8]],uu + b[[9]],uu + h uu + b[[9]],
		uu + h uu + b[[8]], uu + b[[8]]}];
s5 = Polygon[{3 uu + b[[2]],3 uu + b[[3]],3 uu + h uu + b[[3]],
	 3 uu + h uu + b[[2]], 3 uu + b[[2]]}];
s6 = Polygon[{3 uu + b[[4]],3 uu + b[[5]],3 uu + h uu + b[[5]], 
	 3 uu + h uu + b[[4]],3 uu +  b[[4]]}];
s7 = Polygon[{3 uu + b[[6]],3 uu + b[[7]],3 uu + h uu + b[[7]],
	 3 uu + h uu + b[[6]], 3 uu + b[[6]]}];
s8 = Polygon[{3 uu + b[[8]],3 uu + b[[9]],3 uu + h uu + b[[9]],
	 3 uu + h uu + b[[8]], 3 uu + b[[8]]}];
s9 = Polygon[{5 uu + b[[2]],5 uu + b[[3]],5 uu + h uu + b[[3]],
	 5 uu + h uu + b[[2]], 5 uu + b[[2]]}];
s10 = Polygon[{5 uu + b[[4]],5 uu + b[[5]],5 uu + h uu + b[[5]], 
	 5 uu + h uu + b[[4]],5 uu +  b[[4]]}];
s11 = Polygon[{5 uu + b[[6]],5 uu + b[[7]],5 uu + h uu + b[[7]],
	 5 uu + h uu + b[[6]], 5 uu + b[[6]]}];
s12 = Polygon[{5 uu + b[[8]],5 uu + b[[9]],5 uu + h uu + b[[9]],
	 5 uu + h uu + b[[8]], 5 uu  + b[[8]]}];
s = {s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12};
t1 = Polygon[{h uu + a[[1]], h uu + a[[2]], 2 uu + a[[2]],
	 2 uu + a[[1]],h uu + a[[1]]}];
t2 = Polygon[{h uu + a[[3]], h uu + a[[4]], 2 uu + a[[4]],
	 2 uu + a[[3]],h uu + a[[3]]}];
t3 = Polygon[{h uu + a[[5]], h uu + a[[6]], 2 uu + a[[6]],
	 2 uu + a[[5]],h uu + a[[5]]}];
t4 = Polygon[{h uu + a[[7]], h uu + a[[8]], 2 uu + a[[8]],
	 2 uu + a[[7]],h uu + a[[7]]}];
t5 = Polygon[{2 uu + h uu + a[[1]], 2 uu + h uu + a[[2]], 4 uu + a[[2]],
	 4 uu + a[[1]],2 uu + h uu + a[[1]]}];
t6 = Polygon[{2 uu + h uu + a[[3]], 2 uu + h uu + a[[4]], 4 uu + a[[4]],
	 4 uu + a[[3]],2 uu + h uu + a[[3]]}];
t7 = Polygon[{2 uu + h uu + a[[5]], 2 uu + h uu + a[[6]], 4 uu + a[[6]],
	 4 uu + a[[5]],2 uu + h uu + a[[5]]}];
t8 = Polygon[{2 uu + h uu + a[[7]],2 uu +  h uu + a[[8]], 4 uu + a[[8]],
	 4 uu + a[[7]],2 uu + h uu + a[[7]]}];
t9 = Polygon[{4 uu + h uu + a[[1]], 4 uu + h uu + a[[2]], (5+hh) uu + a[[2]],
	 (5+hh) uu + a[[1]],4 uu + h uu + a[[1]]}];
t10 = Polygon[{4 uu + h uu + a[[3]], 4 uu + h uu + a[[4]], (5+hh) uu + a[[4]],
	 (5+hh) uu + a[[3]],4 uu + h uu + a[[3]]}];
t11 = Polygon[{4 uu + h uu + a[[5]], 4 uu + h uu + a[[6]], (5+hh) uu + a[[6]],
	 (5+hh) uu + a[[5]],4 uu + h uu + a[[5]]}];
t12 = Polygon[{4 uu + h uu + a[[7]],4 uu +  h uu + a[[8]], (5+hh) uu + a[[8]],
	 (5+hh) uu + a[[7]],4 uu + h uu + a[[7]]}];
t = {(*t1,*)t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12};

x1 = Polygon[{uu + h uu + b[[1]],uu + h uu + b[[2]], 3 uu + b[[2]],
	 3 uu + b[[1]],uu + h uu + b[[1]]}];
x2 = Polygon[{uu + h uu + b[[3]], uu + h uu + b[[4]], 3 uu + b[[4]],
	 3 uu + b[[3]],uu + h uu + b[[3]]}];
x3 = Polygon[{uu + h uu + b[[5]], uu + h uu + b[[6]], 3 uu + b[[6]],
	 3 uu + b[[5]],uu + h uu + b[[5]]}];
x4 = Polygon[{uu + h uu + b[[7]], uu + h uu + b[[8]], 3 uu + b[[8]],
	 3 uu + b[[7]],uu + h uu + b[[7]]}];
x5 = Polygon[{3 uu + h uu + b[[1]], 3 uu + h uu + b[[2]], 5 uu + b[[2]],
	 5 uu + b[[1]],3 uu + h uu + b[[1]]}];
x6 = Polygon[{3 uu + h uu + b[[3]], 3 uu + h uu + b[[4]], 5 uu + b[[4]],
	 5 uu + b[[3]],3 uu + h uu + b[[3]]}];
x7 = Polygon[{3 uu + h uu + b[[5]], 3 uu + h uu + b[[6]], 5 uu + b[[6]],
	 5 uu + b[[5]],3 uu + h uu + b[[5]]}];
x8 = Polygon[{3 uu + h uu + b[[7]],3 uu +  h uu + b[[8]], 5 uu + b[[8]],
	 5 uu + b[[7]],3 uu + h uu + b[[7]]}];
x9 = Polygon[{5 uu + h uu + b[[1]], 5 uu + h uu + b[[2]], (5+hh) uu + b[[2]],
	 (5+hh) uu + b[[1]],5 uu + h uu + b[[1]]}];
x10 = Polygon[{5 uu + h uu + b[[3]], 5 uu + h uu + b[[4]], (5+hh) uu + b[[4]],
	 (5+hh) uu + b[[3]],5 uu + h uu + b[[3]]}];
x11 = Polygon[{5 uu + h uu + b[[5]], 5 uu + h uu + b[[6]], (5+hh) uu + b[[6]],
	 (5+hh) uu + b[[5]],5 uu + h uu + b[[5]]}];
x12 = Polygon[{5 uu + h uu + b[[7]],5 uu +  h uu + b[[8]], (5+hh) uu + b[[8]],
	 (5+hh) uu + b[[7]],5 uu + h uu + b[[7]]}];
x = {x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12};

y1 = Polygon[{h uu + a[[2]],uu + b[[1]], uu + h uu + b[[1]],
		2 uu + a[[2]], h uu + a[[2]]}];
y2 = Polygon[{h uu + a[[4]],uu + b[[3]], uu + h uu + b[[3]],
		2 uu + a[[4]], h uu + a[[4]]}];
y3 = Polygon[{h uu + a[[6]],uu + b[[5]], uu + h uu + b[[5]],
		2 uu + a[[6]], h uu + a[[6]]}];
y4 = Polygon[{h uu + a[[8]],uu + b[[7]], uu + h uu + b[[7]],
		2 uu + a[[8]], h uu + a[[8]]}];
y5 = Polygon[{2 uu + h uu + a[[2]],3 uu + b[[1]],3 uu + h uu + b[[1]],
		4 uu + a[[2]], 2 uu + h uu + a[[2]]}];
y6 = Polygon[{2 uu + h uu + a[[4]],3 uu + b[[3]], 3 uu + h uu + b[[3]],
		4 uu + a[[4]], 2 uu + h uu + a[[4]]}];
y7 = Polygon[{2 uu + h uu + a[[6]],3 uu + b[[5]], 3 uu + h uu + b[[5]],
		4 uu + a[[6]], 2 uu + h uu + a[[6]]}];
y8 = Polygon[{2 uu + h uu + a[[8]],3 uu + b[[7]], 3 uu + h uu + b[[7]],
		4  uu + a[[8]], 2 uu + h uu + a[[8]]}];

y9 = Polygon[{4 uu + h uu + a[[2]],5 uu + b[[1]], 5 uu + h uu + b[[1]], 0.8 (5 uu + h uu + b[[1]]) +
		0.2 (6 uu + a[[2]]), 5 uu + hh uu + a[[2]], 4 uu + h uu + a[[2]]}];
y10 = Polygon[{4 uu + h uu + a[[4]],5 uu + b[[3]], 5 uu + h uu + b[[3]], 0.8 (5 uu + h uu + b[[3]]) +
		0.2 (6 uu + a[[4]]), 5 uu + hh uu + a[[4]], 4 uu + h uu + a[[4]]}];
y11 = Polygon[{4 uu + h uu + a[[6]],5 uu + b[[5]], 5 uu + h uu + b[[5]], 0.8 (5 uu + h uu + b[[5]]) +
		0.2 (6 uu + a[[6]]), 5 uu + hh uu + a[[6]], 4 uu + h uu + a[[6]]}];
y12 = Polygon[{4 uu + h uu + a[[8]],5 uu + b[[7]], 5 uu + h uu + b[[7]], 0.8 (5 uu + h uu + b[[7]]) +
		0.2 (6 uu + a[[8]]), 5 uu + hh uu + a[[8]], 4 uu + h uu + a[[8]]}];

y = {(*y1,*)y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12};	

z1 = Polygon[{h uu + a[[3]],uu + b[[2]], uu + h uu + b[[2]],
		2 uu + a[[3]], h uu + a[[3]]}];
z2 = Polygon[{h uu + a[[5]],uu + b[[4]], uu + h uu + b[[4]],
		2 uu + a[[5]], h uu + a[[5]]}];
z3 = Polygon[{h uu + a[[7]],uu + b[[6]], uu + h uu + b[[6]],
		2 uu + a[[7]], h uu + a[[7]]}];
z4 = Polygon[{h uu + a[[9]],uu + b[[8]], uu + h uu + b[[8]],
		2 uu + a[[9]], h uu + a[[9]]}];
z5 = Polygon[{2 uu + h uu + a[[3]],3 uu + b[[2]],3 uu + h uu + b[[2]],
		4 uu + a[[3]], 2 uu + h uu + a[[3]]}];
z6 = Polygon[{2 uu + h uu + a[[5]],3 uu + b[[4]], 3 uu + h uu + b[[4]],
		4 uu + a[[5]], 2 uu + h uu + a[[5]]}];
z7 = Polygon[{2 uu + h uu + a[[7]],3 uu + b[[6]], 3 uu + h uu + b[[6]],
		4 uu + a[[7]], 2 uu + h uu + a[[7]]}];
z8 = Polygon[{2 uu + h uu + a[[9]],3 uu + b[[8]], 3 uu + h uu + b[[8]],
		4  uu + a[[9]], 2 uu + h uu + a[[9]]}];

z9 = Polygon[{4 uu + h uu + a[[3]],5 uu + b[[2]], 5 uu + h uu + b[[2]], 0.8 (5 uu + h uu + b[[2]]) +
		0.2 (6 uu + a[[3]]), 5 uu + hh uu + a[[3]], 4 uu + h uu + a[[3]]}];
z10 = Polygon[{4 uu + h uu + a[[5]],5 uu + b[[4]], 5 uu + h uu + b[[4]], 0.8 (5 uu + h uu + b[[4]]) +
		0.2 (6 uu + a[[5]]), 5 uu + hh uu + a[[5]], 4 uu + h uu + a[[5]]}];
z11 = Polygon[{4 uu + h uu + a[[7]],5 uu + b[[6]], 5 uu + h uu + b[[6]], 0.8 (5 uu + h uu + b[[6]]) +
		0.2 (6 uu + a[[7]]), 5 uu + hh uu + a[[7]], 4 uu + h uu + a[[7]]}];
z12 = Polygon[{4 uu + h uu + a[[9]],5 uu + b[[8]], 5 uu + h uu + b[[8]], 0.8 (5 uu + h uu + b[[8]]) +
		0.2 (6 uu + a[[9]]), 5 uu + hh uu + a[[9]], 4 uu + h uu + a[[9]]}];

z = {z1,z2,z3,(*z4,*)z5,z6,z7,z8,z9,z10,z11,z12};
g1 = Polygon[{uu + h uu + b[[1]],2 uu + a[[2]], 2 uu + h uu + a[[2]],
		3 uu + b[[1]], uu + h uu + b[[1]]}];
g2 = Polygon[{uu + h uu + b[[3]],2 uu + a[[4]], 2 uu + h uu + a[[4]],
		3 uu + b[[3]], uu + h uu + b[[3]]}];
g3 = Polygon[{uu + h uu + b[[5]],2 uu + a[[6]], 2 uu + h uu + a[[6]],
		3 uu + b[[5]], uu + h uu + b[[5]]}];
g4 = Polygon[{uu + h uu + b[[7]],2 uu + a[[8]], 2 uu + h uu + a[[8]],
		3 uu + b[[7]], uu + h uu + b[[7]]}];
g5 = Polygon[{3 uu + h uu + b[[1]],4 uu + a[[2]], 4 uu + h uu + a[[2]],
		5 uu + b[[1]], 3 uu + h uu + b[[1]]}];
g6 = Polygon[{3 uu + h uu + b[[3]],4 uu + a[[4]], 4 uu + h uu + a[[4]],
		5 uu + b[[3]], 3 uu + h uu + b[[3]]}];
g7 = Polygon[{3 uu + h uu + b[[5]],4 uu + a[[6]], 4 uu + h uu + a[[6]],
		5 uu + b[[5]], 3 uu + h uu + b[[5]]}];
g8 = Polygon[{3 uu + h uu + b[[7]],4 uu + a[[8]], 4 uu + h uu + a[[8]],
		5 uu + b[[7]], 3 uu + h uu + b[[7]]}];

g9 = Polygon[{5 uu + h uu + b[[1]],(5+hh) uu + b[[1]], 
		0.2 (6 uu + a[[2]]) + 0.8 (5 uu + h uu + b[[1]]), 5 uu + h uu + b[[1]]}];
g10 = Polygon[{5 uu + h uu + b[[3]],(5+hh) uu + b[[3]], 
		0.2 (6 uu + a[[4]]) + 0.8 (5 uu + h uu + b[[3]]), 5 uu + h uu + b[[3]]}];
g11 = Polygon[{5 uu + h uu + b[[5]],(5+hh) uu + b[[5]], 
		0.2 (6 uu + a[[6]]) + 0.8 (5 uu + h uu + b[[5]]), 5 uu + h uu + b[[5]]}];
g12 = Polygon[{5 uu + h uu + b[[7]],(5+hh) uu + b[[7]], 
		0.2 (6 uu + a[[8]]) + 0.8 (5 uu + h uu + b[[7]]), 5 uu + h uu + b[[7]]}];

g = {g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11,g12};
f1 = Polygon[{uu + h uu + b[[2]],2 uu + a[[3]], 2 uu + h uu + a[[3]],
		3 uu + b[[2]], uu + h uu + b[[2]]}];
f2 = Polygon[{uu + h uu + b[[4]],2 uu + a[[5]], 2 uu + h uu + a[[5]],
		3 uu + b[[4]], uu + h uu + b[[4]]}];
f3 = Polygon[{uu + h uu + b[[6]],2 uu + a[[7]], 2 uu + h uu + a[[7]],
		3 uu + b[[6]], uu + h uu + b[[6]]}];
f4 = Polygon[{uu + h uu + b[[8]],2 uu + a[[9]], 2 uu + h uu + a[[9]],
		3 uu + b[[8]], uu + h uu + b[[8]]}];
f5 = Polygon[{3 uu + h uu + b[[2]],4 uu + a[[3]], 4 uu + h uu + a[[3]],
		5 uu + b[[2]], 3 uu + h uu + b[[2]]}];
f6 = Polygon[{3 uu + h uu + b[[4]],4 uu + a[[5]], 4 uu + h uu + a[[5]],
		5 uu + b[[4]], 3 uu + h uu + b[[4]]}];
f7 = Polygon[{3 uu + h uu + b[[6]],4 uu + a[[7]], 4 uu + h uu + a[[7]],
		5 uu + b[[6]], 3 uu + h uu + b[[6]]}];
f8 = Polygon[{3 uu + h uu + b[[8]],4 uu + a[[9]], 4 uu + h uu + a[[9]],
		5 uu + b[[8]], 3 uu + h uu + b[[8]]}];

f9 = Polygon[{5 uu + h uu + b[[2]],(5+hh) uu + b[[2]], 
		0.2 (6 uu + a[[3]]) + 0.8 (5 uu + h uu + b[[2]]), 5 uu + h uu + b[[2]]}];
f10 = Polygon[{5 uu + h uu + b[[4]],(5+hh) uu + b[[4]], 
		0.2 (6 uu + a[[5]]) + 0.8 (5 uu + h uu + b[[4]]), 5 uu + h uu + b[[4]]}];
f11 = Polygon[{5 uu + h uu + b[[6]],(5+hh) uu + b[[6]], 
		0.2 (6 uu + a[[7]]) + 0.8 (5 uu + h uu + b[[6]]), 5 uu + h uu + b[[6]]}];
f12 = Polygon[{5 uu + h uu + b[[8]],(5+hh) uu + b[[8]], 
		0.2 (6 uu + a[[9]]) + 0.8 (5 uu + h uu + b[[8]]), 5 uu + h uu + b[[8]]}];

f = {f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12};


v = {25,12,15};

Show[Graphics3D [ {GrayLevel[0.5], pt}],
	Graphics3D [ {GrayLevel[0.5], qt}],
	Graphics3D [ {GrayLevel[0.4], pb}],
	Graphics3D [ {GrayLevel[0.4], qb}],
	Graphics3D [ {GrayLevel[0.6], r}],
	Graphics3D [ {GrayLevel[0.6], s}],
	Graphics3D [ {GrayLevel[0.9], t}],
	Graphics3D [ {GrayLevel[0.9], x}],
	Graphics3D [ {GrayLevel[0.9], y}],
	Graphics3D [ {GrayLevel[0.9], z}],
	Graphics3D [ {GrayLevel[0.9], g}],
	Graphics3D [ {GrayLevel[0.9], f}],
ViewPoint -> v, PlotRange -> All,
	Lighting -> False, Boxed -> False ];

Show[Graphics3D [ {GrayLevel[0.5], pt}],
	Graphics3D [ {GrayLevel[0.5], qt}],
	Graphics3D [ {GrayLevel[0.4], pb}],
	Graphics3D [ {GrayLevel[0.4], qb}],
	Graphics3D [ {GrayLevel[0.6], r}],
	Graphics3D [ {GrayLevel[0.6], s}],
	ViewPoint -> v, PlotRange -> All,
	Lighting -> False, Boxed -> False ];