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.

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 a Component is not being used, the application can operate independently.

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 functions.

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.

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.

Specification

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:

The
current arrangement of the geometries and their dimensioning scheme is
analysed and a solution method is calculated.

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:

The
time taken for a full evaluation.

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.