#declare pk_x = 30; #declare pk_z = 40; #declare pk_r = 8; #declare projektorkopf = union { #if (1) prism { conic_sweep bezier_spline 1, 44/60, 32 <-(pk_x), -(pk_z-pk_r)>, <-(pk_x), 0>, <-(pk_x), 0>, <-(pk_x), +(pk_z-pk_r)>, // kl <-(pk_x), +(pk_z-pk_r)>, <-(pk_x), +(pk_z)>, <-(pk_x), +(pk_z)>, <-(pk_x-pk_r), +(pk_z)>, // rlo <-(pk_x-pk_r), +(pk_z)>, <0, +(pk_z)>, <0, +(pk_z)>, <+(pk_x-pk_r), +(pk_z)>, // ko <+(pk_x-pk_r), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z-pk_r)>, // rro <+(pk_x), +(pk_z-pk_r)>, <+(pk_x), 0>, <+(pk_x), 0>, <+(pk_x), -(pk_z-pk_r)>, // kr <+(pk_x), -(pk_z-pk_r)>, <+(pk_x), -(pk_z)>, <+(pk_x), -(pk_z)>, <+(pk_x-pk_r), -(pk_z)>, // rru <+(pk_x-pk_r), -(pk_z)>, <0, -(pk_z)>, <0, -(pk_z)>, <-(pk_x-pk_r), -(pk_z)>, // ku <-(pk_x-pk_r), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z-pk_r)> // rlu scale <1, 22/(1-44/60), 1> translate <30, 102-22/(1-44/60), 0> } difference { prism { linear_sweep bezier_spline 0, 6 32 <-(pk_x), -(pk_z-pk_r)>, <-(pk_x), 0>, <-(pk_x), 0>, <-(pk_x), +(pk_z-pk_r)>, // kl <-(pk_x), +(pk_z-pk_r)>, <-(pk_x), +(pk_z)>, <-(pk_x), +(pk_z)>, <-(pk_x-pk_r), +(pk_z)>, // rlo <-(pk_x-pk_r), +(pk_z)>, <0, +(pk_z)>, <0, +(pk_z)>, <+(pk_x-pk_r), +(pk_z)>, // ko <+(pk_x-pk_r), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z-pk_r)>, // rro <+(pk_x), +(pk_z-pk_r)>, <+(pk_x), 0>, <+(pk_x), 0>, <+(pk_x), -(pk_z-pk_r)>, // kr <+(pk_x), -(pk_z-pk_r)>, <+(pk_x), -(pk_z)>, <+(pk_x), -(pk_z)>, <+(pk_x-pk_r), -(pk_z)>, // rru <+(pk_x-pk_r), -(pk_z)>, <0, -(pk_z)>, <0, -(pk_z)>, <-(pk_x-pk_r), -(pk_z)>, // ku <-(pk_x-pk_r), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z-pk_r)> // rlu } prism { linear_sweep bezier_spline 0, 6 32 <-(pk_x), -(pk_z-pk_r)>, <-(pk_x), 0>, <-(pk_x), 0>, <-(pk_x), +(pk_z-pk_r)>, // kl <-(pk_x), +(pk_z-pk_r)>, <-(pk_x), +(pk_z)>, <-(pk_x), +(pk_z)>, <-(pk_x-pk_r), +(pk_z)>, // rlo <-(pk_x-pk_r), +(pk_z)>, <0, +(pk_z)>, <0, +(pk_z)>, <+(pk_x-pk_r), +(pk_z)>, // ko <+(pk_x-pk_r), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z-pk_r)>, // rro <+(pk_x), +(pk_z-pk_r)>, <+(pk_x), 0>, <+(pk_x), 0>, <+(pk_x), -(pk_z-pk_r)>, // kr <+(pk_x), -(pk_z-pk_r)>, <+(pk_x), -(pk_z)>, <+(pk_x), -(pk_z)>, <+(pk_x-pk_r), -(pk_z)>, // rru <+(pk_x-pk_r), -(pk_z)>, <0, -(pk_z)>, <0, -(pk_z)>, <-(pk_x-pk_r), -(pk_z)>, // ku <-(pk_x-pk_r), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z-pk_r)> // rlu scale <0.9, 1.01, 0.9> } translate <30, 102, 0> } #end #if (0) cone { <80, 0, 0>, 5 <80, 110, 0>, 5 pigment { color Red } } #end intersection { torus { 40, 20 rotate <90, 0, 0> scale <1, 1, pk_z/pk_x> } box { <-60, -60, -60> < 0, 0, 60> } translate <70, 80, 0> pigment { color Yellow } } cone { <0, 0, 0>, 20, <10, 0, 0>, 20 scale < 1, 1, pk_z/pk_x> translate <70, 40, 0> pigment { color Yellow } } #if (1) cone { <0, 0, 0>, 24, <10, 0, 0>, 24 scale < 1, 1, 50/24> translate <80, 40, 0> } #end box { <80, 0, -50> <90, 40, 50> } cone { <90, 40, 0>, 14, <122, 40, 0>, 14 translate <0, 0, -16> } cone { <90, 40, 0>, 14, <122, 40, 0>, 14 translate <0, 0, +16> } } #declare metagrav = union { //bodenplatte prism { linear_sweep linear_spline -100, 100, 5, <0, 0>, <10, 20>, <206, 20>, <206, 0>, <0, 0> rotate <-90, 0, 0> } object { projektorkopf translate <0, 0, 50> } object { projektorkopf translate <0, 0, 50> scale <1, 1, -1> } // Hauptaggregateblock box { <122, 20, -100> <178, 48, 100> } box { <118, 20, -100> <122, 40, 100> } cone { <0, 0, -1>, 1 <0, 0, 1>, 1 scale <4, 8, 100> translate <122, 40, 0> } prism { linear_sweep linear_spline -90, 90 5 <122, 48>, <122, 80>, <128, 80>, <148, 48>, <122, 48> rotate <-90, 0, 0> } prism { linear_sweep linear_spline -80, 80 6 <128, 80>, <148, 48>, <160, 48>, <180, 90>, <128, 90>, <128, 80> rotate <-90, 0, 0> } box { <148, 0, -60> <280, 80, 60> } pigment { checker color White*0.7, color White*0.5 scale 10 } }