There are three objects we can use to define 3D representations:
Volume objects are used to define 3D graphical entities by extruding surface objects. A volume object is formed by connecting at least 2 surface objects with equal number of joints.
Volume with two Surface objects.
<O N="Volume: Sample 1" T="Project">
<P N="width" V="20" />
<P N="height" V="10" />
<O T="Volume">
<O T="Surface" Z="0">
<O T="Point" X="-width" Y="-width" />
<O T="Point" X="width" Y="-width" />
<O T="Point" X="width" Y="width" />
<O T="Point" X="-width" Y="width" />
</O>
<O T="Surface" Z="height">
<O T="Point" X="-width/2" Y="-width/2" />
<O T="Point" X="width/2" Y="-width/2" />
<O T="Point" X="width/2" Y="width/2" />
<O T="Point" X="-width/2" Y="width/2" />
</O>
</O>
</O>
Figure 1.1.8.1: Volume object.
Volume object consisting of several surfaces using Surface object and Extends attribute.
<O N="Volume: Sample 2" T="Project">
<P N="width_1" V="20" />
<P N="width_2" V="40" />
<P N="length_1" V="20" />
<P N="length_2" V="20" />
<P N="height_1" V="50" />
<P N="height_2" V="150" />
<P N="height_3" V="300" />
<O T="Volume">
<O N="TSurface1" T="Surface" Z="0">
<O T="Point" X="-width_1/2" Y="-length_1/2" />
<O T="Point" X="width_1/2" Y="-length_1/2" />
<O T="Point" X="width_1/2" Y="length_1/2" />
<O T="Point" X="-width_1/2" Y="length_1/2" />
</O>
<O N="Slice2" T="Surface" Extends="TSurface1" Z="height_1" />
<O N="TSurface2" T="Surface" Z="height_1">
<O T="Point" X="-width_2/2" Y="-length_2/2" />
<O T="Point" X="width_2/2" Y="-length_2/2" />
<O T="Point" X="width_2/2" Y="length_2/2" />
<O T="Point" X="-width_2/2" Y="length_2/2" />
</O>
<O N="Slice4" T="Surface" Extends="TSurface2" Z="height_2" />
<O N="Slice5" T="Surface" Extends="TSurface1" Z="height_2" />
<O N="Slice6" T="Surface" Extends="TSurface1" Z="height_3" />
</O>
</O>
Figure 1.1.8.2: Volume object consisting of multiple surfaces.
"Twisted" volume with multiple surfaces using Repeat object.
<O N="Volume: Sample 3" T="Project">
<P N="width" V="30" />
<O N="TSurface1" T="Surface">
<P N="ObjTypeDef" V="1" />
<O T="Point" X="-width/2" Y="-width/2" />
<O T="Point" X="width/2" Y="-width/2" />
<O T="Point" X="width/2" Y="width/2" />
<O T="Point" X="-width/2" Y="width/2" />
</O>
<O N="Column3D" T="Volume">
<P N="step" V="30" />
<P N="ang1" V="10" />
<O T="Repeat">
<P N="S" V="0" />
<P N="E" V="10" />
<P N="I" V="1" />
<P N="CTRL" V="index" T="Text" />
<P N="index" V="0" />
<O N="Slice" T="Surface" Extends="TSurface1" Z="step*index" RZ="ang1*PI/180*index" />
</O>
</O>
</O>