Application module: Advanced boundary representation | ISO/TS 10303-1514:2018-11(E) © ISO |
This clause specifies the information requirements for the Advanced boundary representation application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Advanced_boundary_representation_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Advanced_boundary_representation_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Topologically_bounded_surface_arm;
--
ISO/TS 10303-1511
USE FROM
Solid_model_arm;
--
ISO/TS 10303-1793
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Topologically_bounded_surface_arm ISO/TS 10303-1511 Solid_model_arm ISO/TS 10303-1793
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
This subclause specifies the ARM type for this application module. The ARM type and definition is specified below.
EXPRESS specification:
*)
TYPE
advanced_brep_shape_representation_item =
SELECT
(Axis_placement_3d,
Geometric_placement_operation,
Manifold_solid_brep);
END_TYPE;
(*
This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.
These specializations differ from the more general B-rep in that they shall only use explicit geometric forms for their face and edge geometry. The face geometry is restricted to elementary surfaces, swept surfaces or B-spline surfaces.
NOTE 1 This entity is incompletely modelled in the ARM. Complete specification can be obtained in the definition of the corresponding MIM entity. The MIM entity contains additional constraints on the usage of mapped_items in this entity. To ensure that an appropriate manifold solid B-rep is included in the representation.
EXPRESS specification:
*)
ENTITY Advanced_brep_shape_representation
SUBTYPE OF (Geometric_model);
SELF\Representation.items : SET[1:?] OF advanced_brep_shape_representation_item;
WHERE
WR1: SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items |
('ADVANCED_BOUNDARY_REPRESENTATION_ARM.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) |
( NOT (SIZEOF(QUERY ( csh <* collect_shells(msb) |
(NOT (SIZEOF(QUERY ( fcs <* csh\
connected_face_set.connected_faces | (NOT (
'ADVANCED_BOUNDARY_REPRESENTATION_ARM.ADVANCED_FACE' IN TYPEOF(fcs))) )) = 0)) ))
= 0)) )) = 0;
END_ENTITY;
(*
Attribute definitions:
items: a set of advanced_brep_shape_representation_items that the Advanced_brep_shape_representation is a collection of. Each item is either a Manifold_solid_brep, an Axis_placement_3d, or a Geometric_placement_operation.
NOTE 2 When a Geometric_placement_operation is included there are rules in the corresponding MIM entity to ensure that it is a mapping of an Advanced_brep_shape_representation.
Formal propositions:
WR1: for each Manifold_solid_brep in the items set each face shall be an Advanced_face. This ensures that the geometry and topology of the B-rep are fully defined.
EXPRESS specification:
*)
ENTITY Closed_shell
SUBTYPE OF (Connected_face_set);
END_ENTITY;
(*
EXPRESS specification:
*)
ENTITY Manifold_solid_brep
SUBTYPE OF (Solid_model);
outer : Closed_shell;
voids :
OPTIONAL
SET[1:?] OF Oriented_closed_shell;
WHERE
WR1: (NOT EXISTS(voids)) OR (SIZEOF(QUERY ( ocs <* SELF.voids |
( NOT (ocs.orientation = FALSE)))) = 0);
END_ENTITY;
(*
Attribute definitions:
outer: specifies the role of the Closed_shell as outer shell of the Manifold_solid_brep.
voids: specifies the Oriented_closed_shell enclosing the interior voids of the Manifold_solid_brep. The value of this attribute need not be specified.
Formal propositions:
WR1: Either there shall be no voids attribute, or each Oriented_closed_shell in this set shall have orientation = FALSE.
EXPRESS specification:
*)
ENTITY Oriented_closed_shell
SUBTYPE OF (Closed_shell);
shell : Closed_shell;
orientation : BOOLEAN;
WHERE
WR1: NOT ('ADVANCED_BOUNDARY_REPRESENTATION_ARM.ORIENTED_CLOSED_SHELL'
IN TYPEOF (SELF.shell));
END_ENTITY;
(*
Attribute definitions:
shell: the Closed_shell which defines the faces of the Oriented_closed_shell.
NOTE This entity is not fully defined in the ARM; the corresponding MIM object has an additional attribute which derives the set of correctly oriented faces for the oriented closed shell from those of shell.
orientation: the relationship between the orientation of the Oriented_closed_shell being defined and the shell referenced.
Formal propositions:
WR1: The type of shell shall not be Oriented_closed_shell.
This subclause specifies the ARM function for this module. The ARM function and definition is specified below.
EXPRESS specification:
*)
FUNCTION collect_shells (brep : Manifold_solid_brep) : SET[1:?] OF Closed_shell;
LOCAL return_set: SET[1:?] OF closed_shell := [brep.outer]; END_LOCAL; IF SIZEOF(brep.voids) >= 1 THEN return_set := return_set + brep.voids; END_IF; RETURN(return_set);
END_FUNCTION;
(*
Argument definitions:
brep: (input) the Manifold_solid_brep for which it is required to collect the shells.
*)
END_SCHEMA; -- Advanced_boundary_representation_arm
(*
© ISO 2018 — All rights reserved