| Application module: Basic curve | ISO/TS 10303-1651:2014-02(E)  © ISO  | 
         
This clause specifies the information requirements for the Basic curve 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 Basic_curve_arm schema and identifies the necessary external references.
EXPRESS specification:
         *)
            SCHEMA Basic_curve_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
            USE FROM
            Basic_geometry_arm;
               -- 
            ISO/TS 10303-1652
            USE FROM
            External_item_identification_assignment_arm;
               -- 
            ISO/TS 10303-1128
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Basic_geometry_arm ISO/TS 10303-1652 External_item_identification_assignment_arm ISO/TS 10303-1128 
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.

The closed_curve type is an extensible list of alternate data types that allows for the designation of the data types Circle and Closed_composite_curve.
NOTE The list of entity data types may be extended in application modules that use the constructs of this module.
EXPRESS specification:
            *)
            TYPE 
            closed_curve =
            
            EXTENSIBLE
            
            GENERIC_ENTITY
            
            
            SELECT
               (Circle, 
    Closed_composite_curve);
            END_TYPE; 
            (*
            

EXPRESS specification:
            *)
            TYPE 
            curve_transition_code =
            
            ENUMERATION
            
            OF
            
               
            (discontinuous,
    continuous,
    cont_same_gradient,
    cont_same_gradient_same_curvature);
            END_TYPE; 
            (*
            
Enumerated item definitions:
discontinuous: the segments do not join;
continuous: there is simple contact continuity between adjacent segments;
cont_same_gradient: at the point of contact the segments share a common tangent;
cont_same_gradient_same_curvature: at the point of contact the segments share a common tangent and have the same radius of curvature.
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.


EXPRESS specification:
            *)
            ENTITY Closed_composite_curve
              SUBTYPE OF (Composite_curve);
            END_ENTITY;
(*
            


EXPRESS specification:
            *)
            ENTITY Composite_curve
              SUBTYPE OF (Bounded_curve);
            
            
            
              curve_segment : LIST[1:?] OF 
            UNIQUE
            Composite_curve_segment;
            END_ENTITY;
(*
            
Attribute definitions:
curve_segment: specifies the role of the Composite_curve_segment for the Composite_curve. There shall be one or more Composite_curve_segment for a Composite_curve. No Composite_curve_segment shall be specified more than once as a curve_segment for a particular Composite_curve.


EXPRESS specification:
            *)
            ENTITY Composite_curve_segment;
            
            
            
              transition : curve_transition_code;
            
            
            
              same_sense : BOOLEAN;
            
            
            
              segment_curve : Bounded_curve;
INVERSE
              using_curves : SET[1:?] OF Composite_curve FOR curve_segment;
            END_ENTITY;
(*
            
Attribute definitions:
transition: the geometric continuity with the next curve segment when used in a composite curve.
same_sense: the relationship between the sense of the segment_curve and the sense of the composite curve using this segment.
segment_curve: specifies the Bounded_curve defining the geometry of the Composite_curve_segment.
using_curves: specifies an inverse relationship that specifies that the existence of the Composite_curve_segment is dependent on the existence of the Composite_curve that specifies the Composite_curve_segment as its curve_segment. There shall be one or more Composite_curve for a Composite_curve_segment.


A Trimmed_curve is a type of Curve that has a defined, finite extent.
NOTE The Trimmed_curve is necessary to support the specification of precise, metric geometry.
EXPRESS specification:
            *)
            ENTITY Trimmed_curve
              SUBTYPE OF (Bounded_curve);
            
            
            
              basis_curve : Curve;
            
            
            
              start_point : Cartesian_point;
            
            
            
              end_point : Cartesian_point;
            END_ENTITY;
(*
            
Attribute definitions:
basis_curve: specifies the Curve of which the Trimmed_curve is a bounded portion.
start_point: specifies one role of the Cartesian_point for the Trimmed_curve. The start_point is the initiating Cartesian_point.
end_point: specifies one role of the Cartesian_point for the Trimmed_curve. The end_point is the terminating Cartesian_point.
This subclause specifies the ARM subtype constraint for this module. The subtype constraint places a constraint on the possible super-type / subtype instantiations. The ARM subtype constraint and definition is specified below.


The curve_subtypes constraint specifies a constraint that applies to instances of subtypes of Bounded_curve.
EXPRESS specification:
            *)
SUBTYPE_CONSTRAINT curve_subtypes FOR Bounded_curve;
              ONEOF (Composite_curve,
         Trimmed_curve);
      
            END_SUBTYPE_CONSTRAINT;
(*
            
         *)
         END_SCHEMA;  -- Basic_curve_arm
(*
         © ISO 2014 — All rights reserved