<!-- dml_basic_geometry.dtd
DML: Dimensional Markup Language - Version 2.0
This file (DTD) defines basic geometry attributes and elements.
The attributes and elements defined here are used in other DTD files
(which include this file) to build up more complex feature types.
-->
<!ENTITY % sequence_id "sequence_id CDATA #IMPLIED">
<!--
Define attributes that any element declaration that requires x,y,z
coordinates or i,j,k vector can use.
-->
<!ENTITY % point_att " x CDATA #IMPLIED
y CDATA #IMPLIED
z CDATA #IMPLIED">
<!ENTITY % vector_att " i CDATA #IMPLIED
j CDATA #IMPLIED
k CDATA #IMPLIED">
<!--
The following two elements were moved from dml_scanning.dtd
-->
<!ELEMENT start_point EMPTY>
<!ATTLIST point
%point_att;
>
<!ELEMENT end_point EMPTY>
<!ATTLIST point
%point_att;
>
<!--
Define basic point and vector elements.
-->
<!ELEMENT point EMPTY>
<!ATTLIST point
%point_att;
>
<!ELEMENT center_point EMPTY>
<!ATTLIST center_point
%point_att;
>
<!ELEMENT axis_point EMPTY>
<!ATTLIST axis_point
%point_att;
>
<!ELEMENT focus_point EMPTY>
<!ATTLIST focus_point
%point_att;
>
<!ELEMENT vector EMPTY>
<!ATTLIST vector
%vector_att;
>
<!ELEMENT north_pole_vector EMPTY>
<!ATTLIST north_pole_vector
%vector_att;
>
<!ELEMENT normal EMPTY>
<!ATTLIST normal
%vector_att;
>
<!ELEMENT adj_normal EMPTY>
<!ATTLIST adj_normal
%vector_att;
>
<!ELEMENT start_vector EMPTY>
<!ATTLIST start_vector
%vector_att;
>
<!ELEMENT axis_vector EMPTY>
<!ATTLIST axis_vector
%vector_att;
>
<!ELEMENT length_vector EMPTY>
<!ATTLIST length_vector
%vector_att;
>
<!ELEMENT angle (#PCDATA)>
<!ELEMENT diameter (#PCDATA)>
<!ELEMENT minor_diameter (#PCDATA)>
<!ELEMENT major_diameter (#PCDATA)>
<!ELEMENT depth (#PCDATA)>
<!ELEMENT offset (#PCDATA)>
<!--
These are min and max measured diameters. They are not tolerance limits.
-->
<!ELEMENT diameter_min (#PCDATA)>
<!ELEMENT diameter_max (#PCDATA)>
<!--
These are min and max measured sizes. They are not tolerance limits.
-->
<!ELEMENT width (#PCDATA)>
<!ELEMENT width_min (#PCDATA)>
<!ELEMENT width_max (#PCDATA)>
<!ELEMENT length (#PCDATA)>
<!ELEMENT length_min (#PCDATA)>
<!ELEMENT length_max (#PCDATA)>
<!--
Basic point elements for nominal and measured points. See point_list
element (below) for example usage. Note that IJK vector is optional.
-->
<!ELEMENT nominal_point (point, normal?)>
<!ELEMENT measured_point (point, normal?, ball_radius?)>
<!ATTLIST measured_point
compensated (YES | NO) #IMPLIED
>
<!ELEMENT ball_radius (#PCDATA)>
<!--
Point data can be a design point, measured point,
or both. See point_list element (below) for example usage.
-->
<!ELEMENT point_data (nominal_point?, measured_point?)>
<!ATTLIST point_data
id ID #REQUIRED
%sequence_id;
>
<!--
Point list is one or more <point_data> elements. Example of a
point list using elements defined in this file:
<point_list>
<point_data id="pt00909">
<nominal_point>
<point x="874.88" y="764764.88" z="89476.84"/>
<normal i="1.00" j="0.00" k="0.00"/>
</nominal_point>
<measured_point>
<point x="874.23848" y="764764.49445" z="89475.9858984"/>
<normal i="1.00" j="0.00" k="0.00"/>
</measured_point>
</point_data>
<point_data id="pt00910">
<nominal_point>
<point x="874.88" y="764764.88" z="89476.84"/>
</nominal_point>
<measured_point>
<point x="874.23848" y="764764.49445" z="89475.9858984"/>
</measured_point>
</point_data>
<point_data id="pt00911">
<measured_point>
<point x="874.23848" y="764764.49445" z="89475.9858984"/>
<normal i="1.00" j="0.00" k="0.00"/>
</measured_point>
</point_data>
</point_list>
-->
<!ELEMENT point_list (point_data+)>
<!--
Poly line. Requires 3 or more points.
Example XML of poly_line used to define the edges of a plane:
<plane_feature x="1.0" y="0.0" z="10.0" i="0.0"
j="0.0" k="1.0" >
<poly_line>
<point x="1.0" y="0.0" z="10.0" />
<point x="0.0" y="1.0" z="10.0" />
<point x="1.0" y="1.0" z="10.0" />
</poly_line>
</plane_feature>
-->
<!ELEMENT poly_line (point, point, point+)>
<!--
Transform used for applying rotation and translation (a coordinate
system). Vectors are X, Y and Z axis rotations (in that order).
point is an offset.
-->
<!ELEMENT transform_3d (vector, vector, vector, point)>
<!--
Coordinate system is a transformation along with a unique identifier.
-->
<!ELEMENT part_coordinate_system (transform_3d)>
<!ATTLIST part_coordinate_system
pcs_id ID #REQUIRED
>