> 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