RSS
Логотип
Баннер в шапке 1
Баннер в шапке 2

Top Systems: RGK Geometric Core

Product
Developers: Top Systems
Last Release Date: 2023/07/24
Technology: CAD

Main article: CAD Computer-aided design systems

2023: Announcement of the domestic geometric core RGK

On July 24, 2023, Top Systems"" announced that it had received all the opportunities to independently develop and withdraw to market geometric core RGK as a commercial product. The product will be delivered for several platforms at once, including various versions, Linux including domestic certified versions. The delivery of the product is planned as a library of classes for use on, C++ programming language as well as all components necessary for convenient application in end systems.

The Developer Tools Kit (SDK) includes:

  • executable modules;
  • Library and header files required to build the target application
  • e-guide file in the form of hypertext help;
  • a set of examples in source codes;
  • RGKWorkshop executable program - a test and debug shell, which is both an analysis tool and a tool for debugging geometric models;
  • description of the storage format of RGK models - RGK_XML.

Specifying Boundary Conditions in Loft Generator: G2-Smooth Surface Fillet

Separately, it should be noted that data storage the RGK_XML format is open and specified. It has a clear structure that corresponds to the general principles of organizing the RGK data model. The format can be used for standardization purposes to provide an accurate geometric model of data objects.

Leonid Baranov, Director for Technology Development of 3D Modeling "Top Systems," spoke about the principles of building a model of data from the geometric core of RGK, its architectural features and the most complex and interesting problems that the module developers have to solve. The story was accompanied by a large number of illustrations and a demonstration of comparative tests. The geometric core of RGK provides modeling of geometric objects according to the classical boundary representation scheme (B-Rep) with "accurate" geometry - using the analytical representation of curves and surfaces of different types. This representation allows you to simulate objects with high accuracy, while allowing you to work with tolerant geometry when the accuracy with which they were calculated is stored with model objects. Tolerance geometry precision parameters apply to all calculations performed in kernel code. This feature provides the ability to maintain the integrity of the geometric model even for very complex geometries and low accuracy of the original data.

The geometric core provides the following basic functions:

  • Storing a geometric model (geometry/topology of solids, surfaces, curves)
  • Create and edit a geometric model.
  • Control the identification and attributes of the geometric model
  • control of integrity and quality of the geometric model;
  • Measurement and analysis of the geometric model
  • Building plane views (tessellations) of the model in order to visualize or prepare data for generating calculated (CAE) grids.
  • generating projections and views.

Example of operation of RGK Boolean operation algorithms

The RGK geometric kernel classes available for use in target applications provide both low-level functionality for creating and editing geometry and high-level specialized functions, which are called generators in the kernel. So, the kernel class library contains the following generators:

  • primitives (prism, torus, sphere, cylinder, cone);
  • kinematic operations (extrusion, rotation, trajectory, loft);
  • boolean operations (global, local, selective);
  • smoothing operations of various types (chamfers, edge smoothing, trihedral smoothing, face smoothing);
  • Shell/offset/thickening operation
  • Face draft operation
  • Delete/Replace/Transform Facets (so-called Direct Simulation)
  • stitching/cutting operations;
  • Copy/transform bodies, including using different scales along axes
  • a number of low-level body operations, as well as many curve operations.

The functionality of many generators in RGK is very developed. Let's dwell on the description of the features of some of the operations supported by the kernel. For example, the trajectory and loft generator supports a number of fairly advanced options. You can specify the twisting and scaling laws of the sweep path, both separately and in combination, and specify multiple paths and different ways to synchronize them. In addition, fracture handling on the motion path is supported.

Typical Processor Load Schedule on Task from Previous Figure

When constructing surfaces in the core, special attention is paid to their quality - both in terms of compliance with the requirements of construction accuracy, and in terms of minimizing the number of control points and regulating parameterization. Since RGK developers have direct access to the functionality of perhaps the best solid-state core in the world - Parasolid, this allows for unbiased research and comparison of results. The quality of surface generation algorithms in RGK is generally comparable to this core and continues to constantly improve, since the current task of the developers is to achieve functional parity with world cores. In this regard, during the development process, a lot of research is carried out to analyze the quality of algorithms in comparison with other competing solutions of the "heavy" class.

As you know, one of the most complex problems of geometric modeling in both mathematical and algorithmic terms is the problems of smoothing (rounding) surfaces. Given this, when developing the RGK core, special attention is paid to this particular functionality. In smoothing edges, almost all the main modes of shape control are supported, known from the functionality of the so-called "heavy" class systems: section of constant and variable radius; specified width, both in constant and variable modes; variable sections with second-order curves (ellipses, parabolas, hyperboles); smooth transition modes and edge preservation on all types of smoothing; maintaining curvature - G2 smoothness (Fig. 4); Specifies the indents from the vertex in vertex smoothing. It is especially worth noting the architecture of the algorithm, which allows in a single formalism to support smoothing of both edges and faces and trihedral smoothing, thereby providing a very high flexibility of the algorithm and the possibility of development. A lot of work has been done in terms of the topological robustness of the smoothing algorithm. For example, depending on the given radius, the algorithm is able to make large rearrangements of the body topology.

It is valid to create a smoothing of a larger radius over a smaller radius. Such a task occurs quite often in practical modeling. Various "overflows" are supported, that is, transitions to smooth neighboring faces, as well as, if necessary, saving edges. The developers especially noted the ability of the RGK smoothing algorithm to process the degeneration of topological elements. A complex topology of smoothing overlaps is supported, which significantly improves the quality of the algorithm in real application. Interesting results were achieved when building variable smoothing. In particular, the overlap processing of the smoothing sequences is supported with the recalculation of the radius change law in the overlap region. Naturally, the RGK algorithms support various cross-sections of variable radius. In addition, mathematics has been developed for the construction of smooth "tightening" of n-coal regions. These designs allow, in particular, to solve the problem of constructing surfaces with indents from the vertex (setback). The smoothing algorithm works on both solid and surface bodies - there are no differences between these topologies in RGK. In the RGK kernel, the face smoothing functionality is implemented, in fact, by the same algorithm that performs edge smoothing - a difference only in the top-level interface, but at the same time classical face smoothing problems are solved.

Since the RGK core is originally developed in order to compete with global industrial cores, various functionality is included in the number of kernel tools that are required by "heavy" class application systems to solve various special problems. For example, the problem of draft faces was originally formulated as a problem with fixed edges of arbitrary geometry and the ability to change the topology of the body during the operation. The slope relative to the connector surface, of course, is also supported, as a special case of a more general setting.

Another example: in Boolean operations, in addition to the traditional "global" operation mode (combining, subtracting and crossing), local operation modes are provided when the application can indicate which faces to perform selective Boolean operations with the ability to select parts of the original bodies that will remain as a result. In addition, a generalized Boolean operation is provided that can form a topological model representing bodies that contact each other along faces and edges. It is also important to note that Boolean operations work on both solid and surface bodies, as well as their combinations.

The Boolean tool set supports instancing functionality, a technique for optimizing Boolean operations on arrays of bodies whose geometry differs only in the position of instances in space. In addition, pattern operations are supported when features are patterned to a given face.

Multithreaded computing is widely and actively used in geometric kernel algorithms. This feature was originally embedded in kernel algorithms, as it is one of the main tools for improving the overall efficiency of the final application. At the same time, RGK supports both internal parallelization of calculations (when parallel threads are started automatically) and external (when parallel threads are created in application code outside of kernel functions). Parallel calculations allowed multiple productivity gains in a number of scenarios compared to existing geometric cores (Figures 34, 35).

Similar behavior is observed on most other computationally capacious tasks. In particular, on the tasks of checking the intersection of bodies in assemblies, calculating distances and constructing projections with hidden lines removed. As of July 24, 2023, the RGK development kit (SDK) is ready for transfer to third-party developers for trial use. In addition to working on the kernel itself, related work is performed in T-FLEX CAD 17.

1984: Start of development

The development of the geometric core of RGK, in fact, began back in 1984, when a group on research in the field of geometric modeling and the development of a 3D core was organized at the Moscow Machine Tool Institute (later MSTU Stankin) under the guidance of associate professors A.V. Rybakov and V.Yu. Sudzilovsky. It was from that moment that Leonid Baranov began to engage in this work as a mathematician-programmer, and later, after completing his studies in Stankin, he headed this group.