DML

Overview Specification

For Version 2.0

Written by Joe Schafer

Revision 1.0
Table of Contents

Introduction. 3

DTD files. 3

Basic Structure. 3

Feature_list Element 4

Feature Types. 5

Tolerance Types. 5


Introduction

The purpose of this document is to describe the content and basic rules that are necessary to follow when developing applications that either write out DML or read in DML. 

It is not the intent of this document to educate readers on the proper syntax of XML.  For this you can refer to HTTP://www.microsoft.com/xml.  There is a lot of documentation on how, what, etc. related to XML.

The use for DML is to be a data hauler of dimensional results between inspection devices which gather data to databases that store the results, and reporting applications that perform SPC  and individual data sample analysis.

Currently the main effort in modifying the definition is aimed at better support of partial data.  For example you have information about a circle, center point, diameter but do not have the orientation.

DTD files

The definition of DML is defined with a set of DTDs.  The subdivision of the definition into several files is done to make developing and modifying the files easier.  There is no technical reason.


dml_analysis_modes.dtd

dml_basic_geometry.dtd

dml_features.dtd

dml_header.dtd

dml_main.dtd

dml_tolerances.dtd


The top level DTD is dml_main.dtd.  This defines what other DTDs make up the complete set.

Basic Structure

xml version="1.0" encoding="UTF-8"   ?>

<!  --  DATE    : Thr May 31 10:52:33 2001-->

<!  --  UTC DATE: 2001-05-31T17:52:33Z-->

<  dimensional_inspection_results  version="1.04" id="RUN1">

<  results_header>

<  transform_list>

<  datum_definition_list>

<  tolerance_actual_list>

<  feature_list>

<  feature_analysis_modes_default>

<  tolerance_analysis_modes_default

<  analysis_dofs_default>

<  feature  name="basic_hole_hole_center_lower_TPRH701" >

<  applied_tolerances>

<  cone_feature   type="INNER">

<  cone_feature_nominal>

<  cone_feature_actual>

</  cone_feature>

<  tolerance_actual_list>

<  point_list>

</  feature>

<  scan_result_list>

</  feature_lilst>

</  dimensional_inspection_results>

There are five top-level elements in a DML file.

The results_header section is used to store implementation specific information like company name, location, etc.  This is a required element for a DML to validate.

The transform_list is for storing transformation associated to reporting the data out in different coordinate systems.  One of the fundamental rules of the DTD is that all data is stored in a common coordinate system.  It is the job of the reporting tool to display the information in the proper space.  This is an optional element for a DML to validate.

The datum_definition_list is used to store the datum definitions used for the tolerances.  In the tolerances either the datum definition or the feature ID can be used.  This is an optional element for a DML to validate.

The tolerance_actual_list is used to store the nominal information for the tolerances.  The measured information is stored as part of the feature information.  This is an optional element for a DML to validate.

The feature_list is the most important top level element because it stores the bulk of the inspection results.  It includes the nominal, measured and raw data for the feature.  As well as the measured instance of any tolerance applied to it.  This is a required element for a DML to validate.

Feature_list Element

The feature_list element has five elements, feature_analysis_modes_default, tolerance_analysis_modes_default, analysis_dofs_default, feature and scan_result_list.  The first three and last elements are optional but the fourth (feature) is required.

The feature element stores the bulk of information and is subdivided into 5 elements, feature_analysis_modes, applied_tolerances, feature specific element, tolerance_actual_list and point_list.

The feature_analysis_modes, applied_tolerances, tolerance_actual_list and point_list are optional elements.  However if you have measured instances of a tolerance, the nominal tolerance must be defined in the tolerance_nominal_list element.  Not all information for the tolerance is stored in the measured instance.

The feature_analysis_modes element allows a particular feature to be calculated using analysis modes that differ from the defaults.  So if the defaults apply, no need to repeat the information on the feature.

The applied_tolerances element makes it easier to track which tolerances are applied to a feature.  A reporting application need not parse through all elements in the tolerance_actual_list.  It also allows the specification of tolerances that are applied but not measured.

The point_list is where the raw data is stored.  Currently it assumes surface data.

Supported Feature Types

The following feature types are supported in the DTD


Point

Line

Plane

Circle

Ellipse

Cylinder

Sphere

Cone

Pattern

Open slot

Closed slot

Point Surface

Point Curve

Constant Xsect

Surface of Revolution



Constructed Point

Constructed Line

Constructed Plane

Constructed Circle

Constructed Cylinder

unknown_feature_type


Supported Tolerance Types

The following tolerances and their zone types are supported in the DML


diameter_limit

diameter_delta

radius_limit

radius_delta

length_limit

length_delta

width_limit

width_delta

angle_limit

angle_delta

distance_between_limit

distance_between_delta

angle_between_limit

angle_between_delta

straightness

straightness_cyl_zone

flatness

cylindricity

circularity

perpendicularity_cyl_zone

perpendicularity_pln_zone

angularity_cyl_zone

angularity_pln_zone

parallel_cyl_zone

parallel_pln_zone

surface_profile_zone

line_profile_zone

position_cyl_zone

position_pln_zone

position_rad_zone

position_ang_zone

position_sph_zone

position_elong_zone

concentricity_zone

symmetry_zone

total_runout_zone

circular_runout_zone

unknown_tolerance_type