Descriptions and Examples for the POV-Ray Raytracer by Friedrich A. Lohmüller
    POV-Ray Examples - How To Make Objects for POV-Ray
Italiano Italiano
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorial

  - POV-Ray Examples
   Index of Content
  - Geometry
    - Pawn
    - Wireframe Cube
    - Octagon
    - Egg Shape
    - Star
    - Optical Lens
    - Chessboard
    - Round-bottom Mace
    - Erlenmeyer Shape
    - Two-Cylinder-Blob
    - Regular Tetrahedron
    - Penrose Triangle
    - Yin & Yang
    - Fishblob
    - Threefold
    - Trefoil
  - Architecture
  - Engineering
                                               
 
Round-Bottom Mace

Round-bottom Mace

The construction of the shape of a round-bottom mace -
a combination of a bowl and a cylinder with a rounded fillet at the neck base for a flask.

Objects:   "box", "sphere", "cylinder" "torus".
Methods: "#declare","union", "intersection" "#macro".
Click here for an example!

The Construction of a Round-bottom Mace.
A cross-section with the geometry of this construction you can see on the opposite image.
For more details on the elementary geometry
look here: Tangent Circles.

To get a perfectly rounded fillet at the base of the neck, we have to calculate the distance of the torus for the fillet and the sphere of the bowl. Also the coordinates of the point S are necessary for the width and heights of the central cylinder, from which we want to subtract the torus for the fillet.
To allow transparent materials like glass, we need to be able to use 'merge' instead of 'union'.

// -----------------------------------------
#local M1 = <Fillet_R+Neck_R,0,0>;
#local Y2 =
 sqrt( pow(Fillet_R+Bowl_R,2)-pow(M1.x,2) );
#local M2 = <0,-Y2,0>;

#local XS = M1.x*Bowl_R/(Fillet_R+Bowl_R);
#local YS = M2.y*Fillet_R/(Fillet_R+Bowl_R);
#local S = <XS,YS,0>;
// --------------------------------------
// calculation of real height
#declare Total_Height =
 Y2 + Bowl_R + Neck_L;
//---------------------------------------
// base shape ---------------------------
#if ( Merge_On = 1) merge{
#else               union{
#end
 difference{
  cylinder{<0,0,0>,<0,S.y,0>,S.x}
  torus{ M1.x, Fillet_R }
 }// end diff
 sphere{ M2, Bowl_R }
 // neck --------------------------------
 #if (Neck_L > 0)
 cylinder{<0,-D,0>, <0,Neck_L,0>,Neck_R}
 #end // of "#if( Neck_L > 0 )"
 //--------------------------------------
 translate<0,-M2.y+Bowl_R,0>
} // end of union or merge -----------------
Cross-section of the construction
of a round-bottom mace.

Demo of the construction method
for the round-bottom mace.


This shape in a macro as a ready made object: Round_Bottom_Mace_1
An application of this macro as a ready made object: Round_Bottom_Flask_1

What is this good for?
Here some examples.

Animation
'Round Bottom Maces'.


A round-bottom flask
for the laboratory.
top
© Friedrich A. Lohmüller, 2009
www.f-lohmueller.de