時計の文字盤

 文字盤の形状を定義します。
 //**********************************************************************************
  #local Lw=1;
  #local Clockface =
  union {
   torus { 136,3*Lw/2 }
   #local Ei=12; #local Si=0; #while( Si < Ei )
   cylinder { 130*x,136*x,3*Lw/2 rotate (360*Si/Ei)*y }
   #local Si=Si+1; #end
   torus { 130,Lw }
   torus { 91,Lw }
   disc { 0 y, 130, 91 }

   #local L=91+(130-91)/2;
   union {
   text { ttf "cyrvetic.ttf", "12", 1e-4, 0 scale 30 rotate 90*x translate <-14,1,-10+L> }
   text { ttf "cyrvetic.ttf", "1", 1e-4, 0 scale 34 rotate 90*x
       translate <-5+L*cos(radians(60)),1,-10+L*sin(radians(60))> }
   text { ttf "cyrvetic.ttf", "2", 1e-4, 0 scale 34 rotate 90*x
       translate <-6+L*cos(radians(30)),1,-10+L*sin(radians(30))> }
   text { ttf "cyrvetic.ttf", "3", 1e-4, 0 scale 34 rotate 90*x translate <-9+L,1,-10> }
   text { ttf "cyrvetic.ttf", "4", 1e-4, 0 scale 34 rotate 90*x
       translate <-8+L*cos(radians(-30)),1,-10+L*sin(radians(-30))> }
   text { ttf "cyrvetic.ttf", "5", 1e-4, 0 scale 34 rotate 90*x
       translate <-8+L*cos(radians(-60)),1,-10+L*sin(radians(-60))> }
   text { ttf "cyrvetic.ttf", "6", 1e-4, 0 scale 34 rotate 90*x translate <-8,1,-10-L> }
   text { ttf "cyrvetic.ttf", "7", 1e-4, 0 scale 34 rotate 90*x
       translate <-3+L*cos(radians(-120)),1,-12+L*sin(radians(-120))> }
   text { ttf "cyrvetic.ttf", "8", 1e-4, 0 scale 34 rotate 90*x
       translate <-8+L*cos(radians(-150)),1,-10+L*sin(radians(-150))> }
   text { ttf "cyrvetic.ttf", "9", 1e-4, 0 scale 33 rotate 90*x translate <-8-L,1,-10> }
   text { ttf "cyrvetic.ttf", "10", 1e-4, 0 scale 30 rotate 90*x
       translate <-13+L*cos(radians(150)),1,-10+L*sin(radians(150))> }
   text { ttf "cyrvetic.ttf", "11", 1e-4, 0 scale 30 rotate 90*x
       translate <-13+L*cos(radians(120)),1,-10+L*sin(radians(120))> }
   pigment { rgb <0.1,0.2,0.3> } }

   torus { 78,Lw }
   #local Ei=12*4; #local Si=0; #while( Si < E i)
   cylinder { 78*x,91*x,Lw rotate 360*Si/Ei*y }
   #local Si=Si+1; #end
   torus { 39,Lw }
   #local Ei=12; #local Si=0; #while( Si < E i)
   cylinder { 39*x,78*x,Lw rotate 360*Si/Ei*y }
   #local Si=Si+1; #end
  }
 //**********************************************************************************
 True Type font を用いて時刻の文字を描画しています。