File:ER core assembly exploded.png

Aquired from http://commons.wikimedia.org/wiki/Image:ER_core_assembly_exploded.png

Licensing
made using povray 3.5 and the following source:
 * 1) declare RAD = on;  // use radiosity?
 * 2) declare Exploded=on; // exploded view or not?
 * 3) declare CoilLength = 2.6;

global_settings { #if(RAD) radiosity { brightness 0.60 count 100 error_bound 0.2 gray_threshold 0.0 low_error_factor 0.2 minimum_reuse 0.015 nearest_count 10 recursion_limit 1 #if (version>3.1) adc_bailout 0.01 max_sample -1.0 media off normal off always_sample 1 pretrace_start 0.08 pretrace_end 0.01 #end } #end }
 * 1) include "functions.inc"
 * 2) include "metals.inc"
 * 3) include "colors.inc"

background { color White }

// declarations for the magnetic core linear_spline 6   <0,0>,<0.05,0>, <0.1,0.05>, <0.1,0.95>,<0.05,1>, <0,1>    rotate 90*x } linear_sweep linear_spline 0, 1, 9, <0.05,0>, <0,0.05>, <0,0.95>, <0.05,1>, <0.45,1>, <0.5,0.95>, <0.5,0.05>, <0.45,0>, <0.05,0> }  linear_sweep linear_spline 0, 1, 9, <0.25,0>, <0,0.05>, <0,0.95>, <0.25,1>, <0.35,1>, <0.4,0.95>, <0.4,0.05>, <0.35,0>, <0.25,0> }  <0,0,0>,<0,1,0>,0.5 }  difference{ union{ object {side scale <1,1.7,1> translate -1.7*x } object {side scale <1,1.7,1> translate 1.2*x } }   cylinder{<0,-10,0.5>,<0,10,0.5>,1.3 translate 0.3*y} } object {bottom scale <1,3.2,1> rotate -90*z translate <-1.6,0.3,0> } object {corner translate -1.6*x} object {corner translate 1.6*x} object {middle scale <1,1.7,1> translate <0,0,0.5> } pigment { Gray50} }
 * 1) declare corner = lathe { // a quarter of cyclindic volume used to "round" the corners
 * 1) declare side = prism { // the extrusions of the volume
 * 1) declare bottom = prism { // The bottom of the core
 * 1) declare middle = cylinder { // the extrusion of the middle leg
 * 1) declare core = union {

//declaration of the coil element function {f_helix1(x,y,z, 1, 60, 0.05, 1, 1, 1, 0)} contained_by { box { -CoilLength/2, CoilLength/2 }} pigment { P_Copper4 } finish {F_MetalB}//C }
 * 1) declare coil = isosurface {

//declarations for the bobbin- declare pin = union { box{<0,-0.3,-1>,<0.3,0,0> pigment {Gray20 } translate<-0.15,0,0> } cylinder{<0,-0.15,-1.5>,<0,-0.15,0>,0.05 pigment{ P_Copper4 } finish {F_MetalB} } } union { cylinder{<0,0,0>,<0,0.1,0>,1.15} box {<-1.8,-0.3,-0.6>,<1.8,0.1,0.6>} prism { linear_sweep linear_spline 0, 0.2, 4,     <1.8,0>,<1.92,0.15>,<-1.92,0.15>,<-1.8,0>      rotate -90*x translate <0,-0.15,0.1> }    #declare Index = 0.3; #while(Index <= 1.7) object{pin translate <-Index,0,0>} object{pin translate } #declare Index = Index + 0.6; #end } merge { box {<-1.1501,-1,-0.55>,<1.1501,0,0.55>} box {<-1.75,-1,-0.55>,<-1.15,1,0.55>} box {<1.75,-1,-0.55>,<1.15,1,0.55>} } } union { cylinder{<0,-0.1,0>,<0,CoilLength+0.1,0>,0.6} object{bobin_extremity translate <0,-0.1,0>} object{bobin_extremity rotate 180*z translate <0,CoilLength+0.1,0>} } cylinder{<0,-10,0>,<0,10,0>,0.55 pigment { Gray20 } } pigment { Gray20 } }
 * 1) declare bobin_extremity = difference{
 * 1) declare bobbin = difference {

//declarations for the clip prism { linear_sweep bezier_spline 0, 1, 32,    <0,0>,<1.2,0>,<0,0>,<1.2,0>,    <1.2,0>,<1.3,0>,<1.6,-0.2>,<1.7,-0.2>,    <1.7,-0.2>,<1.8,-0.2>,<1.8,-0.2>,<1.8,0.5>,    <1.8,0.5>,<1.9,0.5>,<1.8,0.5>,<1.9,0.5>,    <1.9,0.5>,<1.9,-0.3>,<1.9,-0.3>,<1.7,-0.3>,    <1.7,-0.3>,<1.6,-0.3>,<1.3,-0.1>,<1.2,-0.1>,    <1.2,-0.1>,<0,-0.1>,<1.2,-0.1>,<0,-0.1>,    <0,-0.1>,<0,0>,<0,-0.1>,<0,0>    pigment {P_Chrome1} finish {F_MetalC} } box {<0,0.2,0.25>,<10,0.8,0.4> pigment {P_Chrome1} finish {F_MetalC} } } object{halfclip scale 0.5*y} object{halfclip scale 0.5*y rotate 180*z translate 0.5*y} }
 * 1) declare halfclip = difference {
 * 1) declare completeclip = union {

// the final union- union { object {bobbin rotate -90*x translate <0,0.5,-0.4>} object {coil rotate -90*x translate <0,0.5,-CoilLength/2-0.4>} object {core rotate -90*x translate <0,0,0>} #if(Exploded) object {core rotate 90*x translate <0,1,-6.5>} object {completeclip translate <0,0.25,-8>} #else object {core rotate 90*x translate <0,1,-3.4>} object {completeclip translate <0,0.25,-3.5>} #end object {completeclip rotate 180*y translate <0,0.25,0.1>} rotate <0, 30, 0> finish { #if(RAD) ambient 0 diffuse 0.7 #else ambient 0.8 diffuse 0.5 #end phong 1 phong_size 60 } } light_source { <0, 14, -10> color White} light_source { <2, 4, -10> color White} camera {location <1,10,-15> look_at <-3.3,-3.5> angle 33} camera {location <1,10,-15> look_at <-1.25,-1,0> angle 20}
 * 1) if(Exploded)
 * 1) else
 * end

And then compiled using the following command: povray -IER_core_assembly_exploded.pov +a -Q11 -W1280 -H960