#declare DeclareFerritPigment = pigment { color rgb <0.156863, 0.364706, 0.152941> } #declare Declare_Ferrit = difference { //*PMName U_Ferrit box { //*PMName outer <-23, -14, -14>, <23, 25, 14> scale 1 rotate <0, 0, 0> translate <0, 0, 0> } box { //*PMName missing_box <-8, 0, -14.1>, <8, 26, 14.1> scale 1 rotate <0, 0, 0> translate <0, 0, 0> } pigment { DeclareFerritPigment } translate y*(-50) } #declare Declare_MagnetPigment = pigment { //*PMName magnetpigment color rgb <0.0901961, 0.686275, 0.129412> } #declare Declare1Magnet = merge { cylinder { //*PMName smallmagnet <-7.5, 0, 0>, <7.5, 0, 0>, 5 scale 1 rotate <0, 0, 0> translate y*33 } cylinder { //*PMName bigmagnet <-2.5, 0, 0>, <2.5, 0, 0>, 6 scale 1 rotate <0, 0, 0> translate y*33 } pigment { Declare_MagnetPigment } } #declare DeclareMagnets = union { cylinder { //*PMName Stainless_steel_magnetholder <-7.49, 0, 0>, <7.49, 0, 0>, 42 pigment { color rgb <0.807843, 0.807843, 0.372549> } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName Magnet0 Declare1Magnet scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName Magnet1 Declare1Magnet scale 1 rotate x*45 translate <0, 0, 0> } object { //*PMName Magnet2 Declare1Magnet scale 1 rotate x*90 translate <0, 0, 0> } object { //*PMName Magnet3 Declare1Magnet scale 1 rotate x*135 translate <0, 0, 0> } object { //*PMName Magnet4 Declare1Magnet scale 1 rotate x*180 translate <0, 0, 0> } object { //*PMName Magnet5 Declare1Magnet scale 1 rotate x*225 translate <0, 0, 0> } object { //*PMName Magnet6 Declare1Magnet scale 1 rotate x*270 translate <0, 0, 0> } object { //*PMName Magnet7 Declare1Magnet scale 1 rotate x*315 translate <0, 0, 0> } object { //*PMName Ferrit0 Declare_Ferrit scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName Ferrit1 Declare_Ferrit scale 1 rotate x*(-60) translate <0, 0, 0> } cylinder { //*PMName magnetHolderSplittingCheat <-0.1, 0, 0>, <0.1, 0, 0>, 42.01 scale 1 rotate <0, 0, 0> translate x*2.5 } } #declare UNUSEDeclare_TeslapumpDiameter = cylinder { //*PMName TeslaPump_bounding_cylinder <-999, 0, 0>, <999, 0, 0>, 14 scale 1 rotate <0, 0, 0> translate <0, 0, 0> } #declare Declare_BlowupBox = box { //*PMName BlowupBox <999, 0, 999>, <-999, -999, -999> scale 1 rotate <0, 0, 0> translate <0, 0, 0> } #declare Declare_SteelPigment_2 = pigment { color rgb <0.701961, 0.701961, 0.701961> } #declare Declare_SteelPigment = pigment { color rgb <0.54902, 0.482353, 0.843137> } #declare Declare_BronzPigment = pigment { color rgb <0.843137, 0.596078, 0.431373> } #declare Declare_SteelCylinder = cylinder { //*PMName steel_cylinder_1mm <-0.5, 0, 0>, <0.5, 0, 0>, 0.5 pigment { Declare_SteelPigment } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } #declare Declare_TeslaDisk = cylinder { <-0.25, 0, 0>, <0.25, 0, 0>, 50 pigment { Declare_SteelPigment_2 } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } #declare Declare_BearingCone = merge { cylinder { <0, 0, 0>, <1, 0, 0>, 8 pigment { Declare_BronzPigment } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } cone { //*PMName BearingConePlus <1, 0, 0>, 8, <10, 0, 0>, 6 pigment { Declare_BronzPigment } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } } plane { //*PMName ground <0, -1, 0>, 66 pigment { color rgb <0.780392, 0.780392, 0.780392> } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } #declare DeclareTeslaTurbine = merge { //*PMName TeslaTurbineDisks object { //*PMName TeslaDisk0 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName TeslaDisk1 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*1 } object { //*PMName TeslaDisk2 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*2 } object { //*PMName TeslaDisk3 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*3 } object { //*PMName TeslaDisk4 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*4 } object { //*PMName TeslaDisk5 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*5 } object { //*PMName TeslaDisk6 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*6 } object { //*PMName TeslaDisk7 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*7 } object { //*PMName TeslaDisk8 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*8 } object { //*PMName TeslaDisk9 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*9 } object { //*PMName TeslaDisk10 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*10 } object { //*PMName TeslaDisk11 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*11 } object { //*PMName TeslaDisk12 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*12 } object { //*PMName TeslaDisk13 Declare_TeslaDisk scale 1 rotate <0, 0, 0> translate x*13 } } #declare Declare_washer = merge { cylinder { //*PMName bigwasher <0.3, 0, 0>, <-0.3, 0, 0>, 14 finish { brilliance 1 specular 1.25 reflection { rgb <0.4, 0.8, 1> } } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } cylinder { //*PMName spacer <0.3, 0, 0>, <-0.3, 0, 0>, 5 finish { brilliance 1 specular 1.25 reflection { rgb <0.4, 0.8, 1> } } scale 1 rotate <0, 0, 0> translate x*0.6 } pigment { color rgb <0.94902, 1, 0> } } merge { //*PMName TeslaPump cone { <-10, 0, 0>, 14, <0, 0, 0>, 7 pigment { Declare_SteelPigment } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName shaft1 Declare_SteelCylinder scale <15, 12, 12> rotate <0, 0, 0> translate x*(-7.8) } object { //*PMName Teslapump_washer1 Declare_washer scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName Teslapump_washer2 Declare_washer scale 1 rotate <0, 0, 0> translate x*1.2 } object { //*PMName Teslapump_washer3 Declare_washer scale 1 rotate <0, 0, 0> translate x*2.4 } object { //*PMName shaft2 Declare_SteelCylinder scale <15, 11, 11> rotate <0, 0, 0> translate x*7.3 } } #declare Declare_MainBearing = merge { //*PMName MainBearing object { //*PMName BearingCone1 Declare_BearingCone scale 1 rotate <0, 0, 0> translate x*10.7 } object { //*PMName BearingCone2 Declare_BearingCone scale <-1, 1, 1> rotate <0, 0, 0> translate x*10.7 } translate x*2 } light_source { //*PMName pointlight1 <12, 99, -99>, rgb <1, 1, 1> } light_source { //*PMName pointlight2 <-13, 0, -99>, rgb <1, 1, 1> } camera { perspective location <5, 22, -132> sky <0, 1, 0> direction <0.7, 0, 1> right <1.3333, 0, 0> up <0, 1, 0> look_at <-45, 0, 0> angle 70 } intersection { //*PMName MainBearingCase1_Blowup difference { cylinder { <0, 0, 0>, <14, 0, 0>, 10.5 pigment { Declare_SteelPigment_2 } scale 1 rotate <0, 0, 0> translate x*15 } object { //*PMName remove_bearing Declare_MainBearing scale 1 rotate <0, 0, 0> translate <0, 0, 0> } cylinder { //*PMName remove_endhole <0, 0, 0>, <10, 0, 0>, 7 scale 1 rotate <0, 0, 0> translate x*21 } } object { //*PMName blowup_box Declare_BlowupBox scale 1 rotate <0, 0, 0> translate <0, 0, 0> } pigment { Declare_SteelPigment } } object { //*PMName MainBearing Declare_MainBearing scale 1 rotate <0, 0, 0> translate <0, 0, 0> } intersection { //*PMName MainBearingCase2_Blowup difference { cylinder { <0, 0, 0>, <16, 0, 0>, 15 scale 1 rotate <0, 0, 0> translate x*4 hollow false } object { //*PMName remove_roller Declare_MainBearing scale 1 rotate <0, 0, 0> translate x*(-0.5) } cylinder { //*PMName remove_more <0, 0, 0>, <9, 0, 0>, 9 scale 1 rotate <0, 0, 0> translate x*13 } cone { //*PMName remove_air <0, 0, 0>, 8, <2.6, 0, 0>, 8.6 scale 1 rotate <0, 0, 0> translate x*11.3 } } object { //*PMName blowup_box Declare_BlowupBox scale 1 rotate <0, 0, 0> translate <0, 0, 0> } pigment { Declare_SteelPigment_2 } } intersection { //*PMName TeslaPumpCaseBlowup object { //*PMName Blowup_Box Declare_BlowupBox scale 1 rotate <0, 0, 0> translate <0, 0, 0> } difference { //*PMName TeslaPumpCase cylinder { //*PMName outer <-2, 0, 0>, <8, 0, 0>, 17.5 scale 1 rotate <0, 0, 0> translate <0, 0, 0> } cylinder { //*PMName remove_shaft <-5, 0, 0>, <0, 0, 0>, 6 scale 1 rotate <0, 0, 0> translate <0, 0, 0> } cylinder { //*PMName remove_pump <0, 0, 0>, <8.1, 0, 0>, 14 scale 1 rotate <0, 0, 0> translate <0, 0, 0> } } pigment { Declare_SteelPigment } } object { //*PMName Generator0 DeclareMagnets scale 1 rotate <0, 0, 0> translate x*(-26) } object { //*PMName Generator1 DeclareMagnets scale 1 rotate <0, 0, 0> translate x*(-73) } cylinder { //*PMName MainShaft <-300, 0, 0>, <-10, 0, 0>, 14 pigment { Declare_SteelPigment } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName TeslaTurbine DeclareTeslaTurbine scale 1 rotate <0, 0, 0> translate x*(-115) }