3.0.0
CPACSCreator

Overview

The goal of CPACSCreator framework is to facilitate the processing, the editing and the creation of the geometric data stored inside CPACS data sets.

CPACSCreator offers query functions for the geometry structure. These functions can be used for example to detect how many segments are attached to a certain segment, which indices these segments have, or how many wings and fuselages the current airplane configuration contains. This functionality is necessary because not only the modeling of simple wings or fuselages but also the description of quite complicated structures with branches or flaps is targeted.

Furthermore, the CPACSCreator offer functions to modify or to create CPACS geometries. These functions can be used for example to modify the wing sweep angle, to modify fuselage length, to create a wing from scratch, or to modify the orientation of a section. These functionalities are necessary to avoid the manual editing of CPACS xml file. The idea was to provide a friendly interface to CPACS geometrical data and to hide the complexity of the CPACS format. To do this a set of high level parameters was define. You can find the exact definition of these parameters here: CPACSCreator high level parameters .

The framework is release under Apache2 license. The developed library uses the Open Source software OpenCASCADE to represent the airplane geometry by B-spline surfaces in order to compute surface points and also to export the geometry in the IGES/STEP/STL/VTK format.

CPACSCreator and TiGL Project

The CPACSCreator is the continuity of the original TiGL project (https://github.com/DLR-SC/tigl). Basically TiGL library was extended with functionalities to edit CPACS geometrical data. Editing features was also added to TiGLViewer and TiGLViewer becomes CPACSCreator. The idea is to integrate these new functionalities back into the orignal TiGL project once they are stable enough. To be clear about the nomenclature used in this documentation, we use TiGL to refer to the new TiGL library and original TiGL library to refer to current TiGL3 library.

Framework structure

CPACSCreator framework can be divided into two main blocks:

  • TiGL Library The TiGL library is a C++ library and is really the core of CPACSCreator framework. This library contains all the logic of the geometrical CPACS data manipulation. The library can be access by other program trough the TiGL API (limited functionalities) and trough the internal python API (full functionalities) for python program.
  • CPACSCreator GUI The CPACSCreator GUI is a graphical user interface (GUI) to view, edit and create CPACS geometries. The goal of CPACSCreator GUI is to have a friendly user interface so that aircraft designers can easily view and modify CPACS geometry. CPACSCreator GUI simply make function calls to the library each time an object is modify and has convenience features to edit the file as undo/redo feature and profiles database.

Creator functionalities

Here we will presented a not exhaustive list of the functionalities added by CPACSCreator in the TiGL project. These functionalities are, in general, accessible thought the Internal python API or though the CPACSCreator GUI.

  • Edit wing
  • Edit fuselage
  • Edit wing section
  • Edit fuselage section
  • Add wing section
  • Add fuselage section
  • Edit positionings
  • Standardization of positionings
  • Create a wing
  • Create a fuselage

Known limitations

  • Multiple elements per section is not supported. This comes from the fact that to decompose properly a matrix we need to have two cpacs transformations of the type scaling * rotation * translation for each section (and not only one as required by the CPACS standard)
  • Guide curve are not supported now. So, if you have wing or fuselage that contains guide curves, be aware that editing the geometry can break the CPACS structure. Prefer to first edit/create the geometry then add the guide curve.
  • Pylon are not supported now
  • Component segments are not fully supported now. Editing a geometry that contains component segments will not break the structure, but can have unwanted effect on the component.