Keywords

1 Introduction

With the development of computer science, more and more modern CAD systems have the ability to create parametric models. In a parametric model, each entity, such as a line or circle in a wireframe, or an extrude operation, has parameters associated with it. These parameters control the various geometric properties of the entity, such as the length, radius or height of a cylinder. In order to create the desired part, these parameters may be changed by the operator if necessary. Parametric modelers that use a history-based method keep a record of how the model was built. When the operator changes parameters in the model and regenerates the part, the program repeats the operations from the history, using the new parameters, to create the new solid [1].

However, different CAD systems have different modeling ways even for the feature definition. A parametric model that was generated in one CAD system will not be recognized or called feature inherited in another CAD platform. In fact, this is very popular in shipbuilding and auto industry [1]. As you know, shipbuilding is an extremely complex business. The time between order and delivery is very short, which means that a huge amount of tasks must be performed in parallel, or in some other cooperation ways [2]. This due to the whole ship model may come from different platform such as Tribon, CADDS5 and UG. How to realize ship data exchange between those heterogeneous systems has become a main problem that engineer have to face. At present, the common way is to use standard file style, such as STEP, IGES that was provided by most CAD systems. While this traditional data exchange method did not took feature parameter and modeling history into account [3]. That means after such exchanging, the original modeling features have been lost and model could not be regenerated in the destination CAD system. To edit or change the model parameters will become impossible.

The objective of this research is to fulfill the data exchange of modeling data of hull between Tribon and UG systems, two important CAD systems in shipbuilding and auto industry, via the XML neutral file.

2 Feature-Based Data Exchanging

By analyzing the modeling framework of Tribon and UG systems, we got to know that the traditional data exchange method by STEP or IGES is useless for feature inherited. Se we define a special neutral file style of our own base on XM. This neutral file can be used to save the ship hull data exported from Tribon. On the other hand, it can be also read by the destination CAD platform after customized development. In this method, any feature-based model can be trace back to its modeling history, so we can realize data exchanging process by rebuilding modeling history tree in different CAD system.

2.1 Frame Structure

Feature-based data exchanging aims at feature information sharing between different CAD systems. The whole exchanging process can be divided into two parts as shown as follows Fig. 1.

Fig. 1
figure 1

Feature-based data exchanging framework

There are two steps for this exchanging process. One is pre-processor and another is post-processor. Pre-processor mainly used to read modeling data from local system as far as Tribon is concerned. During this process, these extracted data will be organized according to a mapping module and then exported in a neutral XML file. By contraries, post-processor mainly used to translate these neutral files and fulfill the model regeneration in the target system.

2.2 Development Tool

Like many modern CAD systems, Tribon provide user a built-in programming tool Vitesse [1]. Tribon Vitesse is a productive way to create customized, user-developed macros or programs in an object-oriented language. These macros are then available within the interactive Tribon application through a special function on the menu. A customized interface that we developed by this tool can be shown as follows Fig. 2.

Fig. 2
figure 2

Screenshot of the T2U client developed by Tribon Vitesse tool

Tribon Vitesse incorporates the programming language Python [1]. This syntax includes all normal features in a programming language such as branching, loops, functions, etc., as well as full support for the object-oriented programming. The Python language itself gives the use the full freedom to work in a traditional function-oriented fashion. Its implementation in Vitesse, however, requires the programmer to gain also the basic skills in the object–oriented approach, because the Tribon entities and activities have been modeled in the Python language as classes as its methods.

By calling the corresponding utility functions that was encapsulated by Vitesse, the programmer can easy access Tribon product information model and its database.

2.3 Ship Hull Exchanging Objects

Tribon product information model can be regarded as a ship database containing all information about a specific project. The database is object-oriented in the sense that all design and production data is stored as “objects”. These “objects” are all the types of physical items found in shipbuilding, e.g. [4] (Fig. 3).

Fig. 3
figure 3

Ship hull and outfitting topological structure

There is a hierarchy within the product information model, which helps the user keep track of the information and produces production information more efficiently [5]. An example of this hierarchy is shown in the following diagram.

2.4 XML Neutral Files

Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a certain tag format that is both human-readable and machine-readable. It is a data format used extensively to describe structured data [6].

Since the XML documents are standard test files, it is virtually possible to handle them, using standard Python abilities of handling files. This becomes, however extremely difficult with the growing complexity of the document [7]. Therefore, we have to develop a translation module to facilitate the handling of the XML. For example, we can use the following code to obtain an existing XML document in TRIBON development circumstance [8].

From xml.dom.minidom import parse

try:

   doc=parse(“D:\\test.xml”) #Build XML document

try:

       … #Work on the document

   finally:

       doc.unlink() #Prepare for cleanup

except:

   kcs_ui.message_confirm(“Error reading file!”) [1]

In this paper, we use a kind of XML neutral file to record ship hull modeling history data. These neutral files are composed by some well-regulated macro unites [9]. In this method, Modeling data are described by modeling macro (modeling history tree) instead of geometry element, such as point, line and surface. Macros unite is a data structure with two-dimensional characteristic. Each macro unites will give expression to a certain hull structure: parallel unites describe the structure that lies in the same class, while longitudinal unites describe the structure that lies in different class [10]. We put the ship hull data into five classes: Ship, Hull, Block, Panel, Tran matrix. This can be shown in the following Table 1.

Table 1 A glance at XML neutral file for ship hull

2.5 Co-ordinate Translation

In the ship hull creation process, we adopt a variety of positioning ways. For example, we work with three kinds of co-ordinate systems in Tribon platform. Drawing co-ordinate system will be used under screech circumstance, global co-ordinate system and panel co-ordinate system will be used when we need to create a solid feature [11]. The coordinate variables shown as follows:

  • drawing co-ordinate system (U, V)

  • global co-ordinate system (X, Y, Z)

  • panel co-ordinate system (U, V, W)

In addition, Tribon and UG NX differ from the definition of the relative coordinate system. So, during the model regeneration process in the destination platform UN NX, we have to deal with the co-ordinate translation problems. If the coordinate transformation is linear, we need to change source coordinates from (x, y) to a new pair of coordinates (x′, y′). The conversion express can be written as a matrix equation. The most general linear coordinate transformation of R2 has the following form:

$$ \begin{aligned}{x}^{\prime }=\mathrm{a}x+\mathrm{b}y\\ {}{y}^{\prime }=\mathrm{c}x+\mathrm{d}y\end{aligned} $$
(1)

Where a, b, c, and d are real-valued constants with ad − bc ≠ 0. Now we can easily see that this transformation may be expressed as a matrix equation as follows:

$$ \left[\begin{array}{c}\hfill {x}^{\prime}\hfill \\ {}\hfill {y}^{\prime}\hfill \end{array}\right]=\left[\arraycolsep4pt \begin{array}{cc}\hfill \mathrm{a}\hfill & \hfill \mathrm{b}\hfill \\ {}\hfill \mathrm{c}\hfill & \hfill \mathrm{d}\hfill \end{array}\right]\;\left[\begin{array}{c}\hfill x\hfill \\ {}\hfill y\hfill \end{array}\right] $$
(2)

What if we want to return to the old coordinates? Then we apply the inverse coordinate transformation, given by:

$$ \left[\begin{array}{c}\hfill x\hfill \\ {}\hfill y\hfill \end{array}\right]={\left(\mathrm{ad}-\mathrm{b}\mathrm{c}\right)}^{-1}\left[\!\!\arraycolsep3pt\begin{array}{cc}\hfill \mathrm{d}\hfill & \hfill -\mathrm{b}\hfill \\ {}\hfill -\mathrm{c}\hfill & \hfill \mathrm{a}\hfill \end{array}\right]\left[\begin{array}{c}\hfill {x}^{\prime}\hfill \\ {}\hfill {y}^{\prime}\hfill \end{array}\right] $$
(3)

These equations may be written symbolically as x′ = Ax and x = A−1x′. It is easy to see that the first of these equations implies the second; just multiply both sides on the left by A−1. When written out as a system of linear equations, the above matrix equation becomes:

$$ \begin{aligned}\mathrm{x}&=\left(\mathrm{d}{\mathrm{x}}^{\prime }-\mathrm{b}{\mathrm{y}}^{\prime}\right)/\left(\mathrm{ad}-\mathrm{b}\mathrm{c}\right)\\ \mathrm{y}&=\left(-\mathrm{c}{\mathrm{x}}^{\prime }+\mathrm{a}{\mathrm{y}}^{\prime}\right)/\left(\mathrm{ad}-\mathrm{b}\mathrm{c}\right)\end{aligned} $$
(4)

2.6 Application Examples

In this paper, we use the programming language Python which has been integrated within Tribon as the customized development tools. The syntax includes all normal features in a programming language such as branching, loops, functions, etc., as well as full support for the object-oriented programming [12].

Within the research project, two customized clients are implemented as prototypes. These are used for demonstration and special design purposes. Both are implemented in Python. T2U client is used for visualization and to generate the user interface of hull data export [13] (Fig. 4).

Fig. 4
figure 4

Comparison for Tribon hull model and regenerated model in NX

For the usage in hull structural design, this client is integrated into the Tribon hull-drafting module using the Vitesse application-programming framework. This client program is used as named, i.e. [14]. It provides an interface or called tools to the knowledge based design and related information stored in the standards database. Basic workflows like the standards conformant construction of brackets and cutouts are implemented. For a design task like the definition of a bracket attribute values are entered automatically as far as possible thus reducing the number of user inputs required [15].

Due to the open design and the consolidation of the complete application logic into the server the development of additional clients that integrate CAD–systems or further applications into the system is possible [16].

3 Discussion

In this paper, we talk about the possibility for feature-based geometry data seamless integration between heterogeneous CAD systems. The author trace ship hull modeling history in Tribon and via the XML neutral file, a same 3d model has been regenerated in another system UG. In case of ship industry, this method was proved to be effective.

Currently, the data exchange method apply is a first prototype focused on design, storage and retrieval of standardized parts. It is a highly configurable and flexible system. By using the data model described, engineers have a unique data source for the steel structural design process. The access to additional information using entity information derived classes allows for a further consolidation and a tighter integration of all relevant pieces of information [17]. Further work is currently carried out on the closer integration of a 12 rule–based computation system for the dynamic evaluation of parameters or conditions. Advanced workflows for a guided wizard-based design are developed.

4 Conclusion

By feature-based data exchanging method, a ship hull model has been regenerated successfully in UG. The experiments show that this data exchange method is fairly high efficiency and all modeling features have been inherited in the destination system. This method can also be widely used in other feature-based CAD platforms such as Solidworks, CADDS5 and CATIA [18].