📜 ⬆️ ⬇️

How the KOMPAS-3D math library turned into a C3D Toolkit for CAD developers → part 2

In the first part of the article, we talked about geometric kernels in general and explained how they differ from game graphics engines. Next, we present our own 3D-core for working with exact geometry and the software product that eventually turned out.

The history of the Russian geometric core C3D


The beginning of work on geometric modeling in KOMPAS-3D is officially considered to be 1995, it was then that Nikolai Nikolayevich Golovanov with a group of colleagues from the AOKON Kolomna office laid the first mathematical foundations of the future core. It took four years to turn mathematical algorithms into the first viable product. Since then, the geometric core has been constantly evolving, ensuring the functional development of KOMPAS-3D and a number of other software solutions in Russia and abroad.

Scott Voltage Bike FR20
')
Scott Voltage FR20 bicycle designed in KOMPAS-3D using C3D geometry (model author: Alexey Bogdanov, Poltava)

Major milestones in the development of the C3D core
2000: creation of a sufficient number of algorithms for three-dimensional solid-state modeling for use in CAD;
2001: implementation of the solver of geometric constraints and converters into the main exchange data formats;
2002: creation of a mechanism for constructing associative species according to three-dimensional models;
2003: the emergence of the basics of surface modeling;
2004: description of mathematical algorithms for creating elements of a sheet body;
2005: implementation of multibody modeling;
2007: support for frame model;
2008: implementation of kinematic interfaces for modeling mechanisms;
2009: support of attributes of a geometric model;
2010: the emergence of full surface modeling;
2011: implementation of cross-platform:
• Windows;
• Linux;
• macOS;
• Android;
• iOS;
2012: implementation of direct modeling elements;
2013: English localization of documentation and test application;
2014: model conversion to text formats;
2015: ensuring thread safety of kernel objects;
2016: the emergence of wrappers for C # and JavaScript, the expansion of available development environments:
• Microsoft Visual Studio;
• Clang (for Mac OS);
• GCC (for Linux);
• NDK (for Android);

In 2012, the mathematical division of ASCON was transformed into a separate business unit, C3D Labs, to develop and market the C3D geometric core. This decision was made based on the experience of world leaders of the CAD industry , based on the fact that the core is already mature enough to continue its life journey as an independent product.

C3D Team

Team C3D Labs, December 2016 (Picture is clickable)

Now more than 20 years have passed since the start of the development of the geometric core C3D. All this time, our mathematicians and programmers developed it: improved the architecture, created new functionality, modernized previously implemented methods. Why do we focus on this? We just want to say that without a unique experience based on practical application in tens and hundreds of thousands of KOMPAS-3D jobs, it would be impossible to create a competitive 3D core. Moreover, to develop a similar product from scratch without constant use and testing is beyond the power of any team.

The division of the geometric core components


If you look closely at the chronology of the development of the C3D core, you will see that over the years it has included not only modeling functions, but also parameterization and data conversion. Of course, CAD developers also noticed this, therefore, they began to receive more and more requests for licensing individual kernel functional blocks (for example, only import / export of 3D models or only a 2D solver). This led to the formation of a whole set of tools for creating engineering software - C3D Toolkit:

C3D Toolkit

Today, the C3D Toolkit combines the most important CAD modules:


Separately, it should be noted that last year, C3D Labs, together with the international alliance for open design, introduced the C3D Modeler solution for Teigha , which provides seamless integration between the C3D Modeler geometric core and the Teigha platform . Thanks to this, CAD developers can now use the functionality of the C3D Modeler 3D solid modeling directly through the Teigha API client.

Recommendations for developers


If you decide to create your own engineering application, then using the C3D Toolkit software components, you can access their low-level objects in their original form: points, matrices, coordinate systems, curves, surfaces, bodies, various auxiliary objects, etc. If you want to apply the KOMPAS-3D API in development, then you have to work with some “wrapper” on its selected high-level methods, among which are both C3D Modeler methods and the KOMPAS-3D methods built on them (to a greater extent ).

The following figure shows how the application developed for KOMPAS-3D interacts through the API with various components of the C3D Toolkit:

API interaction
Interaction of the developed application with C3D Toolkit components via the KOMPAS-3D API (blue blocks refer to the C3D Toolkit, white blocks refer to KOMPAS-3D)

Therefore, it is convenient and logical to use the C3D Toolkit precisely when you need to create a software product without reference to a specific CAD system. These can be independent computer-aided design systems, engineering analysis systems, or systems for preparing control programs for CNC machines whose operation is associated with the construction and processing of geometric models. If you’ve a little imagination and go further, you can embed C3D Toolkit components into a finite-user application for 3D scanning and printing, generative design with topological optimization, or conceptual design of products in augmented reality glasses with thought management gestures.

You will be able to better understand the C3D Toolkit device if you use: open access to technical documentation , periodically updated PDF manuals , training videos on the official C3D Labs channel on YouTube (as long as there are not so many of them, over time we plan to fix it) as well as test applications that we provide in source codes:

C3D test for Windows C3D test for Android

Test application for Windows and demo application for Andorid (Pictures are clickable)

In fact, each test application is a small design system with implemented functions of the C3D Modeler geometric kernel. There is no beautiful user interface in the tests and all the functionality is tied to the command menu, but this does not prevent using it on the principle of copy-paste , allowing you to quickly create working versions of projects for different operating systems (Windows, Mac, Linux) with the necessary set of 2D operations and three-dimensional modeling.

If the source codes are not very interesting for you, then you can familiarize yourself with the results of sharing C3D Modeler, C3D Vision and C3D Converter components by downloading the free C3D Viewer application to view 3D models in common STEP, IGES, Parasolid X_T, X_B, ACIS SAT, STL, VRML, C3D.

Experience using the C3D Toolkit


As can be seen from the history, initially the geometric core was developed at ASCON for the needs of the machine-building system KOMPAS-3D. It would seem that this is the "ceiling" of its use. In practice, nothing prevents the use of C3D Toolkit components in engineering software with any other specialization. The company ASCON clearly demonstrated this by the example of creating a system of architectural and construction design of Renga Architecture . The use of C3D Labs software allowed the developers of the joint venture ASCON and 1C to improve the functionality of the system and concentrate on the application's application tasks, without being distracted by solving basic geometric modeling problems:

Maxim Nechiporenko, Deputy General Director of Renga Software:

One of the most important components of our software is the mathematical core. Before we decided to create Renga, there was another research project in the depths of ASCON to create a new generation of CAD. Despite the fact that we had our own core, on which KOMPAS-3D was written, we were faced with the task of researching the market. Large-scale studies of cores that are used in other CADs and which can be licensed were carried out. We were looking for something more efficient, something on which it would be possible to develop something more modern. Conducted a study and came to the conclusion that our core is quite good, even worthwhile. An interesting point was that as soon as the C3D Labs project was launched, the kernel was licensed by other developers, including external ones. We have both Swedish and Korean customers. As a result, it was decided that Renga will also be on this core.

(excerpt from an interview with Albert Sumin)

Who else uses the C3D Toolkit? Today it is mainly CAD developers in Russia and abroad. Among them are representatives of the engineering, woodworking and architectural and construction industries, developers of design software and applications for CNC machines, large corporations, as well as representatives of the progressive class, who are actively investing in cloud and mobile technologies. At the request of the latter, we even translated the parametric solver C3D Solver into JavaScript language:

C3D Solver for JavaScript

Browser-based C3D Solver application for JavaScript (Picture is clickable)

Using JavaScript allows you to perform calculations in web applications on the client side. At the same time, there is an interesting experience in developing a cloud service for 3D-design and room design, in which geometric calculations are performed on the server side. The description of the project is presented in the article on Habrahabr known specialist in the development of furniture CAD - Roman Kolesnikov.

All of these programs are targeted at end users. But there are other examples. So, the company with the world name LEDAS from the Novosibirsk Academgorodok, whose employees for many years created high technologies for Dassault Systèmes, developed an embedded component for comparing the geometry of 3D models in various data formats. LEDAS Geometry Comparison based on C3D Modeler has recently been integrated into a plugin for the Inventor system. It turned out as if the “core in the core” or a peculiar matryoshka from technologies:


LEDAS Geometry Comparison (LGC) demo application

And also, due to the fact that C3D Labs has a special education support program, Russian universities receive the C3D Toolkit on attractive terms. As a rule, educational institutions use "nuclear" technologies in training future mathematicians-programmers and CAD developers. Students perform research projects and write various university software. There are some examples of the implementation of commercial projects based on the C3D Toolkit in the framework of small innovative firms that are actively being created at universities.

C3D Labs Customer List
Commercial organizations and enterprises:



Universities:



A description of the companies and the solutions they develop is presented on the website .

This concludes our review. In the following articles we will try to give more technical information about the components of the C3D Toolkit and answer the key questions that you may have formulated in the discussion for this post.


Arkady Kamnev
Marketing Manager at C3D Labs

Source: https://habr.com/ru/post/335110/


All Articles