ENTITY machining_tool
(* SCHEMA step_merged_ap_schema; *)
-- IN AP238 STEP-NC
ENTITY machining_tool
SUBTYPE OF (action_resource);
WHERE
WR1:
NOT (SELF.kind.name = 'milling cutting tool') OR ((((((((((0 <= SIZEOF(QUERY (arr <* USEDIN(SELF, 'STEP_MERGED_AP_SCHEMA.ACTION_RESOURCE_RELATIONSHIP.RELATING_RESOURCE')| ('STEP_MERGED_AP_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');
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', [ 'STEP_MERGED_AP_SCHEMA.COMPOUND_REPRESENTATION_ITEM' ])) AND verify_required_tool_body_item(SELF, 'step lengths')) AND verify_rep_item_for_tool_body(SELF, 'step lengths', [ 'STEP_MERGED_AP_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', [ 'STEP_MERGED_AP_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', [ 'STEP_MERGED_AP_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, 'STEP_MERGED_AP_SCHEMA.ACTION_RESOURCE_RELATIONSHIP.RELATING_RESOURCE')| ('STEP_MERGED_AP_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', [ 'STEP_MERGED_AP_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', [ 'STEP_MERGED_AP_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' ]);
WR25:
1 >= SIZEOF(QUERY (rar <* USEDIN(SELF, 'STEP_MERGED_AP_SCHEMA.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')| (1 = SIZEOF(rar.operations)) AND ('STEP_MERGED_AP_SCHEMA.MACHINING_TOOL_USAGE' IN TYPEOF(rar\action_resource_requirement.operations[1]))));
END_ENTITY;
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] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2024-09-06T14:00:32-04:00