Marble machine making of 2

The Channel

Below you can see some parts of the channel. Most of them are parametric.

#macro looping(rad,rad_rin)
difference
        {
        union{
                difference{
                      torus { rad,rad_rin+0.2  }
                      torus {  rad,rad_rin }
                      box {<-2*rad,-2,0>,<2*rad,2,2*rad>}
                      translatex*rad
                      rotatez*-12
                 }
                difference{
                      torus { rad,rad_rin+0.2  }
                      torus {  rad,rad_rin }
                      box {<-2*rad,-2,0>,<2*rad,2,-2*rad>}
                      translatex*rad
                      rotatez*12
                 }
             }  
       cone {y*-(1+2*rad_rin),rad,y*(1+2*rad_rin),rad+0.4translatex*rad} 
       translatex*-(rad*2)
       //rotate y*180texture {
              DMFWood5 finish {diffuse0.9phong0.8} scale4
              }
 
       rotatex*90rotatez*-90
 
       }
#end

#macro kurfen_rinne(rad,rad_rin)
difference{
              torus { rad,rad_rin+0.1  }
              torus {  rad,rad_rin }
              box {<-2*rad,0,-2*rad>,<2*rad,2*rad,2*rad>}
              box {<-2*rad,-2*rad,0>,<2*rad,2*rad,2*rad>}
                  texture {
                          DMFWood5 finish {diffuse0.9phong0.8} scale4
                          }
              }
#end