#macro escalier(epaisseur) union { prism // step 1 { 0.00, -epaisseur 5, < -0.3, 0.0>, < -0.9, 0.0>, < -0.9, 0.3>, < -0.3, 0.3>, < -0.3, 0.0> translate <0,0.15,0> } prism // step 2 { 0.00, -epaisseur 4, < -0.3, 0.3>, < -0.9, 0.3>, < -0.9, 0.9>,< -0.3, 0.3> translate <0,0.30,0> } prism // step 3 { 0.00, -epaisseur 4, < -0.3, 0.3>, < -0.9, 0.9>, < -0.3, 0.9>, < -0.3, 0.3> translate <0,0.45,0> } prism // step 4 { 0.00, -epaisseur 5, < 0.0, 0.0>, < -0.3, 0.0>, < -0.3, 0.9>, < 0.0, 0.9>, < 0.0, 0.0> translate <0,0.60,0> } prism // 5 { 0.00, -epaisseur 7, < 0.0, 0.00>, < -0.9, 0.00>, < -0.9, 0.15>, < -0.3, 0.15>, < -0.3, 0.60>, < 0.0, 0.60>, < 0.0, 0.00> // point 7 = point 1 translate <0,0,-epaisseur> rotate <-90,0,0> } prism // 6 { 0.00, -epaisseur 7, < 0.00, 0.00>, < -0.3-epaisseur, 0.00>, < -0.3-epaisseur, 0.30>, < -0.9, 0.30>, < -0.9, 0.45>, < 0.00, 0.45>, < 0.00, 0.00> // point 7 = point 1 translate <-0.0,0.30,0.15 -epaisseur> rotate <0,90,90> } prism // 7 { 0.00, epaisseur 5, < 0.0, 0.00>, < -0.6, 0.00>, < -0.6, 0.15>, < 0.0, 0.15>, < 0.0, 0.00> translate <-0.3,0.30 ,-0.30 +epaisseur> rotate <90,0,0> } prism // 8 { 0.00, 0.15, 5, < -0.3, 0.30>, < -0.90, 0.90>, < -0.90 + epaisseur * sqrt(2), 0.90>, < -0.30, 0.30 + epaisseur * sqrt(2)>, < -0.30, 0.30> translate <0,0.30 -epaisseur,0> rotate <0,0,0> } texture { pigment { color rgb <0.85,0.85,0.88> } normal { granite bump_size .035 scale 1/62 } finish { ambient 0.2 diffuse 0.7 specular 0.9 roughness 0.01 reflection 0.2 } } } #end #macro cylindre() union{ cylinder { < 0.07,0, 0.07>, < 0.07,5.5, 0.07>, 0.025 } cylinder { <-0.07,0,-0.07>, <-0.07,5.5,-0.07>, 0.025 } cylinder { < 0.07,0,-0.07>, < 0.07,5.5,-0.07>, 0.025 } cylinder { <-0.07,0, 0.07>, <-0.07,5.5, 0.07>, 0.025 } texture { pigment { color rgb <0.4,0.02,0.02> } finish { ambient 0.4 diffuse 0.4 specular 0.7 roughness 0.01 reflection 0.8 } } } #end #macro escalier_total() object { escalier(0.01) translate 0 rotate 0 } object { escalier(0.01) translate <0,0.60,0> rotate <0,90,0> } object { escalier(0.01) translate <0,1.20,0> rotate <0,180,0> } object { escalier(0.01) translate <0,1.80,0> rotate <0,270,0> } object { escalier(0.01) translate <0,2.40,0> rotate 0 } object { escalier(0.01) translate <0,3.00,0> rotate <0,90,0> } object { escalier(0.01) translate <0,3.60,0> rotate <0,180,0> } object { escalier(0.01) translate <0,4.20,0> rotate <0,270,0> } cylindre() #end //escalier_total()