Overview of universal CAD geometry transfer formats. General structure of the CAD core, or CAD for the "smallest" Geometric cores of the cae system

The recommendations establish general requirements for the architecture of the CAD core as a whole and its constituent parts. The recommendations are intended for use at all stages of the development of design and technological CAD systems for general machine-building applications.

USSR STATE COMMITTEE ON STANDARDS
(Gosstandart of the USSR)

All-Union Research Institute
on normalization in mechanical engineering
(VNIINMASH)

Approved

By order of VNIINMASH
No. 395 dated 12/16/1987
G .

System-wide CAD core
engineering applications.

General requirements

R 50-54-38-88

Moscow 1988

These Rs establish general requirements for the architecture of the CAD core as a whole and its constituent parts. The use of R allows solving the problems of design and technological design in CAD that arise in the development of integrated production systems.

The software and methodological complex of the CAD core can be used both by CAD developers when creating standard design procedures, and by CAD end users when solving specific design problems.

Terminology according to GOST 22487-77.

1 . MAIN PROVISIONS

1.1 . The CAD core is a software and methodological complex (PMC "CAD Core") designed to build object-oriented automated design procedures for design and technological design.

1.2 . An automated design procedure created using the PMK "CAD Core" tools includes operations performed by the end user.

1.3 . The tools of the PMC "CAD Core" are used to create a procedure of three types.

1.3.1 . Object definition. In this case, when the procedure is executed, an information structure is sequentially built in the system memory that displays the design of the designed object (part, assembly unit). A design is created from a set of structural elements oriented to a given subject area.

1.3.2 . Object transformation. Procedures of this type have such effects on the object, as a result of which there are changes in its shape, design and (or) scale. Transformation operators are part of the PMC "CAD Core".

1.3.3 . Establishing relationships of this object with others. This procedure allows you to create complex compositions from elementary objects by specifying different types of relationships between them. Sets of such relations, focused on a given subject area, are performed by means of the PMC "CAD Core". Thus, PMK "CADRO CAD" combines a set of instrumental and technological means for constructing design procedures.

With the help of tools, object-oriented CAD components are created according to a certain methodology. Technological tools are ready-made CAD components updated by the end user.

1.4 . The PMC "CAD Core" should include the following functionally related components: PMC for managing the design process, managing the information model of the project, and PMC "Basic processors".

1.5 . The compatibility of the components with each other, as well as the software tools that make up the PMK "CAD Core" as a whole, is carried out at two levels: at the component level - by using a single information model of the designed object and at the software level - based on international standards for the representation of graphic and geometric data, as well as network standards for protocols and interfaces between them.

2 . REQUIREMENTS FOR PMK FOR MANAGING THE DESIGN PROCESS

2.1 . The PMC for managing the design process is designed to ensure high-quality assembly of computing processes into a single whole and control their functioning automatically according to the initial task or on the basis of interactive interaction with the user.

2.2 . The considered PMK should carry out:

customization to the end user's thesaurus;

generating dialogue programs based on a formalized description of the dialogue scenario;

translation of user-entered design tasks;

issuance of information about the results of completed tasks, the state of the object or the design process;

adjustment of the design scenario based on its results;

connection of design and maintenance tools to the complex of computer-aided design tools.

3 . REQUIREMENTS TO PMK FOR PROJECT INFORMATION MODEL MANAGEMENT

3.1 . PMC for managing the information model of the project is designed to organize, store and manipulate design data in the process of computer-aided design.

3.2 . This PMC is created according to the principles of building database management systems (DBMS).

3.3 . The PMC is designed to provide:

performing operations to form the structure of design data according to user requirements;

manipulation of design data and relationships between them;

issuance of reference information on the state of the design data structure;

physical organization of design data;

multi-access to design data;

restoration of the integrity of design data in case of system failures;

exchange of design data with external databases;

input of information about the design object (OP) in a formal language, its control and editing;

independence of DBMS tools from applied PMC.

4 . REQUIREMENTS FOR PMK "BASE PROCESSORS"

4.1 . PMK "Basic processors" is designed to perform design maintenance procedures.

4.2 . The initial composition of the PMK "Basic processors" of the CAD core includes the following basic processors: geometric modeling, visualization of design results; documentation of design decisions.

4.2.1 . The basic processor of geometric modeling is designed to provide:

formation of a geometric model of the OP;

transformation of geometric information into other design data structures;

performing geometric calculations to calculate the inertial-mass, volumetric and projection characteristics of the OP;

preparation of data for performance of strength, thermophysical and other general technical calculations;

connection with the graphical database.

4.2.2 . The basic processor for visualizing design results provides:

displaying the requested information about the OP on graphical output devices;

input and editing of graphic information with simultaneous changes in the geometric model of the OP;

operational tracking of changes in the geometric model of the EP when visualizing the design results.

4.2.3 . The core design documentation processor provides:

formation of information models of working drawings of designed objects;

creation of information models of specifications of designed objects;

issuance of documentation on design solutions in accordance with the requirements of ESKD.

INFORMATION DATA

DEVELOPED AND INTRODUCED by the Institute of Technical Cybernetics of the Academy of Sciences of the BSSR.

PERFORMERS: V.P. Vasiliev (topic leader), V.I. Bogdanovich, A.K. Kulichenko, O.I. Semenkov, L.G. Milkayan.

Today it is very difficult to imagine modern production without any means of automation. Every small or large enterprise one way or another is faced with computer-aided design systems. And in particular with CAD systems.
As a rule, the basis of CAD is a graphic editor, with the help of which electronic layouts are created and edited, consisting of primitives (points, segments, arcs, etc.). Primitives can be combined into blocks and reused to create other electronic layouts, which greatly increases the productivity of the design engineer. Modern programs allow you to create and edit spatial models of objects of almost unlimited complexity.
A fundamental component in the architecture of a 3D modeling system is the geometric kernel. The geometric (mathematical) core is a set of functions, the implementation of which ensures the construction of three-dimensional models. The kernel is not valuable in itself, it is created for use in application programs. The CAD system provides access to the kernel functions to the end user (usually through a graphical user interface). In addition, the kernel is sometimes referred to as the "engine" of a geometric modeling system. Just as a car engine determines the "ceiling" of its speed, the mathematical core determines the limit of the functionality of the CAD using it.
The main functions of the kernel:
- representation of geometric data in the context of the system;
- implementation of data storage in neutral formats to ensure integration with existing systems, necessary for the possibility of wide distribution of the product;
- implementation of typical presentation operations, such as scaling, rotating and moving surfaces;
- implementation of the simplest operations of editing bodies and surfaces;
- interactive interaction with the components of the mathematical model of the designed product and obtaining information about the size and position of the parts of the mathematical model.

Schematically, the core can be represented as shown in Figure 1.

Fig 1. Kernel structure

Data structure and topology

Topology defines relationships between simple geometric objects that can be connected to each other and represent a single complex geometric object. The data structures used to describe volumetric bodies are usually divided into three types depending on which bodies they describe.

The first structure is a tree describing the history of applying Boolean operations to primitives. The operation log is called constructive representation of solid geometry (CSG). And the tree itself is called a CSG tree


Fig 2. CSG tree

The CSG tree has the following benefits:
The data structure is simple, and their representation is compact, which facilitates processing;
· A three-dimensional body described by a CSG tree is always correct, that is, its internal volume is uniquely separated from the external one. An example of an incorrect volumetric body is a body with an extra edge. For him, the division of the volume into internal and external near the vertex to which this edge approaches turns out to be ambiguous;
· The CSG representation can always be converted to the corresponding B-Rep representation. This allows you to interact with programs oriented to the use of B-Rep;
parametric modeling is easily implemented by changing the parameters of the corresponding primitives
Disadvantages :
Since the CSG tree stores the history of Boolean operations, only they can be used in the simulation process. This requirement severely limits the range of objects being modeled. Moreover, it eliminates the use of convenient local modification functions such as lift and round;
· To obtain information about boundary surfaces, their edges and connections between these elements from the CSG tree, complex calculations are required. Unfortunately, border information is needed for many applications, in particular for displaying bodies. In order to display a shaded image or drawing of a solid, you need to have information about the faces or vertices of this body. Therefore, the CSG representation is insufficient for interactive display and manipulation of bodies. Another example is the calculation of the trajectory of a CNC cutter for processing body surfaces. This task requires information about surfaces, their edges, and connectivity. Getting all this data from the CSG tree is very difficult.

Because of these shortcomings, developers of programs based on the CSG representation try to add appropriate information about the boundaries. Such a combined mathematical representation is called hybrid and requires the maintenance of consistency between data structures.

The second structure contains information about the boundaries of the volume (vertices, edges, faces) and their connection to each other. This representation is called the boundary representation (B-rep). Many B-rep structures are built differently depending on which element is considered the main element while maintaining connectivity information.
Suppose there is a body shown in Fig. 3.

Fig 3 CSG tree

In the B-Rep structure, this body will look as shown in Table. 1.

Table 1. Representation of the body in the B-Rep structure

Each row of the edge table stores the vertices that are at the ends of the corresponding edge, and the rows of the vertex table store the coordinates of all vertices. These coordinates are usually defined in the model coordinate system associated with the given body. If you remove the face table from here, this data structure can be used to store shapes created in skeletal modeling systems. The data structure for a wireframe model can be used as a base for automated drawing development systems, if you allow the indication of two-dimensional coordinates for points.
The B-Rep data structure looks very simple and compact. However, it is not used in advanced solid modeling systems due to the disadvantages listed below.
· The B-Rep data structure is focused on storing flat polyhedra. If you need to save data about a body with curved faces and edges, then the lines of the tables of faces and edges will have to be changed in such a way that they can include the surface and curve equations, respectively (the equations of surfaces and curves, as well as the coordinates of the vertices are called geometric data, while the relationships between faces, edges, and vertices are called topological data.Data in any B-Rep structure can be classified as either geometric or topological). The equations for planar faces do not have to be saved, since planar faces are defined by the vertices on them.
· A face with internal and external boundaries (Fig. 4a) cannot be stored in the face table, because it requires two lists of edges instead of one. Such faces appear, for example, when modeling three-dimensional bodies with through holes. A simple solution this problem is the addition of an edge connecting the outer and inner boundaries (Fig. 4 b). In this case, the two vertex lists can be merged. The connecting edge is called a bridge or jumper (bridge edge) and gets into the list of edges in two copies.


Rice. 4. A surface with two boundaries and a method for bypassing them
· The number of ribs for different faces can be different (see Table 1). Moreover, it is not possible to determine in advance the number of columns (one for each edge) that will be required for a particular face, since this number may change during the simulation. Therefore, the number of columns must be stored as a variable at the time the face table is declared. Working with a variable size table creates some inconvenience.
· Getting connectivity information directly from data stored in three tables can be quite tedious. Imagine searching for two faces with a common edge in the case of a boundary representation of a body in three tables. You will have to look through the entire table of faces to find the rows that contain the desired edge. If you want to find all the edges that connect at a particular vertex, you again have to look through the entire table of edges. It is easy to see that when tables are large, searching them becomes extremely inefficient.

There are two common data structures that allow you to avoid the listed problems while maintaining the boundary representation of a volumetric body. These are the structure of semi-edges (a list of faces, each of which corresponds to a doubly connected list of edges, the main role is given to faces) and the structure of wing edges (the main role is given to edges, for each edge, a list of faces to which it belongs, edges with which it has common vertices, and vertices at its ends).

The third structure represents the volume in the form of a combination of elementary volumes (for example, cubes) - a decomposition model (voxel representation, octant tree - a set of hexagons, cell representation).


Rice. 5. Decomposition model

Mathematical apparatus

Mathematical solves a number of problems. This is a direct representation of curves and surfaces, recalculation of coordinates when changing parameters (this is done by the so-called parametrizer), as well as solving systems of equations for finding the intersection of surfaces and curves.
For each curved edge, the computer stores either the curve equation or equivalent characteristic parameters (center, radius, normal vector to the plane in which the circle lies are examples of characteristic parameters equivalent to the circle equation).
Curve equations can be divided into two main types. The first type includes parametric equations that describe the relationship of the x, y, and z coordinates of a curve point with a parameter. The second type includes non-parametric equations relating x, y and z by some function.
In CAD, parametric equations of curves and surfaces are most often used. In some cases, it is convenient to search for the intersection points of curves if one of the curves is given in a parametric form, and the other in a nonparametric one. Therefore, in some systems, the transformation of equations from parametric form to nonparametric and vice versa is used.
Third-order equations are most often used to describe curves used in CAD programs, because they have an important property: two curves described by such equations can be connected in such a way that the second derivatives at the connection point will be equal to each other. This means that the curvature at the connection point remains constant, making the curves appear to be one. The same continuity can be obtained for curves of higher orders, but working with them requires intensive calculations.
Surface equations, like curve equations, are divided into two main types: parametric, relating x, y, and z values ​​to parameter values ​​(the most common), and nonparametric, relating x, y, and z coordinates directly to each other by some function.
The calculation of the intersection points of curves is necessary to determine the boundaries of x-segments when applying Boolean operations. Xsegment - a part of a curve along which two faces intersect, belonging to different volumetric bodies. The segment belongs to both faces. The boundaries of the x-segment are obtained by calculating the intersection points of the curve that bounds the intersecting surfaces with the curve along which these surfaces intersect (related to different bodies). After obtaining the boundaries of the xsegment, one more step needs to be taken to split the intersection curve at the intersection points.

visualization module

Previously, almost all graphics applications had their own internal graphics engine. Now specialized graphic libraries have appeared.
A particular application can be accessed directly through a hardware-specific device driver or through a graphics library.
1) Application -> driver -> I/O device.
2) Application -> Graphics Library -> Driver -> I/O Device
The disadvantage of the first approach is that it requires support for a large number of video cards.
The graphics library is a set of subroutines designed to solve specific problems. It is based on device driver commands. Modern CAD systems use the OpenGL library for rendering.

API set

API (Application Program Interface) - application program interface. A set of such interfaces should provide the relationship between external modules of the application program and low-level kernel functions, as well as between kernel components - various libraries.

Instead of a conclusion
Kernel development is a very knowledge-intensive and complex task. Its implementation requires the involvement of a large number of highly qualified specialists and, first of all, mathematicians. Development and debugging of a kernel function can take a very long time, which is not always acceptable for many companies.

Literature

1. Lee K. Fundamentals of CAD (CAD/CAM/CAE). - St. Petersburg: Peter, 2004. - 560 p.

Overview of Geometric Modeling Kernels

As you know, the core is at the center of the Earth. It is in it that a significant part of the energy of our planet is concentrated. A similar situation is observed in the world of CAD. The basis and driving force of each system is the core.

CAD engine

The core is a set of mathematical functions that is designed to accurately represent and manipulate the 3D product shape mathematically. The geometric data obtained with its help are used by computer-aided design (CAD), technological pre-production (CAM) and engineering analysis (CAE) systems to develop structural elements, assemblies and products. The designer accesses the kernel functions from the corresponding CAD system through a graphical user interface. So the core is very important. No wonder it is sometimes called the "engine" of the design system. That is what determines its functionality and performance.

In addition, the compatibility of the system with other CAD systems depends on the "stuffing". After all, the kernel sets the format for storing models. Therefore, products based on the same core can read designs from other "sister" CAD systems as if they were their own. This allows you to accurately transfer the geometric and topological parameters of the model. Conversely, exporting data from "non-native" systems is fraught with difficulties. To do this, converters and translators are used that perform format conversion either directly (from one system to another) or through geometric modeling standards (for example, IGES or STEP). But in any case, full accuracy cannot be achieved.

Today there are several dozen well-known mathematical kernels in the world. Historically, they have been divided into three types: private, licensed, and open source. Consider the features of each of them.

Its core is closer to CAD

The most "old" are private kernels, which are created and developed only for use with a specific design system. It was on them that the first CAD systems were based, which appeared at the dawn of the computer era. Many companies are now following the same approach. Among them are the supplier of heavy CAD - Dassault Systemes, developers of middle-class systems - think3 and VX Corporation, domestic firms - ASCON, GeMMa, Credo, etc.

The kernel has many advantages. First, tight integration with the application interface gives the designer more access to core functions and thus simplifies his work. For example, it can perform rollback or rerun operations as many times as desired. Secondly, the CAD developer can tailor the kernel to his own needs, creating only the functionality that is required for a particular system. Thirdly, he has the ability to quickly fix errors and optimize his product in terms of speed and data volume. "Own core is flexible and manageable, changes are made to it as quickly as it is required by the CAD creator himself," explained Evgeny Bakhin, director of strategic development ASCON company.

In addition, we must not forget the financial factor. When using a purchased core, its cost is included in the price of the product. Moreover, even for writing import-export modules in ready-made kernel formats, you have to pay. The owners of their mechanism are spared this. "If you use your own core, then its share in the price of CAD, as a rule, is optimal and does not depend on changes in the licensing policy of a third-party developer," says Mr. Bakhin.

But, as you know, nothing comes for free. "Creating a geometric core is really a complicated matter," said Prokopiy Nikolaev, head of the development department at GeMMa. use turnkey solutions to provide basic functionality of the system. At that time, almost all CAD developers built products from scratch to the best of their abilities and skills. "But this required qualified specialists in the field of computational geometry and computer graphics. It is impossible to build a geometric core without them. "Find a specialist who is fluent in the tricky issues of computational geometry, and even having practical experience - the task is very difficult," Mr. Nikolaev stressed.

In addition to experienced staff, money is also needed. "Development of the kernel is an extremely science-intensive and expensive business," said Alexander Golikov, General Director of ASCON. moment of momentary economic returns. At the same time, you need to invest for quite a long time. After all, you won't get a good product quickly. "It will take about 20 people and about five years of work to create a kernel from scratch to achieve the level of functionality and reliability required to perform most engineering design tasks," said Vladimir Panchenko, head of the analytical department of the ASCON-Kolomna division (this is where the development of mathematical KOMPAS-3D core and the CAD product itself).

Of course, 100 man-years is a lot. Are geometric modeling tasks really that difficult? It turns out that the main difficulty is not so much the implementation of the standard functions of the kernel, but its "polishing" - the development of functionality and ensuring high reliability. "This cannot be achieved by testing alone," Mr. Panchenko explained. "It is essential that the kernel be successfully put into practice with CAD in real work places. No one will buy the kernel and the system based on it if it is unreliable and its functionality is unsuitable for use".

It is not enough to create a good core, it must be constantly improved. After all, the requirements for the kernel change over time. “They depend on many factors: the range of tasks to be solved, the power of computer technology, and simply the current fashion for the external representation of geometric data,” said Prokopy Nikolaev. “Therefore, the process of improving the kernel never stops. At the same time, not only new functions are created, but often debugged parts are also reworked.Thus, it is constantly being adjusted to the current needs of CAD developers."

Core for hire

The complexity of creating your own core makes some players go the other way and take the finished product. "Initially, we developed our own kernel, some of its functions are now used in our system," said Vitaly Taldykin, Marketing Director of Top Systems. will perform the main set of required functions on test examples, but then it turns out that in order to solve real problems, you need to constantly improve algorithms, take into account special cases, etc. nucleus is hundreds of man-years". According to Taldykin, a small group, even gifted people, cannot create a core that solves all the main problems of geometric modeling on the entire set of practical examples. "One talent is not enough here, - Mr. Taldykin is sure. - This is a gigantic, painstaking work." Therefore, Top Systems decided to build a CAD system based on a ready-made mechanism.

A licensed core is developed and maintained by a single company that licenses it to other CAD vendors. The pioneer in the "nuclear" business was UGS, which in 1988 launched the Parasolid kernel, which forms the basis of its Unigraphics system. Spatial Technologies followed suit in 1990 with the introduction of the ACIS core. Now these two products are used in many well-known solid modeling systems. Thus, ACIS is used in AutoCAD and Mechanical Desktop (Autodesk), TurboCAD (IMSI), CADKEY (Kubotek), and Parasolid is used in SolidWorks (Dassault Systemes), Solid Edge (UGS), MicroStation (Bently), T-Flex ("Top Systems"). In 2001, PTC moved into the licensed core camp and began distributing licenses for Granite One, the backbone of its Pro/ENGINEER CAD system.

In total, licensed cores form the basis of more than a hundred CAD systems, and the number of users is in the millions. Thus, the "nuclear" business turned out to be very profitable, both from the point of view of both finances and the impact on the industry. After all, many other players depend on the owner of the core. Not without reason, in 2000, Spatial was bought by Dassault Systemes, which is now developing the ACIS core. Actively improves the kernel and UGS. In particular, last October it acquired D-Cube to integrate its geometric modeling capabilities into Parasolid.

The developer accesses documented kernel functions through an application programming interface (API). "But this does not mean that we use only the functionality of the kernel and nothing else," Vitaly Taldykin emphasized. "Our programmers independently write 3D modeling commands using the powerful tools of the parametric core of the T-FLEX system. This allows us to have a number of competitive advantages over other CAD systems. implemented on Parasolid". Other CAD vendors do the same, so systems based on the same core differ in performance and functionality.

Vero International Software uses Parasolid to create mold design systems compatible with various CAD systems

The main advantage of the ready-made kernel is that it saves CAD developers from solving the laborious tasks of creating their own solid modeling engine and makes it possible to concentrate on a specific task, freeing them from knowing the intricacies of the internal representation of geometric objects. "The use of a licensed core allows to drastically reduce the system development time, improve the quality and functionality of the solution and, as a result, quickly make the system suitable for serious industrial implementation," Mr. Taldykin said.

This is exactly what the creators of the first middle-class systems, SolidWorks and Solid Edge, did in the mid-90s. And they turned out to be right: these products revolutionized the world of CAD and are still successfully developing.

The owner of the kernel may have his own interest. After all, by opening access to it, he expands the number of applications that are compatible with his CAD and with each other. "By releasing Granite One as a standalone product, PTC not only made the basic functionality of Pro/ENGINEER available, but also provided developers with a tool to improve interaction with this CAD system," said Dmitry Motovilov, specialist from PTS, PTC's reseller.

However, the use of an alien kernel has a downside. After all, even with a license, a developer cannot "get" inside the kernel and tweak any basic algorithm to improve it. But Vitaly Taldykin considers this a positive quality: "For creative people of an experimental warehouse, this is a very significant drawback, but if we are talking about a system that is itself a high-quality industrial product, then this is rather an advantage."

In addition, the dependency of developers on the kernel vendor can create a problem. After all, it is not known how the fate of this supplier will turn out. What if he leaves the market, stops developing the core, or changes the licensing rules? These fears are not without foundation. For example, Top Systems faced a difficult situation. "Before Parasolid, we used ACIS for several years, but the confusion that began with this kernel, which led to the release of frankly "raw" versions, forced us to look for alternative solutions," said Mr. Taldykin. "The strange policy of licensing important Spatial adhered to. This put different developers in an unequal position in terms of access to core functionality. There were other problems. As a result, we switched to Parasolid and never regretted our choice." But, despite such experience, he considers the problem of dependence exaggerated: "The degree of such dependence does not exceed the usual everyday risks; for example, where is the guarantee that the main developers of the "own" kernel will not quit"?

Fortunately, now there is no need to fear for the fate of ACIS and Parasolid. These are mature products that have been in existence for over a decade. Last year ACIS released version 14 and Parasolid released version 16. They are owned by two CAD market leaders - UGS and Dassault, whose strong position is now beyond doubt. The paradoxical situation that has developed around the nuclei also testifies to the stability of the situation. For example, Parasolid forms the basis of the SolidWorks system, which is released by Dassault, the main rival of UGS, and Autodesk uses Dassault's ACIS kernel in AutoCAD. It seems that all these companies compete fiercely with each other, but at the same time they provide core licenses to each other. Apparently, it is more profitable to develop the market together.

Based on the ACIS core, Digital ArtForms

built a 3D graphics system

However, until recently, the situation in the field of simulation engines was far from being calm: a kernel war raged between the suppliers Parasolid and ACIS: they constantly reduced prices and released new versions so often that users did not have time to switch to them. But in 2001, the belligerents got tired of "combat" actions and preferred to conclude a truce. Having agreed on mutual licensing, they, with the help of translators, provided the possibility of exchanging models between CAD systems with different cores.

open source kernel

Modeling mechanisms of this type appeared later than the predecessors described above and represent some intermediate link. On the one hand, they are similar to licensed cores, since the CAD developer receives a license for them from a third-party company, and on the other hand, they are like their own, since they give the user access to the source code and allow them to make changes to it at their discretion.

Two open source kernels are best known: Open CASCADE and the Solid Modeling Solutions (SMS) suite, which includes geometric modeling programs SMLib, NLib, GSLib, TSNLib, and SDLib. Both are libraries of geometric modeling functions and are open source, but with one significant difference: Open CASCADE is free to use, but you have to pay for SMS.

Open CASCADE has deep historical roots. It is based on CAS.CADE - the platform of the well-known Euclid CAD company Matra Datavision. When Dassault bought it in 1998, the Euclid project was closed, and the core was published on the Internet under the name Open CASCADE. Now it belongs to the French company Principia Research & Development, which develops this core and provides paid services for creating specialized applications based on it. In May 2003, the fifth version of Open CASCADE was released, and more than 10,000 users have already downloaded the code. A large contribution to the growth of its popularity is made by the community of developers formed around it. They not only use it, but also actively improve it. Indeed, in accordance with the principles of Open Source, they should open access to their developments to everyone.

SMS went the other way. It sells licenses for its products, but claims they are much cheaper than building and maintaining its own kernel. Moreover, after two years, the customer receives full rights to them and may no longer pay for the license. True, then he will lose new versions and support. Important to the SMS strategy is its independence from major CAD vendors. It is a private company owned by employees and has no partners. Her staff is small, but experience in the field of geometric modeling is quite large. In 1998, it released the SMLib library (version 6.5 is now shipping), in 2002, the spin-offs TSNLib, GSNLib, and NLib, and in 2004, SDLib.

Open source kernels provide a choice for companies that don't want to use a licensed simulation engine but don't have the means to develop their own platform. But such cores are not yet particularly popular. One of the reasons for this is distrust of the quality of this software. "There are very few projects based on the open source kernel," said Prokopiy Nikolaev. Vitaly Taldykin agrees with him: "This is a kind of curiosity on the market. As far as we know, they are still very rarely used on an industrial scale. Correcting other people's mistakes in a huge software package is a dubious pleasure."

The choice is up to the user

“The question of what is better - to use someone else’s or to make it yourself, will remain eternal,” Prokopiy Nikolaev summed up. “In each case, the decision will be made individually, taking into account current objective and subjective factors. There is no ready-made recipe, since each option There are both advantages and disadvantages."

09/09/2015, Wed, 16:02, Moscow time , Text: Vladislav Meshcheryakov

"Daughter" of the company "Ascon" C3D Labs announced the sale of a license for its geometric core C3D South Korean SolidEng. C3D Labs talks about their product as one of the top five commercial cores on the market.

Selling the core to Koreans

Ascon, a domestic developer of computer-aided design systems, has sold the rights to use its C3D geometric kernel to the South Korean company SolidEng.

The geometric core is a set of software tools (libraries), on the basis of which design tools, control of CNC machines and various engineering software are built.

In particular, several products of Ascon itself are based on the C3D core: the Compass-3D three-dimensional modeling system, the Compass-Graphic, Compass-Builder modules, etc.

Ascon's core buyer, SolidEng, describes itself as a leading South Korean consulting company and system integrator engaged in 3D PLM in the automotive, aerospace, and shipbuilding industries.

In addition, SolidEng develops its own software solutions for various industries, as well as mobile games.

Node developed by a system based on the C3D kernel

Secret terms of sale

For what kind of work SolidEng plans to use the C3D core purchased from Ascon, the Koreans do not report. It is known that the agreement between the companies does not limit the number of licenses for the core within a single development center (thus, an unlimited number of developers can work on a project using the C3D core).

The amount of the transaction is not disclosed. Ascon representatives say that this is a common practice for geometric core licensing deals, which, as a rule, are always concluded on separately negotiated terms.

According to information from the official Ascon website, the license for the C3D core implies an annual payment. When a customer releases commercial products or services based on C3D, he must quarterly transfer royalties to Askon. The amount of royalties does not depend on the cost of the product - it is fixed. As an option, Ascon offers extended technical support and maintenance with annual payment.

Second similar deal

Interestingly, the licensing of the SolidEng core is not the first such deal made with a South Korean company: before that, Solar Tech became the user and distributor of the core.

In addition, in the spring of 2015, the sale of the C3D core license to the Swedish company Elecosoft Consultec. It was the first deal of its kind in Western Europe for Ascon.

As specified in Askona, now the company has 17 clients-buyers of the core, among which are RFNC-VNIIEF, private companies and universities from Russia (NTP Truboprovod, NIP-Informatics, GeoS Center, Basis- center, Mordovskiy State University) and Ukraine.

C3D as a popular product

The direct developer of the core is C3D Labs, a subsidiary of Askona and a resident of Skolkovo.

Representative of C3D Labs Arkady Kamnev lists C3D as one of the top five geometric cores available for commercial licensing. The other four are Parasolid (developed by Siemens PLM Software), ACIS (Spatial, Dassault Systemes), CGM (Dassault Systemes), as well as the Open CASCADE open source kernel, which is developed by the development center in Nizhny Novgorod.

Computer-Aided Drafting systems, created in the 1960s. to replace the drawing board (the traditional drawing tool that architects and engineers around the world have been accustomed to using since the industrial revolution of the 18th century), have now turned from a means of automating routine work into a key innovation tool in various industries, becoming design automation systems (Computer- Aid Design).

With the help of CAD, an architect today creates an informational (three-dimensional) model of a building, instead of drawing its floor plans and facades. An interior designer discusses with the customer the design of an office or apartment, moving through its virtual three-dimensional model, integrated into the surrounding space of a real building. The artist creates his sketches not on sheets of paper, but on complex three-dimensional surfaces. An industrial designer prints the created model on a 3D printer and sends it to an ergonomics specialist for analysis. The designer in seconds locates and modifies the problem node in an assembly consisting of hundreds of thousands of parts, which was found as a result of automatic modeling of the behavior of the product under load. A production engineer quickly and accurately creates a control program for a CNC machine that allows cutting a part from a workpiece with the most complex surface geometry, optimally designed in order to have the desired performance. The worker who assembles and maintains the product refers to the three-dimensional model as a reference - in order to view the demonstration of the prescribed operation from the desired angle and with the desired approximation. This is only a small part of the tasks that CAD is capable of solving today. And the 3D model plays a key role here.

3D modeling and virtual reality

Back in the 1970s. scientists around the world, working together with representatives of the military departments and industrial enterprises, began to investigate various ways representation of three-dimensional data in a computer, facilitating subsequent work with them. Until recently, a three-dimensional model existed only in the minds of designers, which gave rise to many problems and errors - both in the design of the product, and in its production, operation and disposal. Received for last years The experience of leading enterprises shows that the use of three-dimensional digital models of a product at all stages of its life cycle makes it possible to reduce design costs, speed up the launch of a new product on the market, reduce the cost of production, quickly make changes proposed by users to its design and reduce environmental damage to the necessary minimum. Ultimately, 3D modeling significantly increases the competitiveness of an enterprise and its ability to quickly respond to any changes in the economy.

Three-dimensional modeling by now has more than 30 years of history behind it. Not all of the proposed ideas turned out to be fruitful. Not all companies developing 3D modeling tools were able to survive the market fluctuations. But the best experience has been accumulated in software components called 3D modeling kernels, which now underlie almost any CAD (as well as CAE and CAM). These components are either designed, coded, and maintained by engineering software developers themselves, or licensed from third-party technology vendors. The 3D core is the foundation upon which the building of any modern CAD is built. Everything else depends on this foundation - the capabilities of various tools, their speed, resistance to errors, and even the overall intelligence of the system.

From the programmer's point of view, the geometric core is a library of functions / classes for creating geometric objects (point, segment / arc / curve, piece of surface, solid), changing their shapes and sizes, creating new objects based on them, visualizing the model on a computer screen and exchanging three-dimensional data with other programs. The enumeration of kernel functions can be condensed into one sentence, but their implementation stretches over tens and hundreds of man-years. The fact is that behind each elementary operation (such as the intersection of two surfaces of the NURBS class) there is a computational algorithm, the implementation and debugging of which is a very laborious task that requires both impeccable command of the apparatus of computational mathematics and professional knowledge of the subject area. And there are hundreds of such operations in the kernel (taking into account the variety of types of geometric data).

NURBS - the main class of surfaces in three-dimensional modeling

Not all CAD developers (let alone CAE and CAM) are ready to invest in such a volume in the underlying technology, so most of them prefer to license the finished 3D core from third-party manufacturers (sometimes from their direct competitors), making regular payments to the core developer company (usually including a certain amount from each sold copy of the final product). In return, they get the opportunity to use the kernel, which has already been "tested" in other systems, so it has rich functionality and a high level of reliability. Finally, by taking a ready-made core, the CAD developer will be able to bring his software product to market faster. Sometimes this factor is decisive - if you are late with the release of the product for a year or two, then the market may be occupied by competitors. The clearest example is the release of MCAD (Mechanical CAD) SolidWorks, which became the world's first parametric solid modeling system for the Windows platform and still remains the absolute leader in the MCAD (mechanical design) industry in terms of the number of licenses sold. The developers of many other successful systems subsequently followed the same path, including the Russian companies ADEM and Top Systems.

T-FLEX CAD (Top Systems) based on the Parasolid core

However, in the CAD world there are a small number of companies that prioritize the ability to have full control over the source code, quickly fix errors and increase functionality, quickly port to new platforms and therefore are ready to pay for it with their own resources. This group includes both the four billion-dollar CAD market leaders (Dassault, Autodesk, Siemens and PTC) and the Russian developer ASCON.

KOMPAS-3D (ASCON), created on the basis of its own core

A fairly complete list of examples of developers, both the first and second categories, is given in the table below. It shows that the most actively licensed cores are ACIS (developed and maintained by Spatial, a subsidiary of Dassault Systemes) and Parasolid (Siemens PLM Software).

Product Manufacturer Region 3D core
4MCAD IntelliCAD 4M S.A., Greece CAD, AEC Open CASCADE Technology
Adams MSC Software, USA CAE Parasolid
ADEM Group of companies ADEM, Russia-Israel-Germany CAD, CAM, CAPP ACIS
ADINA Modeler ADINA R&D Inc., USA CAE Parasolid and Open CASCADE Technology
Alibre Design 3D Systems, USA MCAD ACIS
Allplan Nemetschek AG, Germany AEC/BIM SMLib
AMPSolid AMPS Technologies, USA CAE ACIS
ANSYS ANSYS Inc., USA CAE ACIS and Parasolid
APM Studio STC APM, Russia MCAD Proprietary (APM Engine)
ArchiCAD Graphisoft, Hungary AEC/BIM own
ARES Graebert, Germany CAD ACIS
Ashlar-Vellum Cobalt, Xenon, Argon Ashlar Vellum, USA MCAD ACIS
AutoCAD Autodesk USA CAD, AEC, GIS
Autodesk Inventor Autodesk USA MCAD Proprietary (ASM), ACIS compliant
Autodesk Moldflow Autodesk USA CAE Parasolid
Autodesk Revit Architecture Autodesk USA AEC/BIM Proprietary (ASM), ACIS compliant
bonzai3d AutoDesSys, USA CAD
Briccad Bricsys N.V., Belgium AEC, MCAD ACIS
BtoCAD YuanFang Software Co., Ltd., China CAD ACIS
CADopia CADopia Inc., USA CAD ACIS
CATIA Dassault Systemes, France CAD/CAM/CAE CGM
Cimatron Cimatron Limited, Israel CAM ACIS
CollabCAD National Informatics Centre, India CAD/CAM Open CASCADE Technology
Creo (formerly Pro/Engineer) Parametric Technology, USA MCAD GRANITE
Creo Elements/Direct Modeling (formerly CoCreate) Parametric Technology, USA CAD ACIS
edgecam Planit Software, UK CAM Parasolid and GRANITE
ESPRIT DP Technology Corp., USA CAM Parasolid
form-Z AutoDesSys, USA CAD ACIS in combination with its own core
FreeCAD Open online project CAD Open CASCADE Technology
GibbsCAM Cimatron, Israel CAD/CAM Parasolid and GRANITE
GstarCAD Suzhou Gstarsoft Co., Ltd, China CAD ACIS
IRONCAD IronCAD LLC, USA MCAD ACIS and Parasolid
KeyCreator Kubotek USA Inc., Japan-USA CAD ACIS
mastercam CNC Software, USA CAD/CAM ACIS
Masterwork Tecnos G.A., Italy CAM Open CASCADE Technology
MicroStation Bentley Systems, USA AEC
Moment of inspiration Triple Squid Software Design, USA CAD SOLIDS++
NX CAD/CAM/CAE Parasolid
Patran MSC Software, USA CAE Parasolid
Power NURBS Ideate Inc., USA CAD SOLIDS++
PowerSHAPE Delcam plc, UK CAD/CAM Parasolid
progeCAD progeCAD Srl Uninominale, Italy CAD ACIS
Radan Planit, United Kingdom CAD/CAM ACIS
Rhinoceros Robert McNeel and Associates, USA CAD SOLIDS++ (individual modules)
Shark LT Encore, USA CAD ACIS
smartcam SmartCAMcnc CAM ACIS
Solid Edge Siemens PLM Software, Germany MCAD Parasolid (early versions - ACIS)
solidworks Dassault Systemes, France MCAD Parasolid
SpaceClaim Space Claim Corp., USA MCAD ACIS
STAR-CCM+ CD-adapco, UK-US CAE Parasolid
StruCad AceCAD Software, UK AEC/BIM own
T-FLEX Top Systems, Russia MCAD Parasolid
ThinkDesign Versata, USA MCAD Own core
TopSolid Missler Software, France CAD/CAM Parasolid
TurboCAD IMSI/design, USA AEC, MCAD ACIS
Vectorworks Germany AEC Parasolid (early versions - SMLib)
ViaCAD 2D/3D Encore, USA CAD ACIS
ZW3D (formerly VX CAD/CAM) ZWCAD Software, China MCAD Own core (VX Overdrive)
ZWCAD ZWCAD Software, China CAD ACIS
KOMPAS-3D ASCON, Russia MCAD, AEC Own core

Since 2007, the Government of the Russian Federation has been implementing the federal target program "National Technological Base" in order to create new advanced technologies and equipment, introduce the developed technologies into production, commercialize new technologies, create a promising scientific and technological reserve for the development of promising science-intensive products, and solve problems of improving ecological situation in the country. Within the framework of this program, the Ministry of Industry and Trade of the Russian Federation announced a tender for the implementation of research and development work "Creation of a domestic licensed software and mathematical core of three-dimensional modeling as a basis for computer-aided design of complex engineering products." Such a core, being the basis of a new generation of computer systems for design, engineering analysis, preparation of production, and the creation of technical documentation, will contribute to the creation by the Russian industry of innovative products that are competitive on the world market, becoming part of the national technological base. The winner of the tender was the Federal State Budgetary Educational Institution of Higher Professional Education Moscow State Technological University "STANKIN", and LEDAS was one of the subcontractors.

The Russian company LEDAS has thirteen years of experience in the development of high-tech CAD software components commissioned by the leaders of the global engineering software market. Among the projects successfully completed by the company are an interval solver for working with engineering knowledge; geometric and dimensional constraint solver for parametric drafting, assembly design, kinematic animation, and direct modeling; modules for working with polygonal meshes in real time (converting a mesh to a subdivision surface, unfolding a mesh to a plane, calculating minimum distances and determining intersections between meshes); engineering data translation modules. Based on this experience, LEDAS in the 3D Core project was entrusted with the sector of work related to the development of algorithms for computational and discrete mathematics, which includes the problem of high-precision construction of the intersection of arbitrary surfaces and curves, which is known for its complexity.

Of course, when developing a new 3D core, it is necessary to rely on the experience of predecessors in order to take the best from this experience and not repeat their mistakes. Therefore, in subsequent publications, we plan to briefly highlight the history of previous attempts to create 3D modeling cores, as well as talk about how the Russian core being created now will differ from them. nbsp;product maintenance, refers to