RULE edge_round_requires_faces_or_features

(* SCHEMA integrated_cnc_schema; *)
RULE edge_round_requires_faces_or_features FOR
  (edge_round,
   property_definition_representation,
   feature_component_relationship);
WHERE
  WR1:  (0 = SIZEOF (QUERY (er <* edge_round | NOT (

  -- edge round relates two sets of faces in AP-224 style
  ((1 = SIZEOF (QUERY (pdr <* property_definition_representation |
        ((pdr.used_representation.name = 'edge round face') AND
         (pdr.definition.definition :=: er) AND
         ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION'
           IN TYPEOF (pdr.used_representation)))))) AND

   (1 = SIZEOF (QUERY (pdr <* property_definition_representation |
        ((pdr.used_representation.name = 'first face shape') AND
         (pdr.definition.definition :=: er) AND
         ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION'
           IN TYPEOF (pdr.used_representation)))))) AND

   (1 = SIZEOF (QUERY (pdr <* property_definition_representation |
        ((pdr.used_representation.name = 'second face shape') AND
         (pdr.definition.definition :=: er) AND
         ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION'
           IN TYPEOF (pdr.used_representation))))))
  )
  OR
  -- edge round relates two features in ISO 14649 style
  ((1 = SIZEOF (QUERY (fcr <* feature_component_relationship |
        ((fcr.name = 'first feature') AND
         (fcr.relating_shape_aspect.of_shape.definition :=: er) AND
         ('INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT'
           IN TYPEOF (fcr.relating_shape_aspect))))))  AND

   (1 = SIZEOF (QUERY (fcr <* feature_component_relationship |
        ((fcr.name = 'second feature') AND
         (fcr.relating_shape_aspect.of_shape.definition :=: er) AND
         ('INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT'
           IN TYPEOF (fcr.relating_shape_aspect)))))))
   ))));
END_RULE; -- 10303-238: integrated_cnc_schema

[Top Level Definitions]

Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2010-01-12T10:42:25-02:00