Keywords

1 Introduction

1.1 Aircraft Design Process

In general, the aircraft design process involves several distinct phases. They are referred to as: preliminary design/project design/detail design. Preliminary design phase forms the initial draft of a document that will be subsequently revised to contain a thorough description of the aircraft [1]. Some literature divides the aircraft design process into the following processes: requirement, conceptual design, preliminary design, detail design [2]. Typically, the following characteristics are defined during conceptual design phase: Type of aircraft\Aesthetics\Special aerodynamic features etc.

1.2 State of the Art

The common aircraft design software can be categorized as follow:

The first type is windows software based on GUI, such as advanced aircraft analysis [3].

The second type is windows software based on OpenGL, such as OpenVSP and XFLR5 [4, 5].

The third type is Matlab Tookie’s, such as Tornado [6].

The last one is windows software based on console application, uch as AVL and DATCOM [7, 8].

In the author’s opinion, the Open VSP is the best software for conceptual design phase. However, there are great differences on usage habit internationally, such as the design ideas, human-machine interaction, display interaction, data format etc (Fig. 1).

Fig. 1.
figure 1

Open VSP runtime interface.

The Conceptual Design software has been developed for decades in the domestic. Unfortunately, they are still at the primary level [9]. Therefore, it is necessary to develop software that combines the advantage of Open VSP as well as user habits (Fig. 2).

Fig. 2.
figure 2

Design runtime interface of Ref. [9].

In this paper, an aircraft design software with 3D display and interaction for the conceptual design phase is introduced, with a detailed description of the software’s 3D design engine. Its runtime interface is shown in Fig. 3.

Fig. 3.
figure 3

Conceptual design phase aircraft design software runtime interface.

1.3 Development Environment

The common sense is all of the 3D engines are based on OpenGL framework. But, how does it works? The first step is to download a library of OpenGL, although different programming languages have different types of libraries, their standards are uniform. The second step is to reference this library during software development. The third step is to initialize OpenGL. The fourth step is to select the appropriate color RGB and alpha value, draw the points, lines and faces based on the data, and form the graph we need. In the fifth part, the graphic is displayed in an orthographic projection on the form. At present, in aircraft design and related software development, OpenGL is mainly used in several aspects—test data display, flight simulation, and virtual reality-based maintenance support and so on [10, 11].

Although most of the current 3D engines are based on C language, the author still chooses Visual Basic 6.0 as the development language, the reasons are: 1, Visual Basic language syntax is simple, 2, the data structure is relatively clear, there is no complex pointer, 3, the development process requires less effort; 4, more focused can be put on the description of the problem.

2 Methodology

2.1 Requirements and Capabilities

In the aircraft concept design phase, the main work includes the following aspects: the choice of airfoil, the layout of the wing, the layout of the engine, the style of the fuselage, the correspondence of the components, the definition of related parameters, and so on.

The requirements for 3D display include: each component’s lines and surfaces that can be displayed; lines, and surfaces can be selectively displayed; component’s color can be changed; support component selection prompts; support mouse-based scaling; support mouse-based rotation; support real-time display refresh after part position parameters are updated; and support screen graphic save as bmp picture.

2.2 Frameworks

The engine mainly contains two parts, one is how to describe the aircraft, and the other is how to draw the aircraft.

The aircraft in this 3D design engine contains three components, wing surface, body, and the engine. These physical parts need to be abstracted into mathematical descriptions. These components have a similar description structure, including index parameters, positional parameters, geometric parameters, and display parameters. The structure of specific parameters differs according to the types of components. For example, the data structure of the geometric parameters of the wing surface includes the individual wing surface data structure, the airfoil library data structure, the section information data structure, and the rudder data structure.

The step in drawing an aircraft is to load the component data, construct its 3D shape in a basically similar way based on the characteristics of the component, then the surface grid is generated from the 3D shape, finally surface’s grid and cell is drawn and displayed on the screen (Fig. 4).

Fig. 4.
figure 4

Frameworks.

2.3 Coordinate Axis Definition and Projection Transform

In order to be compatible with 2D airfoil section and 3D wing surface, and to make the code more versatile, the coordinate axis is defined as follows: the X coordinate is the axial coordinate of the airframe, and the backward direction along the flow direction is positive. The Y coordinate is perpendicular to the X coordinate, positive upwards, and the XY plane forms the symmetrical plane of the aircraft. The Z coordinate is perpendicular to XY plane, with positive on the left.

There are two ways to project in OpenGL, perspective projection and orthographic projection. Perspective projection is similar to see objects in our daily lives, objects of the same size, larger at close range and smaller at a distance. Orthographic projection does not have such an effect, and the display is the same near and far. In computer-aided design software development, we do not want to deviate from the display of objects because of the distance and proximity of the vision, so we often use orthographic projection (Fig. 5).

Fig. 5.
figure 5

Coordinate axis and projection transform.

2.4 Data Structure

Mathematically describing an airplane requires complex data structures and a variety of variable types. Defining variables or arrays one by one increases the complexity of data manipulation, so this article uses structure data structures while also using structure nesting.

Taking the wing structure as an example, the index parameters, position parameters, display parameters, wing feature parameters (projection area, span length, mean aerodynamic chord length, X coordinate of mean aerodynamic chord, Y coordinate of mean aerodynamic chord, infiltrated area), surface grid parameters, nested airfoil library structure, structural parameter structure, rudder surface structure are defined in the wing structure.

2.5 Component Drawing

Component drawing is introduced based on the example of the wing surface.

In order to display the features of the component independently, the drawing function of the grid, the drawing function of the section, the drawing function of the edge, and the drawing function of the cell are defined. Continuous unclosed polylines are used for drawing lines, and independent fill quads are used for drawing cells (Fig. 6).

Fig. 6.
figure 6

Variable display modes.

2.6 Mouse Operation

Mouse operations are defined as follows:

When the left button is pressed, it means dragging, the mouse pointer changes to a four-way dimension line, and the mouse button value is 1.

When the scroll wheel is pressed, it means zooming, the mouse pointer changes to a vertical dimension line, and the mouse button value is 4.

When the right button is pressed, it means rotation, the mouse pointer is the default value, and the mouse button value is 2.

When you release the mouse button, the mouse pointer reverts to its default value.

During the mouse movement, different mouse value, realizes translation, rotation, zooming. Mainly according to the distance of mouse movement, equivalent to the variation parameters of translation, rotation, and scaling, these parameters are passed to the projection function, and translation, rotation and scaling are realized. In this process, the distance equivalent parameter needs to be adjusted according to the user's habits and the developer's experience, so that the response of the mouse during translation, rotation and zoom is more in line with the operation intention.

3 Application Examples

3.1 Conceptual Design Phase Aircraft Design

AS mentioned above, the software can support the design and aerodynamic evaluation of any layout type of aircraft, and can directly and quickly generate CATIA models, OBJ models, and STL models for 3D printing of the whole aircraft and components (Fig. 7).

Fig. 7.
figure 7

Conceptual design phase aircraft design software.

3.2 Solar Aircraft Design

Based on the 3D design engine, solar aircraft design software was developed. In addition to the above functions, it also can calculate and analyze solar radiation energy at any location, any date, any time, any height, any aircraft surface, and any attitude. In addition to solar aircraft design, it is also applicable to carry out computational evaluation on solar airships, solar vehicles, photovoltaic power generation, etc (Fig. 8).

Fig. 8.
figure 8

Solar aircraft design software.

3.3 Rotor and Propeller Design

Based on this 3D design, engine, rotor & propeller design based on leaf element momentum theory was developed. The software supports power-diameter relationship calculation, rapid analysis of airfoil and surface, rotor & propeller detailed design and analysis, and calculation of aerodynamic, power and torque in axial and non-axial states. It can output data, cloud map, screen graphic, CATIA module, etc (Fig. 9).

Fig. 9.
figure 9

Rotor and propeller design software.

4 Conclusion

This paper develops a 3D design engine capable of being used in aircraft conceptual design phase that can be adapted to the design, description, and display of different types of aircraft. Based on this engine, the authors developed three different types of aircraft design software, improving the efficiency of conceptual design.