Description
The ap203check, ap209check and ap214check tools rapidly check data files against the local rules (WHERE clauses) and global rules (RULEs) defined in the AP203, AP209 and AP214 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.
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 and exit.
Windows Control Panel
The AP203 Checker Windows control panel is shown in the figure below. Run this by selecting AP203 Checker, AP209 Checker, or AP214 Checker from the Start Menu. The following sections describe the fields and setting on this control panel and show how to perform various tasks with the checker.
At the top of the AP203 Checker control panel is a text field for the STEP files that you would like to check. You can open the file dialog using Ctrl+O or the [...] button to the right. You can also drag and drop files from the Windows Explorer. Click the Check button to start checking.
Example
As an example, we test a file to see if it meets the AP203 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.
% ap203check dogbad.stp == STEP AP-203 Checker == == Copyright (c) 1991-2024 by STEP Tools Inc. == 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