Ruby - 233
mutable strings ;) No arbitrary "99" limits. pfft :p
Had to lose the picture of the cube in the source though
S=gets.split.map{|x|x.to_i}<<0
S.max.downto(S.min){|y|e=" ";q=e*3;r=e*3
S.map{|x|a=0,x;if(w=a.min)<=y&&x!=0&&y<z=a.max
r[-3,4]="| | |";q[-3,4]="|___|/"+(y>w ?"|":e)else(z=z!=y)?q+=e*4:q[-2,4]="/__ /|"
r+=z ?e*4:"__ "end}
puts r,q}
Ruby - 243
Delete the extra space I put in there to get the nice picture of the cube
S=gets.split.map{|x|x.to_i}<<0
S.max.downto(S.min){|y|e=" ";q=e*3;r=e*3
S.map{|x|a=0,x;if(w=a.min)<=y&&x!=0&&y<=z=a.max
if z==y;r+="__ "
q[-2,3]="/__ /|"else
r[-3,4]="| | |"
q[-3,4]="|___|/"+(y>w ?e:"|")end
else r+=e*4;q+=e*4 end}
puts r,q}
$ echo 1 3 7 3 3 |ruby pc.rb
__
/__ /|
| | |
|___|/|
| | |
|___|/|
| | |
|___|/|
_| | |__ __
/__|___|/__ /__ /|
| | | | | |
|___|___|___|___|/|
_| | | | | |
/__|___|___|___|___|/|
| | | | | | |
|___|___|___|___|___|/