//shield #declare s1=merge{ object{cylinder{<-1.5,1.5,0><-1.5,1.5,0.5> 2.5} } object{cylinder{< 1.5,1.5,0>< 1.5,1.5,0.5> 2.5} } object{box{<-1.5,-1.5,0>< 1.5,1.5,0.5> } } object{box{<-3.8,1.5,0>< 3.8,8,0.5> } } } #declare s2= difference{ object{s1} object{cylinder{< -2.1,0,-.1>< -2.1,0,0.6> 2} scale y*.25 translate -y*1.5} object{cylinder{< 2.1,0,-.1>< 2.1,0,0.6> 2} scale y*.25 translate -y*1.5} object{cylinder{<-6.4,4.3,-.1><-6.4,4.3,0.6> 3.2} } object{cylinder{< 6.4,4.3,-.1>< 6.4,4.3,0.6> 3.2} } object{box{<0,0,-.1><2.8,2.8,0.6>} rotate z*45 translate <-3.8,5.9,0>} object{box{<0,0,-.1><2.8,2.8,0.6>} rotate z*45 translate <3.8,5.9,0>} object{cylinder{<-1.4,8.1,-.1><-1.4,8.1,0.6> 1.7} } object{cylinder{<1.4,8.1,-.1><1.4,8.1,0.6> 1.7} } } #declare s3= difference{ object{s2 translate -y*3.5} object{s2 translate -y*3.5 scale <0.95,0.95,2> translate -z*.05}} #declare shield= object{s3 scale 0.7 translate y*3.5}