#local ERR=0.01; #local EDGE = intersection { cylinder { <-10,-1,-1>, <10,-1,-1>, 1 } box { <-11,-1,-1>,<11,0,0> } } #local IEDGE = difference { box { <-10,-1,-1>,<10,0,0> } object { EDGE scale (1+ERR) } scale (1+ERR) translate ERR/2*<0,1,1> //material { Color4 } scale <1,0.5,0.5> } #local _54200_basic = merge { box { < 9,0,9>, <-9,-1,-9> } box { < 10,-1,10>, <-10,-4,-10> } difference { box { <10,-4,10>, <-10,-16,-10> } box { <20,0,20>,<-20,-32,-20> rotate 31*x translate <0,-10,0>} } } #local _54200_core = difference { box { <6,1,6>, <-6,-12,-6> } box { <20,0,20>,<-20,-32,-20> rotate 31*x translate <0,-7.18,0>} } #local _54200_basic_hollow = difference { object { _54200_basic } object { _54200_core } cylinder { <0,1,0>,<0,-5,0>, 6.01 } } #local _54200_round = difference { object { _54200_basic_hollow } object { IEDGE scale <1,2,2> rotate 180*x translate <0,-4.5,-10> } object { IEDGE scale <1,3,3> rotate 118*x translate <0,-16,10> } object { IEDGE scale <1,3,3> rotate 90*x translate <0,-16,10> } object { IEDGE scale <2,1,1> rotate 90*x rotate 90*y rotate 31*x translate <10,-10,0> } object { IEDGE scale <2,1,1> rotate 90*x rotate -90*y rotate 31*x translate <-10,-10,0> } object { IEDGE rotate 90*z rotate 90*y translate <10,-10,10> } object { IEDGE rotate 90*z rotate 90*y translate <10,-10,10> rotate 90*y } object { IEDGE rotate 90*z rotate 90*y translate <10,-10,10> rotate 180*y } object { IEDGE rotate 90*z rotate 90*y translate <10,-10,10> rotate -90*y } } #declare _54200_dot_dat = #if (QUAL = 0) box { <-10,-16,-10>, <10,0,10> } #else object { _54200_round } #end #declare _50746_dot_dat = _54200_dot_dat;