RULE chamfer_requires_faces_or_features

(* SCHEMA integrated_cnc_schema; *)
RULE chamfer_requires_faces_or_features FOR
  (chamfer,
   property_definition_representation,
   feature_component_relationship);
WHERE
  WR1:  (0 = SIZEOF (QUERY (cf <* chamfer | NOT (

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

   (1 = SIZEOF (QUERY (fcr <* feature_component_relationship |
        ((fcr.relating_shape_aspect :=: cf) AND
         (fcr.related_shape_aspect.description = 'first offset') AND
         ('INTEGRATED_CNC_SCHEMA.CHAMFER_OFFSET'
           IN TYPEOF (fcr.related_shape_aspect)) AND
         ((1 = SIZEOF (QUERY (pdr <* property_definition_representation |
               ((pdr.used_representation.name = 'first face shape') AND
                (pdr.definition.definition :=: fcr.related_shape_aspect) AND
                ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION'
                  IN TYPEOF (pdr.used_representation)))
         )))) )))) AND

   (1 = SIZEOF (QUERY (fcr <* feature_component_relationship |
        ((fcr.relating_shape_aspect :=: cf) AND
         (fcr.related_shape_aspect.description = 'second offset') AND
         ('INTEGRATED_CNC_SCHEMA.CHAMFER_OFFSET'
           IN TYPEOF (fcr.related_shape_aspect)) AND
         ((1 = SIZEOF (QUERY (pdr <* property_definition_representation |
               ((pdr.used_representation.name = 'second face shape') AND
                (pdr.definition.definition :=: fcr.related_shape_aspect) AND
                ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION'
                  IN TYPEOF (pdr.used_representation)))
         )))) ))))
  )
  OR
  -- chamfer 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 :=: cf) 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 :=: cf) 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