Custom Units of Measure

Manifold uses units of measure in a variety of places such as in the units box used with most projections. The definitions of units available to Manifold are compiled into the product. User-supplied definitions may be loaded from .xml files found in the Config folder. If desired, users can add their own units of measure to incorporate specialized, historical or local units of measure into Manifold.

 

Units are defined by .xml files in the following pattern:

 

<xml>

 <unit>

  <name>My Own Centimeter</name>

  <nick>my cm</nick>

  <nickArea>my sqcm</nickArea>

  <scale>0.01</scale>

 </unit>

 <unit>

  <name>Five-degree</name>

  <nick>fd</nick>

  <nickArea>my sqfd</nickArea>

  <scale>5.0</scale>

  <latLon>True</latLon>

 </unit>

</xml>

 

Rules

 

·      There can be any number of <unit></unit> entries within a single XML file between the <xml> tag at the beginning of the file and the </xml> tag at the end of the file.

·      The name string supplied in the <name> attribute is mandatory and must be unique.

·      The flag in the <latLon> attribute must be set to "True" for angular measurement units such as degrees or radians and set to "False" or omitted for ordinary measurement units.

·      The value in the <scale> attribute is the size of the unit relative to a degree (if the latLon flag is True) or a meter (if the latLon flag is False).

·      <nick> and <nickArea> names are nicknames (abbreviations) of the units of measure that will be used by Manifold in various readouts. The <nickArea> name is used for the areal unit of measure, such as square meters.

 

To utilize newly created or modified units place the new or modified .xml file containing the units into the Config folder for Manifold (normally C:\Program Files\Manifold System Professional\Config) and restart Manifold.

 

When Manifold launches, the system will scan all .xml files in the Config folder. Any <unit></unit> entries found in any of those .xml files will be loaded into the system as available units.

 

Example

 

We've created a file in the Config folder called myunits.xml that contains units we would like to use with Manifold. We find it annoying that English units like feet are derived from the physical dimensions of an English king's body parts, so we will create new units based on our own body parts. We also find working in units of five degrees more convenient than just one degree at a time so we will create a new angular unit that is equivalent to five degrees:

 

<xml>

 <unit>

  <name>Thumb</name>

  <nick>thb</nick>

  <nickArea>sq thb</nickArea>

  <scale>0.05</scale>

 </unit>

 <unit>

  <name>Arm</name>

  <nick>arm</nick>

  <nickArea>sq arm</nickArea>

  <scale>0.50</scale>

 </unit>

 <unit>

  <name>ArcHand</name>

  <nick>ah</nick>

  <nickArea>sq ah</nickArea>

  <scale>5.0</scale>

  <latLon>True</latLon>

 </unit>

</xml>

 

When Manifold launches it will see the myunits.xml file in the Config folder and will read it to see what it contains. It will find definitions for three new units of measure the file and will load them for use. Two of the units are linear measures defined from meters while the third is an angular measurement based on degrees.

 

One Thumb is equivalent to 0.05 meters, or five centimeters. One Arm is equivalent to 50 centimeters. Note that both of these units of measures are linear measures since the latLon attribute is not present in them.

 

The definition for ArcHand says it is equivalent to five degrees. We have decided to call our unit an "ArcHand" because a hand has five fingers just like this unit represents five degrees. When reported on the status bar in drawings projected using ArcHands the abbreviation will be ah or sq ah.

 

Tech Tip

 

Manifold cannot use any customizations if the .xml files do not contain XML that is exactly correct. A useful test before launching Manifold is to open any newly created or modified .xml file in Internet Explorer. Internet Explorer will show a correct .xml file in a simple text format. If Internet Explorer cannot parse the .xml file, Manifold won't be able to either.