> Given two objects - say a torus and a cylinder:

> union

> {

> torus { 40, 5 }

> cylinder { < -40, 0, 0 >, < 40, 0, 0 >, 4 }

> }

> How do I produce a "weld" around the join between the two components?

Your question is a good one and I am happy to provideyou with one method

of achieving this task. I put simple

notes as I went along so it shouldn't be to difficult to

understand what I have done.

Take a look at the following Pov scene script.

Ken Tyler

/* start here */

camera{location<0,10,-25>look_at 0*y}

light_source{ < 0,500, -70>rgb 1}

light_source{ < 0, 0,-300>rgb 1}

#declare Weld1 = // cut torus leave left piece

intersection{

torus{2,.4 rotate 90*x}

plane{x, 0}scale<1.1,.9,1>}

#declare Weld2 = // cut torus leave right piece

intersection{

torus{2,.4 rotate 90*x}

plane{x, 0 inverse}scale<1.1,.9,1>}

// Weld 1&2 rotated and scale to fit intersection

// of pipes & torus outside edge

#declare WeldSet =

union {

object{Weld1 rotate 60*-y translate x*-4.2}

object{Weld1 rotate 60* y translate x*-4.2}

object{Weld2 rotate 60*-y translate x* 4.2}

object{Weld2 rotate 60* y translate x* 4.2}}

#declare PipeSet =

union {

torus {4, 2} // torus to intersect

torus {4,.4 translate y* 1.8} // thick pipe top weld

torus {4,.4 translate y*-1.8} // thick pipe bottom weld

cylinder{y*-25,y*25,4} // large pipe

cylinder{x*-25,x*25,2} // small pipe along x axis

cylinder{z*-25,z*25,2} // small pipe along z axis

object {WeldSet } // weld for x axis pipe

object {WeldSet rotate<0,-90,0>}// weld for z axis pipe

pigment {rgb 1}}

object{PipeSet rotate 45*y} // rotate to see welds