Background of SMCH
From WikiSTEP
Solid Model Construction History
Abstract Background Scope Model Overview EXPRESS short listing Implementation and Part 21 File
Some introductory discussion is provided here since the term Solid Model Construction History (SMCH) has understandably been confused with Constructive Solid Geometry (CSG). As developed in this document and in the ISO Parametrics Committee, SMCH includes CSG capabilities, but is much broader in functionality and scope as noted in the previous section. Classical CSG structures, plus some additional structures needed for constraints and integration, are provided in Part 515, while Part 42 Edition 2 provides additional entities not included in it.
The principal objective for exchanging SMCH is to enable users to transfer a 'intelligent solid' in a native system through STEP into a target system, and still have an 'intelligent solid', i.e., a solid that maintains the original relationships and that can be modified/edited. This guide provides an approach to capture and transfer some aspects of the behaviour of the model in a receiving system, which should be of great benefit to applications using the model after the transfer.
The development of SMCH capabilities is proving to be quite challenging, since some CAD vendors view this type of information as proprietary and part of their competitive advantage. Moreover, the purpose of this draft document for extending AP 203 is to obtain vendor/user review and feedback, which will greatly advance and accelerate development of a robust, neutral model that can be implemented and subsequently standardized.
Much on the remainder of this background discussion can be found in [1] or [2]. Modern CAD systems can generate product models with parametrization and geometric constraints. Such models can easily be edited for a variety of purposes, e.g., design optimization. Parametrization, the association of variables with dimensions in the model, provides an indication of what it is permissible to change. Constraints, specified relationships between geometric or topological elements, provide invariant characteristics in the model, often in the interests of maintaining product functionality during modification. The combination of the two capabilities allows the designer to explore options and to respond to feedback from downstream applications, such as manufacturing or maintenance, plus providing flexibility for collaborative design and concurrent engineering.
Parametrization and constraints may be implemented in CAD systems in either of two ways:
a) The first is by associating parameters with dimensions of elements explicitly present in a model and defining constraints as relationships between sets of model elements. The underlying representation may be defined in terms of geometric and topological entities such as are specified in ISO 10303-42.
b) The second is based on constructional history. In this procedural or history-based approach the sequence of operations used in generating the product model is stored. In this type of model, parameters arise as input variables of constructional operations, so that the model may be edited by changing the values of those inputs and re-running the constructional history. Constraints may be implicit in constructional procedures; for example, a procedure may be provided for generating a plane parallel to another plane. A model defined purely in terms of its constructional history does not have explicit faces, edges and vertices, etc., since these are not called into existence until the specified procedures are actually performed.
Most major CAD systems use a combination of the two approaches. Often, parameters and constraints are applied in explicitly defined two-dimensional constructs used in an otherwise procedural three-dimensional model.
Any type of CAD system, while in operation, generates an explicit model with specific numerical values for all parameters. In this document such a model is referred to as the `current result'. It is used during a design session to display a picture of the modeled product, and it allows the designer to interact with the system by picking entities of the current result model from the screen for modification or for use in constructional operations. Since this document is using a procedural or history-based approach, the current result is sent in the file as a Brep solid to validate that the procedural model created on the target system is correct.

