Book Contents | Book Index | Master Index | Previous Chapter | Next Chapter
Search STEP Tools Web Support

14.1 Description

The ap203check , ap209check and ap214check tools rapidly check data files against the local rules (WHERE clauses) and global rules (RULEs) defined in the AP-203, AP-209 and AP-214 EXPRESS schemas. The tool also checks for the presence of all required (non-OPTIONAL) attribute values in the data file.

The ap203check , ap209check and ap214check tools are faster than apconform , but are specific to a particular schema. Whereas the apconform tool utilizes a general EXPRESS interpreter, ap2XXcheck tools use custom C++ optimized for speed with techniques such as pre-computing reverse (USEDIN/INVERSE) references between entity instances.


14.2 Command Line

ap203check [options] <data-file>
ap209check [options] <data-file>
ap214check [options] <data-file>

The options accepted by the checkers are:

-help
Print this list of options. The tool performs no other action and ignores all other options.


14.3 Example

As an example, we test a file to see if it meets the AP-203 schema constraints. The example file is an assembly of parts forming a doghouse. It is a modified copy of the file doghouse.stp on our web site translation service. It has been modified so that the geometric context entity instance specifies 2-dimensionality (while the geometry remains 3-dimensional) and so that one of the edge_loop instances does not meet a head-to-tail constraint. You can find this file in the ST-Developer installation as demos/ap203check/dogbad.stp

    % ap203check dogbad.stp
    == STEP AP-203 Checker
    == 
    == Copyright (c) 1991-2006 by
    == STEP Tools Inc., Troy, New York
    == All Rights Reserved
    == 
    == Product licensed to:
    ==      STEP Tools Internal Use Only
    ==      STEP Tools Lab
    == 
     
    computing reverse pointers
    ...........
    1125 total entity instances
    validating required attributes
    validating ENTITY advanced_brep_shape_representation, 1 instance
    validating ENTITY advanced_face, 32 instances
    WHERE failure: advanced_face WR5: edge_geometry(#505=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #483=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#500=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #483=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#495=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #483=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#488=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #483=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#488=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #483=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#604=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#599=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#594=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#589=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#584=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#579=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#574=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#569=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#564=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#559=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    WHERE failure: advanced_face WR5: edge_geometry(#554=intersection_curve) is not one of line, conic, polyline, pcurve, b_spline_curve
      #506=advanced_face
    [... 159 more messages]
     
    validating ENTITY axis2_placement_3d, 41 instances
    WHERE failure: axis2_placement_3d WR1: `location' is not 3-dimensional
      #14=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR2: `axis' is not 3-dimensional
      #14=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR3: `ref_direction' is not 3-dimensional
      #14=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR4: could not compute cross product of `axis' and `ref_direction'
      #14=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR1: `location' is not 3-dimensional
      #18=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR2: `axis' is not 3-dimensional
      #18=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR1: `location' is not 3-dimensional
      #26=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR2: `axis' is not 3-dimensional
      #26=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR1: `location' is not 3-dimensional
      #28=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR2: `axis' is not 3-dimensional
      #28=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR3: `ref_direction' is not 3-dimensional
      #28=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR4: could not compute cross product of `axis' and `ref_direction'
      #28=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR1: `location' is not 3-dimensional
      #35=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR2: `axis' is not 3-dimensional
      #35=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR1: `location' is not 3-dimensional
      #43=axis2_placement_3d
    WHERE failure: axis2_placement_3d WR2: `axis' is not 3-dimensional
      #43=axis2_placement_3d
    [... 98 more messages]
     
    validating ENTITY calendar_date, 5 instances
    validating ENTITY cc_design_date_and_time_assignment, 2 instances
    validating ENTITY cc_design_person_and_organization_assignment, 5 instances
    validating ENTITY design_context, 1 instance
    validating ENTITY direction, 130 instances
    validating ENTITY edge_loop, 33 instances
    validating ENTITY face, 32 instances
    validating ENTITY geometric_representation_item, 794 instances
    validating ENTITY intersection_curve, 87 instances
    validating ENTITY length_measure_with_unit, 1 instance
    validating ENTITY length_unit, 2 instances
    validating ENTITY local_time, 5 instances
    validating ENTITY line, 73 instances
    validating ENTITY measure_with_unit, 3 instances
    validating ENTITY mechanical_context, 1 instance
    validating ENTITY oriented_edge, 174 instances
    validating ENTITY path, 33 instances
    WHERE failure: path WR1: path is not head-to-tail (bad edge order?)
      #485=edge_loop
    validating ENTITY person, 3 instances
    validating ENTITY plane_angle_measure_with_unit, 1 instance
    validating ENTITY plane_angle_unit, 2 instances
    validating ENTITY product_definition_shape, 1 instance
    validating ENTITY representation_item, 1035 instances
     

 

| Book Contents | Book Index | Master Index | ST-Developer Home | Previous Chapter | Next Chapter |