<!-- Converted by db4-upgrade version 1.0 -->

<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="gqa1">
  <refmeta>
    <refentrytitle>GQA</refentrytitle>
    <manvolnum>nged</manvolnum>
    <refmiscinfo class="source">BRL-CAD</refmiscinfo>
    <refmiscinfo class="manual">BRL-CAD MGED Commands</refmiscinfo>
  </refmeta>
  
  <refnamediv xml:id="name">
    <refname>gqa</refname>
    <refpurpose>a BRL-CAD quantitative geometry analysis tool</refpurpose>
  </refnamediv>
  
  <!-- body begins here -->
  <refsynopsisdiv xml:id="synopsis">
    <cmdsynopsis sepchar=" ">
      <command>gqa</command>    <arg choice="opt" rep="norepeat"><replaceable>options</replaceable></arg>
      <arg choice="plain" rep="norepeat"><replaceable>objects</replaceable></arg>
    </cmdsynopsis>
  </refsynopsisdiv>
  
  
  <refsection xml:id="description"><info><title>DESCRIPTION</title></info>
    
    <para>
      The <command>gqa</command> program computes and reports a variety of characteristics of the
      <emphasis remap="I">objects</emphasis> specified from the given 
      <emphasis remap="I">model.g</emphasis> geometric description.
      The characteristics which can be computed include
      <emphasis remap="B" role="bold">weight, volume, overlaps, exposed air, gaps/voids,</emphasis>
      and <emphasis remap="B" role="bold">adjacent air.</emphasis> Only the
      <emphasis remap="I">objects</emphasis> from the database specified on the command line are 
      analyzed.
    </para>
    
    <para>
      It works by shooting grids of rays from the three axis-aligned directions (sometimes called
      <emphasis remap="I">views</emphasis>).
    </para>
    
    <para>
      For volume/weight calculations the resulting calculations for each view are compared to 
      each other. The grid of rays is progressively refined until the results from all three views
      agree within a user-specifiable tolerance, or a limit on grid refinement is reached.
    </para>
    
    <para>
      For error and interface calculations, the grid is refined until an error is found or the 
      grid refinement limit is reached.
    </para>
    
    <para>
      When multiple calculations are performed, the most extensive path is taken.
      For example, if weight and overlap calculations are performed, then the grid
      will be refined until the refinement limit is reached, or an overlap is
      detected.
    </para>
  </refsection>

  <refsection xml:id="volume_and_weight_calculation"><info><title>VOLUME AND WEIGHT CALCULATION</title></info>
    
    <para>
      If volume or weight calculation is selected, a value is calculated and reported
      for each <emphasis remap="I">object</emphasis> specified on the command line.
      <emphasis remap="B" role="bold">Note that if there are overlaps or other errors in the 
      geometry, the values reported will be invalid.</emphasis>
    </para>

    <para>
      For weight computation, the density of every region must be specified.
      Densities are specified as an index in a table of density values.
      This index is stored in the <emphasis remap="I">GIFTmater</emphasis>
      attribute of each region (typically set with the <emphasis remap="I">edcodes</emphasis>
      or <emphasis remap="I">adjust</emphasis> commands in MGED).
    </para>

    <para>
      The density table consists of three columns:
    </para>
    
    <variablelist>
      <varlistentry>
	<term><emphasis>An integer index value.</emphasis></term>
	<listitem>
	  <para>
	    This is the value to which the <emphasis remap="I">GIFTmater</emphasis> attribute 
	    will be set to select this material for the region.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><emphasis>A floating point density value.</emphasis></term>
	<listitem>
	  <para>
	    This is the density for the material, and is specified in 
	    <emphasis remap="B" role="bold">grams/cc</emphasis>.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><emphasis>A name string.</emphasis></term>
	<listitem>
	  <para>
	  This is a name or description the material.
	  </para>
	</listitem>
      </varlistentry>
    </variablelist>

    <para>
      An example file might look like the following:
    </para>

    <literallayout class="normal">
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../../../misc/GQA_SAMPLE_DENSITIES" parse="text"/>
   </literallayout>

    <para>
      The table is typically created in an external file using a text editor.
    </para>

    <para>
      The geometry editor MGED automatically assigns an index value of
      <literal>1</literal> to a newly created region. While this default can be handy 
      when a vast majority of objects are made from the same material, it can lead to 
      surprising errors when objects which are supposed to have a
      certain weight are computed to have different weight because one or two regions
      were not set to the correct, nondefault index value.  As a result, it is advised that 
      the index value <literal>1</literal> never be used. If this practice is followed, 
      then an error message will be generated for any regions which have not had their 
      material index set to something other than the default.
    </para>
    
    <para>
      The user will typically want to run <command>gqa</command> and verify the results using the
      <option>-f</option> option (see below) before importing the table into the database.
      For example, if a material index is left out of the table, it is easier to rectify 
      the situation using the external file. Once the table has been verified as correct 
      and complete, it is imported to the database as the binary object
      <emphasis remap="B" role="bold">_DENSITIES</emphasis>.
      To import the text file into the database, the following command is used:
    </para>

    <para>
      <prompt>mged&gt; </prompt><userinput>bo -i u c _DENSITIES <emphasis remap="I">filename</emphasis></userinput>
    </para>
  </refsection>

  <refsection xml:id="geometry_error_detection"><info><title>GEOMETRY ERROR DETECTION</title></info>
    
    <para>
      All of these calculations run until an error is detected, or until the grid
      refinement limit is reached.
    </para>
  </refsection>

  <refsection xml:id="overlap_detection"><info><title>OVERLAP DETECTION</title></info>
    
    <para>
      For each pair of regions that overlap, the tool reports the two regions that
      overlap, the maximum line-of-sight thickness of the overlap, and the in-hit location
      of the ray that caused that maximum overlap thickness.
    </para>
    <para>
      Other analyses in the error detection category behave in a similar manner.
    </para>
  </refsection>
  
  <refsection xml:id="options"><info><title>OPTIONS</title></info>
    
    <variablelist remap="TP">
      <varlistentry>
	<term><option>-A </option><emphasis remap="I">analysis_flags</emphasis></term>
	<listitem>
	  <para>
	    Specifies which computations are to be performed and reported.
	    The <emphasis remap="I">analysis_flags</emphasis>
	    parameter is one or more of the following:
	  </para>
	  <para>
	  <informaltable frame="all">
	    <tgroup cols="2" align="left">
	    <thead>
	      <row>
		<entry>value</entry>
		<entry>report generated</entry>
	      </row>
	    </thead>
	    <tbody>
	      <row>
		<entry>A</entry>
		<entry>all</entry>
	      </row>
	      <row>
		<entry>a</entry>
		<entry>Adjacent different air</entry>
	      </row>
	      <row>
		<entry>b</entry>
		<entry>Bounding box dimensions</entry>
	      </row>
	      <row>
		<entry>e</entry>
		<entry>Exposed air</entry>
	      </row>
	      <row>
		<entry>g</entry>
		<entry>Gaps/voids</entry>
	      </row>
	      <row>
		<entry>o</entry>
		<entry>Overlaps</entry>
	      </row>
	      <row>
		<entry>p&gt;</entry>
		<entry>Visualize Overlaps</entry>
	      </row>
	      <row>
		<entry>v</entry>
		<entry>Volume</entry>
	      </row>
	      <row>
		<entry>w</entry>
		<entry>Weight</entry>
	      </row>
	    </tbody>
	    </tgroup>
	  </informaltable>
	  </para>
	  <para>
	    Only those reports requested will be provided. The default is
	    <option>-AA</option> to produce all reports.
	  </para>
	  
	  <para>
	    <emphasis remap="B" role="bold">Adjacent different air (a):</emphasis>
	    Detects air volumes which are next to each other but have different 
	    air_code values applied to the region. This would typically indicate 
	    that the regions are different types of air, such as crew_air (which 
	    fills the crew compartment of a vehicle) and engine_air (which surrounds the engine).
	    When these different types of air adjoin each other, it is generally considered 
	    a modeling error.
	  </para>

	  <para>
	    <emphasis remap="B" role="bold">Bounding box dimensions (b):</emphasis>
	    Reports the dimensions of an axis-aligned box which fully encloses the
	    <emphasis remap="I">objects</emphasis>.
	  </para>

	  <para>
	    <emphasis remap="B" role="bold">Exposed air (e):</emphasis>
	    This causes checks to be made to see if the ray encounters air regions before
	    (or after all) solid objects. It also checks to see if the ray moves 
	    from a void to an air region. Typically, only the air inside a building or 
	    vehicle is modeled if the purpose of the model is to support analysis of
	    that single structure/vehicle.  There are exceptions, such as when modeling 
	    larger environments for more extended analysis purposes.
	  </para>
	  
	  <para>
	    <emphasis remap="B" role="bold">Gaps/voids (g):</emphasis>
	    This reports when there is more than <emphasis remap="I">overlap_tol_dist</emphasis>
	    (see the <option>-t</option> option below) between objects on the ray path.  Note 
	    that not all gaps are errors.  For example, gaps between a wheel and a fender are 
	    expected (unless external air is modeled).  Typically, users should perform gap 
	    analysis on contained subsets of a model (such as passenger compartments)
	    rather than on whole vehicles.
	  </para>
	  
	  <para>
	    <emphasis remap="B" role="bold">Overlaps (o):</emphasis>
	    are two regions which occupy the same space.  In the real world, two objects may 
	    not occupy the same space.  This check is sometimes also known as 
	    <emphasis remap="I">interference checking</emphasis>.  Two objects must overlap 
	    by at least <emphasis remap="I">overlap_tol_dist</emphasis> (see the
	    <option>-t</option> option below) to be considered to overlap.  Overlap testing 
	    causes the grid spacing to be refined until the limit is reached, or an overlap 
	    is detected. See the <option>-g</option> option below for details on setting the 
	    grid spacing. Once overlaps have been detected, grid refinement is not done, and 
	    processing stops.
	  </para>
	
          <para>
	    <emphasis remap="B" role="bold">Visualize Overlaps (p):</emphasis>
            In MGED, if overlaps are detetcted, this option causes the overlaps found to be
	    illustrated in the wireframe view via yellow lines.
	  </para>
	  
	  <para>
	    <emphasis remap="B" role="bold">Volume (v):</emphasis>
	    Computes the volume of the <emphasis remap="I">objects</emphasis>
	    specified on the command line.
	  </para>
	  
	  <para>
	    <emphasis remap="B" role="bold">Weight (w):</emphasis>
	    Computes the weight of the <emphasis remap="I">objects</emphasis>
	    specified on the command line.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-a </option><emphasis remap="I">azimuth_deg</emphasis></term>
	<listitem>
	  <para><emphasis remap="B" role="bold">Not Implemented.</emphasis></para>
	  <para>
	    Sets a rotation (in degrees) of the coordinate system by a given amount about 
	    the Z axis. The default is 0.  See also: <option>-e</option>
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-e </option><emphasis remap="I">elevation_deg</emphasis></term>
	<listitem>
	  <para><emphasis remap="B" role="bold">Not Implemented.</emphasis></para>
	  <para>
	    Sets a rotation (in degrees) of the coordinate system by a given elevation 
	    from the XY plane (rotation about X axis?). The default is 0.
	    See also <option>-a</option>
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-f </option><emphasis remap="I">filename</emphasis></term>
	<listitem>
	  <para>
	    Specifies that density values should be taken from an external file instead of from the
	    <emphasis remap="B" role="bold">_DENSITIES</emphasis> object in the database.
	    This option can be useful when developing the density table with a text editor, 
	    prior to importing it to the geometric database.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-g </option><emphasis remap="I">[initial_grid_spacing-]grid_spacing_limit</emphasis></term>
	<listitem>
	  <para>
	    Specifies a limit on how far the grid can be refined and optionally the initial spacing 
	    between rays in the grids. The first value (if present) indicates the inital spacing 
	    between grid rays.  The mandatory argument, "<emphasis remap="I">grid_spacing_limit</emphasis>," 
	    indicates a lower bound on how fine the grid spacing may get before computation is 
	    terminated.  In general, the <emphasis remap="I">initial_grid_spacing</emphasis> value 
	    should be an integer power of the <emphasis remap="I">grid_spacing_limit</emphasis>.  So 
	    for example, if <emphasis remap="I">grid_spacing_limit</emphasis> has the value 1, 
	    then any <emphasis remap="I">initial_grid_spacing</emphasis> specified should be in the
	    sequence 2, 4, 8, 16, 32... so that the grid will refine to precisely the lower limit.
	    The grid spacing may be specified with units.  For example:
	    <emphasis remap="B" role="bold">5 mm</emphasis> or
	    <emphasis remap="B" role="bold">10 in.</emphasis>  If units are not provided, millimeters 
	    are presumed to be the units.
	  </para>
	</listitem>
      </varlistentry>
    </variablelist>
    
    
    <para>
      The default values are 50.0 mm and 0.5 mm, which is equivalent to specifying:
      <option>-g 50.0mm-0.5mm</option> or <option>-g 50.0mm,0.5mm</option>
      on the command line.  This is a hard limit.  If other analysis constraints are not 
      met, the grid spacing will never be refined smaller than the minimum grid size to 
      satisfy another constraint.  The initial grid spacing is divided in half at each 
      refinement step.  As a result, if you desire a lower limit to actually be tested, then 
      the initial grid size must be a power of 2 greater.  For example, specifying -g10mm,1mm
      would result in grid spacings of 10, 5, 2.5, 1.25 being used.  If the goal was
      to exactly end at a 1mm grid, then values such as 8 or 16 should have been
      chosen for the initial values.  This would result in testing 16, 8, 4, 2, 1
      grid spacing values.
    </para>
    
    <variablelist remap="TP">
      <varlistentry>
	<term><option>-G</option></term>
	<listitem>
	  <para><emphasis remap="B" role="bold">Not Implemented.</emphasis></para>
	  <para>
	    Specifies that the program should create new 
	    <emphasis remap="I">assembly combinations</emphasis> in the geometry database to 
	    represent the overlap pairs.  This flag is meaningless if overlap reporting is not 
	    turned on with the <option>-A</option> option.  If regions 
	    <emphasis remap="I">rod.r</emphasis> and <emphasis remap="I">disk.r</emphasis>
	    overlap, this option will cause the creation of an assembly called 
	    <literal>_OVERLAP_rod.r_disk.r</literal>, which includes the following items:
	    <orderedlist inheritnum="ignore" continuation="restarts">
	      <listitem>
		<para><emphasis remap="I">rod.r</emphasis></para>
	      </listitem>
	      <listitem>
		<para><emphasis remap="I">disk.r</emphasis></para>
	      </listitem>
	      <listitem>
		<para><emphasis remap="I">_OVERLAP_lines_rod.r_disk.r</emphasis></para>
	      </listitem>
	    </orderedlist>
	  </para>
	  <para>
	    The last item is an object to represent the overlapping area so that it can be easily seen.
	    The default is that no groups are created.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-n </option><emphasis remap="I">num_hits</emphasis></term>
	<listitem>
	  <para>
	    Specifies that the grid be refined until each region has at least
	    <emphasis remap="I">num_hits</emphasis> ray intersections.  It applies only when 
	    weight or volume calculations are being performed.  This limit is not applied per-view, but 
	    rather per-analysis. So, for example, it is accepted that a thin object might not be hit 
	    at all from one view, but might be hit when it is shot from other views.
	  </para>
	</listitem>
      </varlistentry>
    </variablelist>
    
    <para>
      The default is 1.  Hence, each region must be intersected by a ray at least once during 
      the analysis.
    </para>
    <variablelist remap="TP">
      <varlistentry>
	<term><option>-N </option><emphasis remap="I">num_views</emphasis></term>
	<listitem>
	  <para>
	    Specifies that only the first <emphasis remap="I">num_views</emphasis>
	    should be computed.  This is principally a debugging option.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-p</option></term>
	<listitem>
	  <para>
	    Specifies that <command>gqa</command> should produce plot files for each of the analyses 
	    it performs.  These can be overlaid on the geometry in <emphasis remap="I">mged</emphasis>
	    with the <emphasis remap="I">overlay</emphasis> command to help visualize the analysis results.
	    Each of the different analysis types write to a separate plot file and use different 
	    colors for drawing.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-P </option><emphasis remap="I">ncpu</emphasis></term>
	<listitem>
	  <para>
	    Specifies that <emphasis remap="I">ncpu</emphasis> CPUs should be used for performing 
	    the calculation. By default, all local CPUs are utilized. This option exists primarily to
	    reduce the number of computation threads from the machine maximum.  Note that specifying more 
	    CPUs than are present on the machine does not increase the number of computation threads.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-r</option></term>
	<listitem>
	  <para>
	    Indicates that <command>gqa</command> should print per-region statistics for weight and 
	    volume as well as the values for the objects specified on the command line.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-S </option><emphasis remap="I">samples_per_model_axis</emphasis></term>
	<listitem>
	  <para>
	    Specifies that the grid spacing will be initially refined so that at least
	    <emphasis remap="I">samples_per_axis_min</emphasis> will be shot along each axis of 
	    the bounding box of the model. For example, if the objects specified have a bounding 
	    box of 0 0 0 -&gt; 4 3 2 and the grid spacing is 1.0, specifying the option
	    <option>-S 4</option> will cause the initial grid spacing to be adjusted to 0.5 so that 
	    4 samples will be shot across the Z dimension of the bounding box. The default is to ensure 
	    1 ray per model grid axis.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-t </option><emphasis remap="I">overlap_tolerance</emphasis></term>
	<listitem>
	  <para>
	    Sets the tolerance for computing overlaps.  The <emphasis remap="I">overlap_tolerance</emphasis>
	    must be a positive number equal to or greater than 0.0.  Any overlap smaller than the value 
	    specified will be ignored. The default value is 0.0, which causes any overlap to be 
	    reported/processed. The value may be specified with a unit specifier such as:
	    <option>-t 1.0mm</option> or <option>-t 0.25in.</option>
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-U </option><emphasis remap="I">use_air</emphasis></term>
	<listitem>
	  <para>
	    Specifies the Boolean value (0 or 1) for <emphasis remap="I">use_air</emphasis>
	    which indicates whether regions which are marked as "air" should be retained and included 
	    in the raytrace. <emphasis remap="B" role="bold">Unlike other BRL-CAD raytracing applications, 
	    the default is to retain air in the raytracing.</emphasis> The <option>-U 0</option>
	    option causes air regions to be discarded prior to raytracing.  If you turn off use_air, and 
	    request any analysis that requires it (see <option>-A</option> above), then the program will 
	    exit with an error message.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-u </option><emphasis remap="I">distance,volume,weight</emphasis></term>
	<listitem>
	  <para>
	    Specify the units used when reporting values.  Values must be comma delimited and provided 
	    in the order <emphasis remap="I">distance</emphasis>,<emphasis remap="I">volume</emphasis>,
	    <emphasis remap="I">weight</emphasis>.  For example: <option>-u "cm,cu ft,kg"</option>
	    or <option>-u ,,kg</option> (The latter example sets only the weight units.)
	    Note that unit values with spaces in their names such as <emphasis remap="I">cu ft</emphasis>
	    must be contained in quotes for the shell to keep the values together.
	  </para>
	  
	  <para>
	    The default units are millimeters, cubic millimeters, and grams.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-v</option></term>
	<listitem>
	  <para>
	    Turns on verbose reporting of computation progress.  This is useful for
	    learning how the computation is progressing, and what tolerances are causing
	    further computation to be necessary.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-V </option><emphasis remap="I">volume_tolerance[units]</emphasis></term>
	<listitem>
	  <para>
	    Specifies a volumetric tolerance value that the three view computations must be within for 
	    computation to complete.  If volume calculation is selected and this option is not set, then 
	    the tolerance is set to 1/10,000 of the volume of the model. For large, complex objects 
	    (such as entire vehicles), this value might need to be set larger to achieve reasonable 
	    runtimes (or even completion). Given the approximate sampling nature of the algorithm, the
	    three separate view computations will not usually produce identical results.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>-W </option><emphasis remap="I">weight_tolerance[units]</emphasis></term>
	<listitem>
	  <para>
	    This is like the volume tolerance, <option>-T</option>, but is applied to the weight 
	    computation results, not the volume computation results.
	  </para>
	  <para>
	    The weight computation tolerance is probably more appropriate when doing whole-vehicle analysis.
	    If weight computation is selected, it is set to a value equal to the weight of an object 1/100
	    the size of the model, which is made of the most dense material in the table.
	  </para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsection>
  
  <refsection xml:id="examples"><info><title>EXAMPLES</title></info>
    
    <example><info><title>Default Behavior</title></info>
      
      <para>
	The following command computes the weight of an object called <emphasis remap="I">wheel.r</emphasis>
	reports the weight and volume, and checks for overlaps.  Assumes a _DENSITIES table object is present
	in the database.
      </para>
      
      <userinput>gqa wheel.r</userinput>
    </example>

    <example><info><title>Specifying Grid and Target Objects</title></info>
      
      <para>
	The following will check objects hull, turret, and suspension for overlaps
	and report exposed air. The grid starts at 1 cm and is refined to 1 mm unless overlaps or 
	exposed air are detected before the grid is refined to 1 mm.
      </para>
      
      <userinput>gqa -g 1cm-1mm -Aoe hull turret suspension</userinput>
    </example>
  
    <example><info><title>Specifying Using Non-Default Units</title></info>
      
      <para>
	The following computes volume and weight of hull, turret, and suspension.  Results are 
	reported in cubic centimeters (cc) and ounces (oz).  The grid spacing starts at 5 in. and 
	will not be refined below 0.3 mm spacing.
      </para>
      
      <userinput>gqa -g5in-0.3mm -Avw -u ft,cc,oz hull turret suspension</userinput>
    </example>

    <para>For an example of each independent analysis type, consider the following:</para>
    <variablelist>
      <varlistentry>
	<term><prompt>mged&gt; </prompt><userinput>gqa -u m,m^3,kg -Ao overlaps</userinput></term>
	<listitem>
	  <literallayout class="normal">
Units:
length: m volume: m^3 weight: kg
grid spacing 50mm  199 x 199 x 199
Summary:
list Overlaps:
/overlaps/overlap_obj.r /overlaps/closed_box.r count:32039 dist:8m @ (9050 1000 1000)
	  </literallayout>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><prompt>mged&gt; </prompt><userinput>gqa -u m,m^3,kg -Ae exposed_air.g</userinput></term>
	<listitem>
	  <literallayout class="normal">
Units:
length: m volume: m^3 weight: kg
grid spacing 50mm  199 x 199 x 199
Summary:
list Exposed Air:
/exposed_air.g/exposed_air.r count:25921 dist:9m @ (10000 1000 1000)
	  </literallayout>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><prompt>mged&gt; </prompt><userinput>gqa -u m,m^3,kg -Ag gap.g</userinput></term>
	<listitem>
	  <literallayout class="normal">
Units:
length: m volume: m^3 weight: kg
grid spacing 50mm  199 x 199 x 199
Summary:
list Gaps:
/gap.g/closed_box.r /gap.g/closed_box.r count:26082 dist:8m @ (9000 1000 1000)
/gap.g/adj_air2.r /gap.g/closed_box.r count:25921 dist:4m @ (1000 5000 1000)
	  </literallayout>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><prompt>mged&gt; </prompt><userinput>gqa -u m,m^3,kg -Av closed_box.r</userinput></term>
	<listitem>
	  <literallayout class="normal">
Units:
length: m volume: m^3 weight: kg
setting volume tolerance to 1 m^3
grid spacing 50mm  199 x 199 x 199
grid spacing 25mm  399 x 399 x 399
grid spacing 12.5mm  799 x 799 x 799
Summary:
    closed_box.r  484.195 m^3
    Average total volume: 488.327 m^3
	  </literallayout>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><prompt>mged&gt; </prompt><userinput>gqa -u m,m^3,kg -Aw closed_box.r</userinput></term>
	<listitem>
	  <literallayout class="normal">
Units:
length: m volume: m^3 weight: kg
setting weight tolerance to 768000 kg
grid spacing 50mm  199 x 199 x 199
Summary:
Weight:
    closed_box.r  3.6375e+06 kg
  Average total weight: 3.67541e+06 kg
	  </literallayout>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsection>

<info><corpauthor>BRL-CAD Team</corpauthor></info>

<refsection xml:id="bug_reports"><info><title>BUG REPORTS</title></info>
<para>Reports of bugs or problems should be submitted via electronic
mail to devs@brlcad.org.</para>
</refsection>
</refentry>
