Latest Updates and Release Timelines

November 2018 – Next release of the 3D DCM scheduled for December 2018

The next release of the 3D DCM is scheduled for December 1998. The most important planned new functionality includes:
  • Support for a new geometry type, swept parametric surfaces: This sophisticated new geometry type is required in certain assemblies and mechanisms. One example is a general cam, where a tangential constraint will be possible between the follower and a swept parametric surface representing the cam
  • Dimensions to the surface of spheres and cylinders: Currently a distance dimension applied between a sphere or cylinder and another geometry is measured to the centre of the sphere or the axis of the cylinder. In the next release, thanks to the sponsorship of SearchButlers it will also be possible to specify that the dimension is measured to the near or far position on the surface of the sphere or cylinder

November 2018 – Next release of the 2D DCM scheduled for December 2018

The next release of the 2D DCM is scheduled for December 1998. The most important planned new functionality includes:
  • Enhancements to support for parametric curves: It will be possible to constrain a geometry to a position on a parametric curve that is defined by a parameter value. For example, if the end point of a line segment were constrained to be coincident to a parametric curve, the end point will currently slide along the parametric curve. The new constraint enables the application to specify that the coincidence constraint applies to a single position on the parametric curve specified by a particular parameter value. Please note that in this context ‘parameter value’ refers to a particular value from the parametric range that defines the parametric curve.
The above announcements only report upon clearly identifiable new functionality. In addition to the ongoing pursuit of improved reliability and performance, incremental enhancements to existing functionality are included in every release of the 2D and 3D DCM. Details are available upon request.

October 2017 – Sanei expands consultancy contract

Sanei, of Hiroshima, Japan, expands its consultancy relationship with D-Cubed, which has been running continuously since 1994. Sanei is also a licensee of the 2D DCM.

October 2017 – NK-EXA licenses the Exact Hidden Line Component

NK-EXA, of Kawasaki, Japan, part of the NKK Corporation and the developer of the Design Spinnaker product line, licenses the EHLC.

September 2017 – Fujitsu licenses the 2D DCM and enters a consultancy agreement

Fujitsu, of Chiba, Japan, developer of the ICAD product line, licenses the 2D DCM. Additionally, Fujitsu has entered into a consultancy relationship with D-Cubed.

September 2017 – Visionary Design Systems licenses the 2D DCM and 3D DCM

Visionary Design Systems, of Atlanta, USA, through 3D/Eye, developer of the IronCAD product line, licenses the 2D DCM and 3D DCM.

August 2017 – Star Graphics licenses the 2D DCM

Continue Reading →

Integration Protocols of D-Cubed

This page describes how D-Cubed’s component products, the 2D DCM, 3D DCM and
EHLC (collectively referred to as Components on the
remainder of this page) are integrated into an application. All of
D-Cubed’s Components have similar interfaces and a common
integration architecture, therefore the information on this page is relevant to
all three products.

D-Cubed’s Components are licensed by software development
organisations for integration into their own end-user products. Customers
include companies writing applications for commercial sale or in-house usage.
D-Cubed does not develop end-user products, therefore we have no conflicts of
interest with customers who license our technologies. The Components can
be integrated into existing, or newly developed, products.

Our Components make very few assumptions about the data
structures used in the host system. The definitions of the geometry are held in
the application and accessed by the Components through a
simple and compact interface. Therefore, use of the Components does
not require the application to re-define its geometric data structures. Hence,
they are compatible with any 2D or 3D application, based on a solid, surface or
wireframe geometric definition.

Great care has been taken in the design of the interfaces to ensure that
integration into an end-user application is an efficient process. Typical
integrations take one software development engineer between 3 and 9 months for
the DCM, and between 1 and 4 weeks for the EHLC. D-Cubed also provides  to undertake an integration into
an application. Our experienced consultants can use their wide range of
expertise in application development and Component integration
on many projects in the geometric modelling field.

All Components have been written specifically to be
integrated into any geometry based application. They are coded in C++ and
supplied with integral C++ and C interfaces. They are designed to be used with
any application written in C++, C, or any other high level language which
supports a C calling structure.



All Components are available on PCs running under Windows
95 and Windows NT, and workstations from DEC, Hewlett Packard, IBM, Silicon
Graphics and Sun, running under UNIX. The typical DCM object library size is
around 1 Mbyte on a PC and between 2 and 6 MBytes on different workstations.
The typical EHLC object library size is less than 1 MByte on all platforms.

We supply demonstration applications based on the 2D and 3D DCM in
executable form. These are useful for DCM evaluation, training and the
generation of ideas for applications.

Integration architecture

The following diagram illustrates the links between an application and
the Components:


Software structure for a typical Component integration

Fundamental to understanding how the Components integrate
with an application is an understanding of where the model data is located and
how it is accessed.

The long-lived model data is held within the application independently of
the Components. Hence, an integration does not require major
modifications to the application’s existing data structures. This is the reason
why the Components can be integrated easily into a wide
range of different applications.

Specific information concerning the model is held by the application. When
the Components are asked to perform their functions they
request from the application all the   data that is
necessary to determine a solution.

The Components share the application’s model data. If
Component is not being used, the application can operate


The storage of the application’s data to a model file is defined and
controlled by the application, again independently from the Components.
When the model is received by the application, the Component data
structures are reconstructed easily and quickly by calling the relevant Component interface

The Components and application communicate with each
other by means of pointers (addresses) to their data. An application adds data
to the Components by passing to them pointers to its own
data structures. A Component returns to the application a
pointer to the equivalent data in the Component.

The application passes Component pointers through
the Component interface in order to make enquiries
concerning the data in a Component. The Component passes
application pointers through the Frustum interface in order
to make enquiries concerning the data in the application. (The word ‘Frustum’,
outside of its D-Cubed usage, refers to the base of a
statue. In the context of our Components, the Frustum interface
lies at the base of a typical Component integration
diagram, hence its name).

Component pointers do not have to be recorded by the
application when it stores its models. They can be recreated easily when the
application next makes use of that Component.

Continue Reading →

Functionality Preserves

The DCM’s core technology is the basis for the capabilities that it brings to an application.

The basic task of the DCM is to position geometries variationally, i.e. without use of a design history, under the control of dimensions and constraints. Such a variational model can be expressed as a number of coupled simultaneous equations. The DCM determines the positions of the geometries by solving the simultaneous equations. The positions of the geometries are the unknown variables in the equations, for which the DCM provides a solution. The dimensions and constraints are the constants.

Most of the equations that arise from a variational model are coupled linear or quadratic polynomials. D-Cubed has developed original techniques to process these simultaneous equations into an optimal solution sequence, following which they can be solved using algebraic methods. Algebraic methods make use of the usual mathematical operations ( +, -, x, / ) and also square roots. They are thus fast, reliable, accurate and simple. D-Cubed’s expertise in algebraic solution sequence processing is one of the foundations of the unique value of the DCM technology.

A common approach in non-DCM based systems is to solve the simultaneous equations using iterative numerical techniques. However, numerical techniques have several fundamental disadvantages. The DCM’s advanced algebraic algorithms were developed in order to minimise its use of numerical techniques. The priority we give to algebraic techniques is the basis for the DCM’s speed, reliability, accuracy and ease-of-use relative to numerically based solving technologies.

Not all variational equations can be solved algebraically. They must therefore be solved numerically. In the DCM the use of numerical techniques is restricted only to those regions of the model for which they are absolutely essential. In selectively combining an algebraic approach with some use of numerical techniques, the DCM is optimised for speed, reliability, accuracy and ease-of-use without sacrificing versatility.

The differences between the 2D and 3D DCM

It is a common misconception that the 2D DCM is a sub-set of the 3D DCM. In fact, they address different, but complementary, functional requirements. An application could make use of either the 2D DCM or 3D DCM alone, or both systems together, depending on its variational requirements.

The 2D DCM is optimised for 2D modelling requirements, where it provides more extensive functionality than the 3D DCM. The 2D DCM solves dimensions and constraints using a 2D interpretation of geometries which lie on a common plane. This plane could lie on a 3D model, but one instance of the 2D DCM can only operate on geometry lying on a single plane. Multiple instances of the 2D DCM can work on multiple 2D work-planes in a 3D model, but the solutions on each work-plane are still being calculated in 2D.

The 3D DCM is used when there is a requirement for genuinely 3D variational solving. The 3D DCM solves dimensions and constraints with a 3D interpretation applied to geometry which does not have to lie on a common plane. The 3D DCM’s capability to solve truly three dimensional variational models is very important and reflects its advanced capabilities.

The 2D DCM is typically used for 2D CAD and drafting. It is also used for sketching the 2D variational profiles that are extensively used in 3D parametric, history based, solid modelling systems. The 2D profiles indirectly contribute to the shape of the 3D model via the design history.

By comparison, the 3D DCM is used for the direct control of the shape of 3D models, the 3D positioning of parts in an assembly, and for simulating the motion of 3D mechanisms.


In brief, the DCM specification is as follows:

  • Support for a wide range of geometries, dimensions and constraints.
  • An integration architecture that is compatible with all proprietary geometric/solids data structures, and all solid modelling components.
  • The ability to solve a very wide range of models using a combination of the most appropriate algebraic or numerical algorithms.
  • Fast performance that is a linear function of increasing model size.
  • Precise solution algorithms suitable for use with the most accurate of solid modelling systems.
  • Full support for underconstrained and overconstrained designs.
  • Precise information available about the state of each element in the model.
  • Solution stability, i.e. the ability to select and maintain the appropriate solution out of the large range of possibilities.

The evaluation of a model by the DCM is a two stage process:

  1. The current arrangement of the geometries and their dimensioning scheme is analysed and a solution method is calculated.
  2. The solution method found in the first stage is used to compute the new positions of the geometries.

The second stage is much faster than the first. If no geometries or dimensions are added or deleted, the DCM can evaluate a model using the second stage alone. This is called an incremental evaluation (or sometimes re-evaluation). It is a very important performance optimisation, as only an incremental evaluation is required when modifying dimension values, or dragging a model. A full evaluation, involving both stages, is required when geometries or dimensions are added or removed from the model. Hence, there are two important performance measurements for the DCM:

  1. The time taken for a full evaluation.
  2. The much shorter time taken for an incremental evaluation.

In the following graphs the evaluation time is plotted in relation to the size of a variety of models, as measured by their number of geometries. Each model is fully defined, or nearly fully defined. The number of dimensions and constraints is proportional to the number of geometries.

The performance tests were performed on a 300 MHz Pentium Personal Computer with 64 Mbytes RAM running Windows NT.

2D DCM performance

Figure 1 illustrates the time in milliseconds required to perform both a full evaluation (left) and an incremental evaluation (right). The graphs illustrate the linear relationship between the size of a model and the DCM full or incremental evaluation times.

Figure 1: Full and incremental evaluation times

Figure 2 illustrates the full evaluation and incremental evaluation times per geometry for the models used in Figure 1.

Figure 2: Full and incremental evaluation times per geometry

3D DCM performance

Figure 3 illustrates the time in milliseconds required to perform both a full evaluation (left) and an incremental evaluation (right).

Figure 3: Full and incremental evaluation times

Figure 4 illustrates the full and incremental evaluation times per geometry for the models used in Figure 3.

Continue Reading →