This document describes the coordinate conventions used to describe all physical and notional elements in the PPL system. By convention all linear values are in inches and all angular values are in radians.
All coordinates in PPL are described using in a cylindrical polar form relative to a single parent object.
X describes a horizontal offset from an element’s parent’s origin in inches.
Z describes a vertical offset from an element’s parent’s origin in inches. Positive Z values are up and negative Z values are down.
A describes rotation relative to the parent element in radians where positive increase in A represents clockwise rotation when observed from above.
Specific Element Examples
By convention the topmost element is always an instance of “PPL_CommonComponents.GroundLine”. This represents the actual ground surface where the pole is erected. The origin is at the ground surface with positive Z being the sky and negative Z being into the earth. Zero degrees A is true North.
The origin of a pole is the center of the pole’s butt so that the Z component of a pole is always < 0 and represents its true burial depth.
The origin of a crossarm is the center of the crossarm’s mass and therefore the nominal X value for a crossarm is ½ its depth plus the taper radius of the pole at the crossarm’s height (Z value).
All other elements are defined in similar fashion.
To support this all physical elements are inherited from the class PPL_Element. Since C# (and CLR in general) do not gracefully allow multiple inheritance the PPL_Element class and its coordinates and rendering methods form the backbone of all element-element interaction in PPL.