#declare HeatOutTube = cylinder { <0, 0, 0>, <45, 0, 0>, 0.9 scale 1 rotate <0, 0, 0> translate <0, 0, 0> } #declare HeatOutPigment = pigment { color rgb <0.113725, 0.203922, 1> } #declare PistonPigment = pigment { color rgb <1, 0.266667, 0.988235> } #declare OuterPigment = pigment { color rgb <1, 0.0588235, 0.0588235> } #declare InsulatorPigment_1 = pigment { color rgb <0.807843, 0.890196, 0.45098> } #declare CrankShaftSpeed = pigment { color rgb <1, 0.0470588, 0.729412> } global_settings { adc_bailout 0.0039216 assumed_gamma 1.5 noise_generator 2 } #declare DeclarePiston = merge { cylinder { //*PMName CylinderSeal <0, 1, 0>, <0, -1, 0>, 7 scale 1 rotate <0, 0, 0> translate y*(-9.9) pigment { color rgb <0.898039, 0.788235, 0.54902> } } cylinder { //*PMName Piston <0, 11, 0>, <0, -11, 0>, 6 scale 1 rotate <0, 0, 0> translate <0, 0, 0> pigment { PistonPigment } } } light_source { <-11, 6, 7>, rgb <1, 1, 1> } camera { perspective location <-39, 9, 11> sky <0, 1, 0> direction <0, 0, 1> right <1.3333, 0, 0> up <0, 1, 0> look_at <1, 0, -4> } merge { //*PMName TubeAndAccessories object { //*PMName Piston DeclarePiston scale 1 rotate <0, 0, 0> translate <-12, 22, 0> } difference { //*PMName PressureTube cylinder { //*PMName PressureTube <-19, 0, 0>, <49, 0, 0>, 13.5 scale 1 rotate <0, 0, 0> translate <0, 0, 0> no_reflection } cylinder { //*PMName PressureTubeInner <-21, 0, 0>, <49.1, 0, 0>, 13 scale 1 rotate <0, 0, 0> translate <0, 0, 0> no_reflection } pigment { OuterPigment } } intersection { //*PMName Insulator box { //*PMName CutIntoHalf <-25, 21, -99>, <55, -8, 99> scale 1 rotate <0, 0, 0> translate <0, 0, 0> } difference { //*PMName Insulator cylinder { //*PMName outer <-2, 0, 0>, <48, 0, 0>, 12.99 scale 1 rotate <0, 0, 0> translate <0, 0, 0> } cylinder { //*PMName subtractShaderOuter <-3, 0, 0>, <49, 0, 0>, 10.3 scale 1 rotate <0, 0, 0> translate y*(-2) } intersection { box { <-1, -0.5, -0.5>, <3, 0.5, 0.5> rotate x*45 scale <21, 23, 14> translate y*11 } cylinder { //*PMName inner <-3, 0, 0>, <57, 0, 0>, 11.5 open scale 1 rotate <0, 0, 0> translate <0, 0, 0> } } } pigment { InsulatorPigment_1 color rgb <0.843137, 0.92549, 0.0901961> } } translate y*2 } merge { //*PMName Shader intersection { //*PMName ShaderMask box { //*PMName CutIntoHalf <-5, -21, -99>, <55, 4.5, 99> scale 1 rotate <0, 0, 0> translate <0, 0, 0> } difference { //*PMName shader cylinder { //*PMName outer <0, 0, 0>, <48, 0, 0>, 10 scale 1 rotate <0, 0, 0> translate <0, 0, 0> } cylinder { //*PMName inner <1, 0, 0>, <47, 0, 0>, 9.2 scale 1 rotate <0, 0, 0> translate <0, 0, 0> } pigment { color rgb <0.3, 1, 0.3> } } rotate x*98 } cylinder { //*PMName ShaderShaft <-19, 0, 0>, <51, 0, 0>, 1 pigment { CrankShaftSpeed } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } } #declare DeclareHeatOutTemplate = merge { //*PMName HeatOut cylinder { //*PMName CrossTube <0, 0.5, 0>, <0, -0.5, 0>, 0.9 scale <1, 7, 1> rotate x*107.8 translate <0, -1.19763, 3.72001> } object { //*PMName Tube1 HeatOutTube scale 1 rotate <0, 0, 0> translate <0, -1.01363, 3.27648> } object { //*PMName Tube2 HeatOutTube scale 1 rotate <0, 0, 0> translate <0, -2.07418, 6.22254> } } merge { //*PMName HeatOutAssembled object { //*PMName Tube0 HeatOutTube scale <1.35, 1, 1> rotate <0, 0, 0> translate x*(-4) } object { //*PMName heatOut0 DeclareHeatOutTemplate scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName heatOut1 DeclareHeatOutTemplate scale <1, 1, -1> rotate <0, 0, 0> translate <0, 0, 0> } pigment { HeatOutPigment } translate y*11.7 }