As I am writing this, we are part way through the process of making new releases of the D-Cubed Components. The 2D products (2D DCM, PGM) have just been shipped and the 3D products (3D DCM, AEM, CDM, HLM) will follow soon. In these releases, 2D DCM and 3D DCM have both been extended to add direct support for new types of geometry.
Full details of all the enhancements will be announced in due course, but in this post I would like to talk in more general terms about why it is important for geometric constraint solvers to support a wide range of geometry types.
For many years, the 2D DCM and 3D DCM have included ways to represent the geometry types found in most CAD models even when no direct support is available. There are two methods that can be used to do this. Firstly, there is support for NURBS curves and surfaces which can be used to represent many types of geometries. Secondly, there is support for general parametric curves and surfaces, where the DCM will call evaluator functions provided by the application in order to get position and derivative information.
These features are very powerful, but over time direct support for many extra geometry types has been added to the D-Cubed products. The main driver for this has been the growing use of parametric design and variational modelling methods, including direct modelling, and the desire to get the optimum results with a wider range of model data.
So, what are the advantages for users and application developers of direct support for specific geometry types in the D-Cubed geometric constraint solvers? This is what I think are the most important benefits:
It is usually easier for the people integrating the products into an application. Rather than having to convert geometry to a NURBS or general parametric, the same representation is used in the application and the DCM.
Models can use additional constraint types. For example, a circular curve can be made geometrically coincident to a conical surface, and hence the 3D DCM supports a coincident constraint between a circle and a cone. For each new geometry type added to the DCM, there are usually several new constraint configurations which become valid.
The constraint solvers can give more predictable results when a geometry needs to be modified. For example, a cylinder can be moved, change its axis direction or change its radius. By independently using these freedoms the 3D DCM can give results which are more intuitive to users, especially when a model is not fully constrained.
Special-purpose solving code can be written. Often, iterative methods can be replaced with algebraic methods which are usually more accurate and faster.
The overall message is clear – in the field of constraint solving, special-case methods which rely on a knowledge of the geometry types are preferable to generic methods. The generic representations have their place, but CAD models are usually dominated by geometry of known types. The more the software understands about these, the better able it will be to give users the results they want.
In future posts I’ll talk about the specific new geometry types which have been added to the 2D DCM and 3D DCM, and the benefits that these bring to users.