ENTITY machining_tool
(* SCHEMA integrated_cnc_schema; *)
ENTITY machining_tool
SUBTYPE OF (action_resource);
WHERE
WR1: NOT (SELF.kind.name = 'milling cutting tool') OR
((0 <= SIZEOF (QUERY (arr <* USEDIN (SELF,
'INTEGRATED_CNC_SCHEMA.ACTION_RESOURCE_RELATIONSHIP.RELATING_RESOURCE') |
(('INTEGRATED_CNC_SCHEMA.MACHINING_CUTTING_COMPONENT'
IN TYPEOF (arr.related_resource)) AND
(arr.related_resource.kind.name = 'milling cutting edge') )))) AND
(verify_optional_tool_body_item
(SELF, 'overall assembly length')) AND
(verify_length_measure_tool_body_item
(SELF, 'overall assembly length')) AND
(verify_optional_tool_body_item
(SELF, 'effective cutting diameter')) AND
(verify_length_measure_tool_body_item
(SELF, 'effective cutting diameter')) AND
(verify_optional_tool_body_item
(SELF, 'maximum depth of cut')) AND
(verify_length_measure_tool_body_item
(SELF, 'maximum depth of cut')) AND
(verify_optional_tool_body_item (SELF, 'hand of cut')) AND
(verify_enumeration_tool_body_item (SELF, 'hand of cut',
['left', 'right', 'neutral'])) AND
(verify_optional_tool_body_item (SELF, 'coolant through tool')) AND
(verify_enumeration_tool_body_item (SELF, 'coolant through tool',
['supported', 'not supported']))
);
WR2: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description IN [ 'counterbore', 'countersink',
'spade drill', 'spot drill', 'step drill', 'tapered drill',
'twist drill', 'drill']))
OR
((verify_optional_tool_body_item (SELF, 'point angle')) AND
(verify_angle_measure_tool_body_item (SELF, 'point angle'))
);
WR3: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'countersink'))
OR
((verify_optional_tool_body_item
(SELF, 'minimum cutting diameter')) AND
(verify_length_measure_tool_body_item
(SELF, 'minimum cutting diameter')) AND
(verify_required_tool_body_item
(SELF, 'maximum usable length')) AND
(verify_length_measure_tool_body_item
(SELF, 'maximum usable length'))
);
WR4: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'tapered drill'))
OR
((verify_required_tool_body_item (SELF, 'taper angle')) AND
(verify_angle_measure_tool_body_item (SELF, 'taper angle'))
);
-- Could make this stronger if we want
WR5: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'step drill'))
OR
((verify_required_tool_body_item (SELF, 'step diameters')) AND
(verify_rep_item_for_tool_body
(SELF, 'step diameters',
['INTEGRATED_CNC_SCHEMA.COMPOUND_REPRESENTATION_ITEM'])) AND
(verify_required_tool_body_item (SELF, 'step lengths')) AND
(verify_rep_item_for_tool_body
(SELF, 'step lengths',
['INTEGRATED_CNC_SCHEMA.COMPOUND_REPRESENTATION_ITEM']))
);
WR6: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description IN [ 'ballnose endmill', 'bullnose endmill',
'dovetail mill', 'endmill', 'facemill', 'profiled endmill',
'shoulder mill', 'tee slot mill', 'thread mill', 'side mill']))
OR
((verify_optional_tool_body_item
(SELF, 'number of effective teeth')) AND
(verify_count_measure_tool_body_item
(SELF, 'number of effective teeth')) AND
(verify_optional_tool_body_item (SELF, 'edge radius')) AND
(verify_length_measure_tool_body_item (SELF, 'edge radius'))
);
WR7: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description IN [ 'ballnose endmill', 'bullnose endmill',
'endmill', 'facemill', 'profiled endmill']))
OR
((verify_optional_tool_body_item
(SELF, 'tool cutting edge angle')) AND
(verify_angle_measure_tool_body_item
(SELF, 'tool cutting edge angle'))
);
WR8: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'ballnose endmill'))
OR verify_ballnose_endmill_dimensions (SELF);
WR9: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'bullnose endmill'))
OR verify_bullnose_endmill_dimensions (SELF);
WR10: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'tee slot mill'))
OR
((verify_optional_tool_body_item (SELF, 'cutting width')) AND
(verify_length_measure_tool_body_item (SELF, 'cutting width'))
);
WR11: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'dovetail mill'))
OR
((verify_optional_tool_body_item (SELF, 'included angle')) AND
(verify_angle_measure_tool_body_item (SELF, 'included angle'))
);
WR12: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'side mill'))
OR
((verify_optional_tool_body_item (SELF, 'cutter width')) AND
(verify_length_measure_tool_body_item (SELF, 'cutter width'))
);
WR13: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description IN [ 'thread mill', 'tapping tool',
'combined drill and tap']))
OR
((verify_required_tool_body_item (SELF, 'thread form type')) AND
(verify_rep_item_for_tool_body (SELF, 'thread form type',
['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'])) AND
(verify_required_tool_body_item (SELF, 'thread size')) AND
(verify_length_measure_tool_body_item (SELF, 'thread size')) AND
(verify_required_tool_body_item (SELF, 'thread pitch')) AND
(verify_length_measure_tool_body_item (SELF, 'thread pitch'))
);
WR14: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description IN [ 'tapping tool', 'combined drill and tap']))
OR
((verify_required_tool_body_item
(SELF, 'taper thread count')) AND
(verify_count_measure_tool_body_item
(SELF, 'taper thread count'))
);
WR15: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description IN [ 'reamer', 'combined drill and reamer',
'tapered reamer']))
OR
((verify_required_tool_body_item (SELF, 'taper length')) AND
(verify_length_measure_tool_body_item (SELF, 'taper length'))
);
WR16: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'tapered reamer'))
OR
((verify_required_tool_body_item (SELF, 'taper angle')) AND
(verify_angle_measure_tool_body_item (SELF, 'taper angle'))
);
WR17: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description IN [ 'combined drill and reamer',
'combined drill and tap']))
OR
((verify_required_tool_body_item (SELF, 'drill length')) AND
(verify_length_measure_tool_body_item (SELF, 'drill length'))
);
WR18: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'boring tool'))
OR
((verify_required_tool_body_item (SELF, 'retract movement')) AND
(verify_enumeration_tool_body_item (SELF, 'retract movement',
['permitted', 'forbidden']))
);
WR19: NOT ((SELF.kind.name = 'milling cutting tool') AND
(SELF.description = 'user defined milling tool'))
OR
((verify_optional_tool_body_item (SELF, 'tool description')) AND
(verify_rep_item_for_tool_body (SELF, 'tool description',
['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'])) AND
(verify_optional_tool_body_item
(SELF, 'corner radius')) AND
(verify_length_measure_tool_body_item
(SELF, 'corner radius')) AND
(verify_optional_tool_body_item
(SELF, 'corner radius center horizontal')) AND
(verify_length_measure_tool_body_item
(SELF, 'corner radius center horizontal')) AND
(verify_optional_tool_body_item
(SELF, 'corner radius center vertical')) AND
(verify_length_measure_tool_body_item
(SELF, 'corner radius center vertical')) AND
(verify_optional_tool_body_item (SELF, 'taper angle')) AND
(verify_angle_measure_tool_body_item (SELF, 'taper angle')) AND
(verify_optional_tool_body_item (SELF, 'tip outer angle')) AND
(verify_angle_measure_tool_body_item (SELF, 'tip outer angle'))
);
WR20: NOT (SELF.kind.name = 'turning cutting tool') OR
((verify_required_tool_body_item (SELF, 'functional length')) AND
(verify_length_measure_tool_body_item (SELF, 'functional length')) AND
(verify_required_tool_body_item (SELF, 'f dimension')) AND
(verify_length_measure_tool_body_item (SELF, 'f dimension')) AND
(verify_optional_tool_body_item
(SELF, 'minimum cutting diameter')) AND
(verify_length_measure_tool_body_item
(SELF, 'minimum cutting diameter')) AND
(verify_optional_tool_body_item
(SELF, 'a dimension on f')) AND
(verify_length_measure_tool_body_item
(SELF, 'a dimension on f')) AND
(verify_optional_tool_body_item
(SELF, 'a dimension on lf')) AND
(verify_length_measure_tool_body_item
(SELF, 'a dimension on lf')) AND
(verify_optional_tool_body_item (SELF, 'hand of cut')) AND
(verify_enumeration_tool_body_item (SELF, 'hand of cut',
['left', 'right', 'neutral'])) AND
(0 <= SIZEOF (QUERY (arr <* USEDIN (SELF,
'INTEGRATED_CNC_SCHEMA.ACTION_RESOURCE_RELATIONSHIP.RELATING_RESOURCE') |
(('INTEGRATED_CNC_SCHEMA.MACHINING_CUTTING_COMPONENT'
IN TYPEOF (arr.related_resource)) AND
(arr.related_resource.kind.name = 'turning cutting edge') ))))
);
WR21: NOT ((SELF.kind.name = 'turning cutting tool') AND
(SELF.description = 'turning threading tool'))
OR
((verify_required_tool_body_item (SELF, 'thread pitch')) AND
(verify_length_measure_tool_body_item (SELF, 'thread pitch')) AND
(verify_required_tool_body_item (SELF, 'thread hand')) AND
(verify_enumeration_tool_body_item (SELF, 'thread hand',
['left', 'right'])) AND
(verify_required_tool_body_item (SELF, 'thread type')) AND
(verify_enumeration_tool_body_item (SELF, 'thread type',
['internal', 'external'])) AND
(verify_required_tool_body_item (SELF, 'thread profile')) AND
(verify_enumeration_tool_body_item (SELF, 'thread profile',
['full', 'partial'])) AND
(verify_required_tool_body_item (SELF, 'thread form type')) AND
(verify_rep_item_for_tool_body (SELF, 'thread form type',
['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM']))
);
WR22: NOT ((SELF.kind.name = 'turning cutting tool') AND
(SELF.description = 'grooving tool'))
OR
((verify_required_tool_body_item
(SELF, 'cutting width')) AND
(verify_length_measure_tool_body_item
(SELF, 'cutting width')) AND
(verify_required_tool_body_item
(SELF, 'maximum grooving depth')) AND
(verify_length_measure_tool_body_item
(SELF, 'maximum grooving depth')) AND
(verify_optional_tool_body_item
(SELF, 'corner radius')) AND
(verify_length_measure_tool_body_item
(SELF, 'corner radius')) AND
(verify_optional_tool_body_item
(SELF, 'maximum axial grooving diameter')) AND
(verify_length_measure_tool_body_item
(SELF, 'maximum axial grooving diameter')) AND
(verify_optional_tool_body_item
(SELF, 'minimum axial grooving diameter')) AND
(verify_length_measure_tool_body_item
(SELF, 'minimum axial grooving diameter'))
);
WR23: NOT ((SELF.kind.name = 'turning cutting tool') AND
(SELF.description = 'knurling tool'))
OR
((verify_required_tool_body_item (SELF, 'knurl pattern')) AND
(verify_enumeration_tool_body_item (SELF, 'knurl pattern',
['straight', 'diagonal', 'diamond'])) AND
(verify_optional_tool_body_item (SELF, 'cutting length')) AND
(verify_length_measure_tool_body_item (SELF, 'cutting length')) AND
(verify_optional_tool_body_item (SELF, 'cutting angle')) AND
(verify_angle_measure_tool_body_item (SELF, 'cutting angle')) AND
(verify_optional_tool_body_item (SELF, 'cutting pitch')) AND
(verify_length_measure_tool_body_item (SELF, 'cutting pitch'))
);
WR24: NOT ((SELF.kind.name = 'turning cutting tool') AND
(SELF.description = 'user defined turning tool'))
OR
((verify_required_tool_body_item (SELF, 'tool identifier')) AND
(verify_rep_item_for_tool_body (SELF, 'tool identifier',
['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM']))
);
WR25: (1 >= SIZEOF (QUERY (rar <* USEDIN (SELF,
'INTEGRATED_CNC_SCHEMA.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES') |
((1 = SIZEOF(rar.operations)) AND
('INTEGRATED_CNC_SCHEMA.MACHINING_TOOL_USAGE'
IN TYPEOF (rar\action_resource_requirement.operations[1])))
)));
END_ENTITY; -- 10303-238: integrated_cnc_schema
Explicit Attributes
Entity machining_tool has the following local and inherited explicit attributes:
Derived Attributes
No derived attributes
Inverse Attributes
No Inverse AttributesSupertypes
Entity machining_tool inherits from the following supertypes:
action_resource
Subtypes
No subtypesReferenced By
Entity machining_tool and its supertypes are referenced by the following definitions:
[Top Level Definitions] Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2010-01-12T10:42:21-02:00