DML
Overview Specification
For Version 2.0
Written by Joe Schafer
Revision 1.0
Table of Contents
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.
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.
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.
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.
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
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