POV-Ray : Newsgroups : povray.newusers : Object design help requested Server Time
1 Nov 2024 19:13:26 EDT (-0400)
  Object design help requested (Message 1 to 2 of 2)  
From: Stephen - remove the hyphens
Subject: Object design help requested
Date: 20 Jan 2005 12:24:13
Message: <41efe93d@news.povray.org>
My skills with Povray are reasonable, using CSGs and more complicated spline
designs, without yet getting into some of the more highly mathematical
convolutions.  I have a couple simple objects I'd like to build, being a
lock and key and a micrometer. Both the key and micrometer have parts which
are I-beam in cross section and I can't figure out how to do that.

Suggestions requested.

- the key is essentially a long cylinder connected to four very short (flat)
cylinders, overlaid edge to edge,  much like a "club" in a deck of cards.
There is a rounded ridge ( similar to a torus ) around the perimeter, but of
course does not cross into the middle of the key.

How to raise a smooth ridge on the perimeter of the key?  Best that I can
think of is create the four short cylinders and ring them with tori
(toruses) but then how to smooth the part of the ridge in the middle of the
key. Possibly by subtracting another shape which would have to be carefully
designed to follow the perimeter of key, but this seems like a lot of work.

- the micrometer is "C" shaped in design with the measuring points between
the open parts of the "C" (like a c-clamp) . The backbone of the C looks
like an I-Beam but also varies in what would be the height of the I-beam, in
other words the central portion of the beam is much shorter towards the tips
of the C than in the middle of the distance between the tips.

Suggestions?
thanks in advance.

Stephen


Post a reply to this message

From: gonzo
Subject: Re: Object design help requested
Date: 23 Jan 2005 15:24:00
Message: <41f407e0@news.povray.org>
Stephen - remove the hyphens wrote:
> My skills with Povray are reasonable, using CSGs and more complicated spline
> designs, without yet getting into some of the more highly mathematical
> convolutions.  I have a couple simple objects I'd like to build, being a
> lock and key and a micrometer. Both the key and micrometer have parts which
> are I-beam in cross section and I can't figure out how to do that.
> 
> Suggestions requested.
> 
> - the key is essentially a long cylinder connected to four very short (flat)
> cylinders, overlaid edge to edge,  much like a "club" in a deck of cards.
> There is a rounded ridge ( similar to a torus ) around the perimeter, but of
> course does not cross into the middle of the key.
> 
> How to raise a smooth ridge on the perimeter of the key?  Best that I can
> think of is create the four short cylinders and ring them with tori
> (toruses) but then how to smooth the part of the ridge in the middle of the
> key. Possibly by subtracting another shape which would have to be carefully
> designed to follow the perimeter of key, but this seems like a lot of work.
> 
> - the micrometer is "C" shaped in design with the measuring points between
> the open parts of the "C" (like a c-clamp) . The backbone of the C looks
> like an I-Beam but also varies in what would be the height of the I-beam, in
> other words the central portion of the beam is much shorter towards the tips
> of the C than in the middle of the distance between the tips.
> 
> Suggestions?
> thanks in advance.

Here's a quickie micrometer backbone (set In to whatever scale you 
prefer, I use 1 PovUnit = 1 Ft):

// ----- begin -----
#declare In = 1/12;

#macro C_Clamp( RR, OR, IR, IS, RD )
   #local Outer_Rim = torus { OR, RR scale y*2 }

   #local Inner_Rim = torus { IR, RR scale <1,2,IS>}

   #local C_Bar = difference {
     cylinder { <0,-RR,0> <0,RR,0> OR }
     cylinder { <0,-RR*1.1,0> <0,RR*1.1,0> IR scale z*IS }
   }

   #local Rim = intersection {
     union {
       object { Outer_Rim scale y*2 }
       object { Inner_Rim scale y*2}
       object { C_Bar }
     }
     box { <0, -RR*2.1, -OR-RR*1.1> <OR+RR*1.1, RR*2.1, OR+RR*1.1> }
   }
   union {
     object { Rim }
     cylinder { <0,0,-.5*In> <0,0,.5*In> RR*3 translate z*(OR-RD)}
     cylinder { <0,0,-.5*In> <0,0,.5*In> RR*3 translate -z*(OR-RD)}
   }
#end


#declare Rim_Rad = .05*In;
#declare O_Rim = 6*In;
#declare I_Rim =  O_Rim - O_Rim*.15;
#declare R_Diff = (O_Rim-I_Rim)*.4;
#declare I_Scale = 1.075;

object { C_Clamp( Rim_Rad, O_Rim, I_Rim, I_Scale, R_Diff )
   pigment { rgb .7 }
}

// ----- end -----

Not sure what you're trying to do with the key, so I'll let someone else 
play with it.

RG


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.