|
|
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
|
|