// Erector Set // by // Mark Vernon // Start Date 1/3/95 // Last Mod 1/31/95 #include "shapes.inc" #include "SHAPES2.INC" #include "Girders.inc" #include "Ceiling Wax, etc.inc" camera { location < -7, 6, -8> // for overall crane cam loc < -7, 6, -8> direction < 0, 0, 1> // look at <-4.2, 3.75, 0> up < 0, 1, 0> right < 1.33, 0, 0> look_at < -4.2, 3.75, 0> } #declare White = color rgb < 1, 1, 1> #declare Black = color rgb < 0, 0, 0> #declare LightGray = color rgb <0.658824, 0.658824, 0.658824> #declare Turquoise = color rgb <0.678431, 0.917647, 0.917647> #declare LtTurquoise = color rgb <0.738431, 0.937647, 0.937647> #declare DkGoldenRod = color rgb < 0.82, 0.82, 0.40> light_source { <-30, 16, -20> color White } // A white light above and behind the camera light_source { < 5, 8, -10> color White } #declare DMFLightOak = pigment {wood turbulence 0.05 // For best results, keep this low! scale <0.2, 0.2, 1> // Scaled for a unit object color_map {[0.00, 0.10 color red 0.42 green 0.26 blue 0.15 color red 0.42 green 0.26 blue 0.15] [0.10, 0.90 color red 0.42 green 0.26 blue 0.15 color red 0.52 green 0.37 blue 0.26] [0.90, 1.01 color red 0.52 green 0.37 blue 0.26 color red 0.52 green 0.37 blue 0.26] } } #declare Chrome_Texture = texture {pigment{color LightGray} finish {ambient 0.3 diffuse 0.7 reflection 0.15 brilliance 8 specular 0.8 roughness 0.1 } } #declare Chrome_Metal = texture { Chrome_Texture } #declare GirderColor = texture { Chrome_Metal normal { wrinkles .03 scale.3 }} // ********** Floor *********** #declare Floor = object { box { <-12, 0, -10> <10, 1, 4> } texture { DMFLightOak scale .25 } finish { reflection 0.15 phong 0.0 } } // ********** Wall ************ //Back Wall object { union { box { <-17, 0, 4> <17, 25, 4.1> pigment { color LtTurquoise } finish { reflection 0.0 phong 0.0 } } box { <-17, 1, 3.8> <17, 2.5, 4> } cylinder { <-17, 2.5, 4> <17, 2.5, 4> .2 } cylinder { <-17, 1.1, 3.8> <17, 1.1, 3.8> .2 } } texture { DMFLightOak scale .15 rotate < 0, 90, 0> } finish { reflection 0.0 phong 0.0 } } ********** Boom ************ #declare BoomSet1 = union { object { ShStraightGirder rotate < 0, 0, 0> translate < 0, 0, 0> } object { ShStraightGirder rotate < 0, 0, 0> translate < 0, 1.62, 0> } object { SupportMem rotate <180, 0, 38> translate < -.08, 1.05, .01> } object { SupportMem rotate <180, 0,-38> translate < .08, 1.05, .01> } object { ScrewAndNut rotate < 0, 0, 0> translate < 1.04, .01, -.01> } object { ScrewAndNut rotate < 0, 0, 0> translate < 1.05, 1.63, -.009> } } #declare BoomSect = union { object { BoomSet1 } object { BoomSet1 rotate < 90, 0, 0> translate < 0, 1.97, .08> } object { BoomSet1 rotate <180, 0, 0> translate < 0, 1.93, 2.04> } object { BoomSet1 rotate <-90, 0, 0> translate < 0, -.04, 1.97> } } #declare BoomTopSide = union { object { LgStraightGirder rotate < 0, 0, 7> translate <-7.37, 1.38, 0> } object { LgStraightGirder rotate < 0, 0, -7> translate <-7.37, .25, 0> } object { TriHoleGirder rotate < 0, 0, 90> translate <-9.31, .95, .1> } object { ScrewAndNut rotate < 0, 0, 20> translate <-9.39, .51, 0> } object { ScrewAndNut rotate < 0, 0, 70> translate <-9.31, 1.21, 0> } object { ScrewAndNut rotate < 0, 0, 0> translate <-5.25, 0, -.01> } object { ScrewAndNut rotate < 0, 0, 0> translate <-5.25, 1.62, -.01> } object { SupportMem scale .88 rotate <180, 0, 29> translate <-7.34, 1.2, .01> } object { ScrewAndNut rotate < 0, 0, 0> translate <-8.40, .38, 0> } object { ScrewAndNut rotate < 0, 0, 0> translate <-6.35, 1.54, 0> } object { SupportMem scale .88 rotate <180, 0, -29> translate <-7.38, 1, .01> } object { ScrewAndNut rotate < 0, 0, 0> translate <-8.40, 1.30, 0> } object { ScrewAndNut rotate < 0, 0, 0> translate <-6.33, .14, 0> } } #declare Boom = object{ union { object { ShStraightGirder rotate < 0, 0, -23> translate <1.9, 1.22, 0> } object { ShStraightGirder rotate < 0, -3, 23> translate <2.02, .4, 0> } object { ShStraightGirder rotate < 0, 180, -23> translate <1.9, 1.22, 2.04> } object { ShStraightGirder rotate < 0, 177, 23> translate <2.02, .4, 2.04> } object { BoomSect } object { BoomSect translate <-2.12, 0, 0> } object { BoomSect translate <-4.24, 0, 0> } object { ScrewAndNut rotate < 0, 0, 0> translate <-5.25, 0, -.01> } object { ScrewAndNut rotate < 0, 0, 0> translate <-5.25, 1.62, -.01> } object { Axle scale <.75, 1, 1> rotate < 0, 90, 0> translate <1.98, 1.37, 1.1> } object { Pulley translate <1.98, 1.37, 1> } object { BoomTopSide rotate < 0, 3, 0> translate < 0, 0, -.17> } object { BoomTopSide rotate <180, -3, 0> translate < 0, 1.89, 2.19> } object { Axle scale <.55, 1, 1> rotate < 0, 90, 0> translate <-9.41, .94, 1.02> } object { Pulley translate <-9.41, .94, 1> } object { cylinder{<-9.41, .84, 1.08> <1.75, .84, 1.08> .045} rotate <0, 0, -3.7 > pigment { color White } finish { roughness .8 diffuse 1 reflection 0 crand .05 } } } scale .7 } // ************ Let's build a crane ************ object { Floor } object { CraneBase } object { SmMountBrktGrp rotate <-90, 0, 0> translate < 1, 1.66, 0.31> } object { SmMountBrktGrp rotate <-90, 180, 0> translate < .75, 1.66, -0.31> } object { ScrewAndNut rotate < 90, 0, 0> translate < 1.28, 1.67, .32> } object { ScrewAndNut rotate < 90, 45, 0> translate < .41, 1.67, .36> } object { ScrewAndNut rotate < 90, 0, 0> translate < 1.28, 1.67, -.59> } object { ScrewAndNut rotate < 90, 45, 0> translate < .4, 1.67, -.56> } object { Crank rotate < 33, -90, 0> translate < 1, 2.72, 0> } object { CraneSpoolSide translate < 1, 2.72, -.2> } object { CraneSpoolSide translate < 1, 2.72, .2> } object { SpoolString translate < 1, 2.72, 0> } object { Boom rotate < 0, 0,-35> translate <-2.76, 2.45, -.715> } object { BracketwScrews translate < -.71, 1.67, -.74> } object { BracketwScrews rotate < 0, 180, 0> translate < -.71, 1.67, .8> } object { StringNot translate <-8.14, 2.75, .03> } object { PulleyString translate <-7.79, 6.76, 0> } object { Boom rotate < 0, 0,-35> translate <-2.76, 2.45, -.715> } object { BracketwScrews translate < -.71, 1.67, -.74> } object { BracketwScrews rotate < 0, 180, 0> translate < -.71, 1.67, .8> } object { StringNot translate <-8.14, 2.75, .03> } object { PulleyString translate <-7.79, 6.76, 0> } object { ShStraightGirder rotate < 90, -25, 0> translate <-6.05, 1.02, 1> } object { LgStraightGirder rotate < 90, 30, 0> translate < -6, 1.02, -1> } object { Pulley rotate < 90, 0, 0> translate < -3.4, 1.02, -1> } object { Wrench rotate < 90, -50, 0> translate < -.5, 1.07, -2.5> } object { SupportMem rotate < 90, 80, 0> translate < -4.9, 1.02, .5> } object { Nut rotate < 90, 0, 0> translate < -2.2, 1.06, -2.5> } object { Nut rotate < 90, 0, 0> translate < -2.4, 1.06, -2.8> } object { Nut rotate < 90, 0, 0> translate < -2.0, 1.06, -2.6> } object { Screw rotate <-25, 45,-50> translate < -2.7, 1.02, -2.4> } object { Screw rotate <-25, -23,-50> translate < -2.0, 1.02, -2.0> }