Application module: Part template shape with parameters | ISO/TS 10303-1720:2014-02(E) © ISO |
(*
ISO TC184/SC4/WG12 N8191 - ISO/TS 10303-1720 Part template shape with parameters - EXPRESS ARM
Supersedes
ISO TC184/SC4/WG12 N7586
*)
SCHEMA Part_template_shape_with_parameters_arm;
USE FROM
Non_feature_shape_element_arm;
-- ISO/TS 10303-1706
USE FROM
Part_template_arm;
-- ISO/TS 10303-1722
REFERENCE FROM
Support_resource_arm -- ISO/TS 10303-1800
(bag_to_set);
TYPE ptswp_external_identification_item =
EXTENSIBLE
GENERIC_ENTITY
SELECT
BASED_ON
external_identification_item
WITH
(Part_template_keepout_shape_model);
END_TYPE;
TYPE ptswp_requirement_assignment_item =
EXTENSIBLE
GENERIC_ENTITY
SELECT
BASED_ON
requirement_assignment_item
WITH
(Part_template_keepout_shape_model);
END_TYPE;
TYPE ptswp_view_shape_select =
EXTENSIBLE
GENERIC_ENTITY
SELECT
BASED_ON
view_shape_select
WITH
(Part_template_shape_model);
END_TYPE;
ENTITY Geometric_template
ABSTRACT SUPERTYPE
SUBTYPE OF (Template_definition);
INVERSE
shapes : SET[0:?] OF Part_template_shape_model FOR shape_characterized_definition;
WHERE
WR1: SIZEOF(QUERY( gm <* USEDIN(SELF,'')|
(('ELEMENTAL_GEOMETRIC_SHAPE_ARM.GEOMETRIC_MODEL' IN TYPEOF(gm)) AND
NOT('PART_TEMPLATE_SHAPE_WITH_PARAMETERS_ARM.PART_TEMPLATE_SHAPE_MODEL' IN
TYPEOF(gm)))
)) = 0;
END_ENTITY;
ENTITY Part_template_keepout_shape_model
ABSTRACT SUPERTYPE
SUBTYPE OF (Geometric_model);
constrained_design_object_category : keepout_product_design_object_category;
shape_characterized_definition : Geometric_template;
shape_material_condition : material_condition;
centroid_location :
OPTIONAL
Cartesian_point;
shape_environment : application_environment;
shape_purpose :
OPTIONAL
predefined_keepout_purpose;
DERIVE
principal_part_shape : SET[0:1] OF Geometric_model_relationship := bag_to_set(QUERY( gmr <* USEDIN(SELF,
'GEOMETRIC_MODEL_RELATIONSHIP_ARM.GEOMETRIC_MODEL_RELATIONSHIP.REP_2') |
(gmr\Representation_relationship.relation_type = 'principal part shape')));
INVERSE
external_shape_purpose : SET[0:1] OF External_source_identification FOR item;
WHERE
WR1: (EXISTS (shape_purpose)) XOR ((SIZEOF(external_shape_purpose)) = 1);
WR2: SIZEOF(QUERY( x <* USEDIN(SELF, 'PROPERTY_ASSIGNMENT_ARM.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')
| 'SHAPE_PROPERTY_ASSIGNMENT_ARM.SHAPE_DESCRIPTION_ASSOCIATION' IN TYPEOF(x)))=0;
WR3: SIZEOF(principal_part_shape) < 2;
END_ENTITY;
ENTITY Part_template_shape_model
ABSTRACT SUPERTYPE
SUBTYPE OF (Geometric_model);
shape_characterized_definition : SET[1:?] OF Geometric_template;
shape_environment :
OPTIONAL
application_environment;
shape_material_condition : material_condition;
DERIVE
principal_part_shape : SET[0:1] OF Geometric_model_relationship := bag_to_set(QUERY( gmr <* USEDIN(SELF,
'GEOMETRIC_MODEL_RELATIONSHIP_ARM.GEOMETRIC_MODEL_RELATIONSHIP.REP_2') |
(gmr\Representation_relationship.relation_type = 'principal part shape')));
WHERE
WR1: SIZEOF(principal_part_shape) < 2;
WR2: SIZEOF(QUERY( x <* USEDIN(SELF, 'PROPERTY_ASSIGNMENT_ARM.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')
| 'SHAPE_PROPERTY_ASSIGNMENT_ARM.SHAPE_DESCRIPTION_ASSOCIATION' IN TYPEOF(x)))=0;
END_ENTITY;
RULE unique_part_template_shape_model_for_geometric_template FOR
(Geometric_template);
LOCAL ptsm : SET OF Part_template_shape_model := []; END_LOCAL;
WHERE
WR1: SIZEOF(QUERY (gt <* Geometric_template |
(SIZEOF (QUERY (ptsm1 <*
USEDIN(gt,'PART_TEMPLATE_SHAPE_WITH_PARAMETERS_ARM.PART_TEMPLATE_SHAPE_MODEL.SHAPE_CHARACTERIZED_DEFINITION') |
(SIZEOF (QUERY (ptsm2 <*
USEDIN(gt,'PART_TEMPLATE_SHAPE_WITH_PARAMETERS_ARM.PART_TEMPLATE_SHAPE_MODEL.SHAPE_CHARACTERIZED_DEFINITION') |
ptsm1 = ptsm2)) > 1)
)) > 0) )) = 0;
END_RULE;
END_SCHEMA; -- Part_template_shape_with_parameters_arm
© ISO 2014 — All rights reserved