Skip to content

Releases: DLR-SC/tigl

TiGL 3.5.0-rc1

24 Sep 05:22
d3305a9

Choose a tag to compare

TiGL 3.5.0-rc1 Pre-release
Pre-release

Version 3.5.0-rc1

2025/09/22

We are very excited to announce our first official TiGL release containing the implementation of the CPACS Creator. CPACS Creator was a branch of TiGL that allowed modification of CPACS nodes via the C++ and internal Python API as well as via the graphical user interface based on TiGL Viewer. The first pre-release of CPACS Creator was in September 2019. Within the past year we have shifted our focus towards re-integrating CPACS Creator into TiGL. After a few weeks of extensive coding and bug fixing - especially for the GUI, we have finally made the merge.

To highlight this merge and to be faithful to Malo Drougard's original implementation, we have decided to rename TiGLViewer to TiGLCreator. Enjoy!

  • General changes

    • Rename the CPACSCreator/TiGLViewer to TiGLCreator #1137.
    • The CPACS tree stays expanded, even after addition or deletion of wings, fuselages, sections or profiles (#1138)
    • Sections can now be added or deleted using a context menu in the CPACS Tree View (#628)
    • Add the option to set a custom name when a new section is added into fuselages or wings. This user dialog is included within the new-section-dialog (#1141).
    • When adding new sections to wings or fuselages, the sections are reordered from root to tip (resp. nose to rear) according to the segments (#1139)
    • Add the option to set an eta value when a new section is added into fuselages or wings. This user dialog is included within the new-section-dialog (#1133).
  • Fixes

    • Support multiple models in a cpacs file (#1196)
    • Fix hard crash in Redo command, improve error message (#1144).
    • State of QDockWidgets is saved and loaded correctly now when closing and reopening GUI (#1142).
    • Fix hard crash when changing the symmetry axis of a wing in TiGL Creator (#1143)
    • Fix hard crash for configuration without fuselage profiles (#1178)
    • Fix wrong rotation when adding sections (#1168)
    • When adding a new section into an existing wing, the scaling/translation did not seem meaningful. That is due to the fact, that the new element's area was interpolated between the start end end element. However, it does not depend linearly on the element width. Choosing the element width as a target value for the new element should fix this issue (#1108).
    • Redo and Undo commands now update the CPACS configuration, which was previously only true for modifications using the CPACS Editor UI (#1122).
    • Ask the user whether the currently worked on file should be saved before closing. Up to now, the configuration was simply closed resulting in potential data loss (#1090).
    • When a user adds a non-boundary segment to a wing/fuselage, the respective segment is split and a new one is created. After this split, a reordering of the segments is necessary. Otherwise, the segments cannot be lofted and created correctly. That would result in a wrong visualization and errors when trying to build them on user's demand in the tiglviewer. For that reason, the CCPACSFuselageSegments::ReorderSegments() and CPACSWingSegments::ReorderSegments(), respectively, were added within the call of the SplitSegment() function. (#1096)
    • When creating a new file out of a template, the CPACSCreator automatically creates a new .temp file in the template directory. It might be the case that the user does not have write access to this directory, e.g. when TiGL is not configured and built but just downloaded via the installer. On the other hand it does not seem to be reasonable to directly create and store (!) a new file every time the 'new file' command is activated. Now, no temporary file is created. The content of the wanted template is copied into a string which then will be opened and read by tixi. Only if wanted, the resulting and edited CPACS file is stored. (#752)
    • CPACSCreator uses a system-wide config file to store (among many others) the path to the profiles database. If TiGL is built in a second configuration on the same system, the first build will determine the path in this config file. If then later the first build (and path) is removed, TiGL will still try to load the database from this path. A check is included, whether the path exists and should overwrite the config file entry when it does not. (#1087)

New Contributors

Full Changelog: v3.4.1...v3.5.0-rc1

TiGL 3.4.1

09 Sep 07:27
1d49c88

Choose a tag to compare

Version 3.4.1

2025/09/08

  • New API functions:

    • New function ::tiglComponentTransformPointToGlobal to transform component-local coordinates into global coordinates (#1064)
  • General changes:

    • Implemented the new CPACS fuelTanks.
    • Use OpenCascade Technology (OCCT) version 7.6.2.
    • Use TiXI version 3.3.1
    • Add support for linking against OpenCascade Technology 7.8.
    • Update the C++ standard to C++17.
    • Added the possibility to switch between two algorithms in the CCSTCurveBuilder. The default algorithm based on a Chebychev approximation results in a small number of control points, but introduces small discontinuities in the curvature. The new option is to use OCCT's GeomAPI_PointsToBSpline, which results in a C3 continuous B-Spline.
  • Fixes:

    • Fix inconsistent parametrization of super ellipse profiles. Before, the super ellipses ware parametrized by arc length, which resulted in different parameters at the four distinct points of the super ellipse. Potential kinks in two super ellipses were not necessarily connected by a v-isoline in the resulting loft. (#1094)
    • CCPACSPositioning was not available via Python bindings since the std::vector<std::unique_ptr<TYPE>> is not exposed to swig. New getter functions have been implemented in CCPACSPositioning.h to make these elements accesible via index, similar to the implementation of for several other classes (#936). For more information see cpacs_tigl_gen issue #59.
    • The tolerance for creating cells via contourCoordinate was reduced for cells in spanwise direction. That fixed a bug that caused cells to overlap potentially. The same reduction was missed in chordwise direction and is added now to avoid the cell overlap in chordwise direction, as well. (#1034)

Full Changelog: v3.4.0...v3.4.1

CPACS Creator 0.2.0

19 Nov 13:52

Choose a tag to compare

CPACS Creator 0.2.0 Pre-release
Pre-release

We are happy to update the pre-release of CPACS Creator to version 0.2.0.
This release does not include any new CPACS Creator features, but updates the TiGL version to 3.4 including a minor bug fix (b9c75f1).
This also ensures the compatability with CPACS 3.4.

Malo Drougard from CFS Engineering did an awesome job and implemented this for the DLR.
Please look here for more information: https://dlr-sc.github.io/tigl/cpacs-creator-pre-release.html

Documentation: https://dlr-sc.github.io/tigl/doc/cpacscreator-0.2/index.html

TiGL 3.4.0

12 Nov 14:49
10a7fcf

Choose a tag to compare

Version 3.4.0

12/11/2024

  • General changes:

    • Support CPACS 3.4 (#1027)
    • Implemented standard fuselage profiles, i.e. rounded rectangle profiles (#1005) and superellipses (#1021).
    • CPACS allows prescribing kinks at (fuselage) profiles at given parameters. At the same time, guide curves must be prescribed at a relative circumference of the profile, which does not necessarily coincide with the parametrization of the profiles. In consequence, it was nearly impossible for a user to prescribe a guide curve exactly at a profile kink. This was fixed by allowing guide curves to be placed at a curve parameter that coincides with the prescribed parameter in the profile definition. Now guide curves can optionally be prescribed using fromParameter and toParameter instead of fromRelativeCircumference and toRelativeCircumference. (#1015)
  • Fixes:

    • In Debug Mode, the Lofting algorithm now throws an exception, if the generation of the Side Caps fail. The intention behind having the check only in Debug-Mode is that the geometric validity check is very generic and may be too restrictive. In addition, it may be expensive. (#999)
    • Fixed an issue, where approximate reparametrization of a B-Spline Curve resulted in non-negligable geometric changes of the B-Spline, especially if parameters are prescribed for a profile in CPACS. This new reparametrization is incompatible with a previous reparametrization applied to fuselage profiles, that distributed the knots for an overall cleaner geometry. Now the knot distribution is turned off, if parameters are prescribed in CPACS. (#1007)
    • CPACS 3.5 introduces a new way of prescribing the version of the CPACS data set, which means that newer CPACS files could not be interpreted by TiGL anymore. Now, TiGL can open CPACS 3.5 files and raises a warning that the CPACS version is newer than the one supported by TiGL (#1010).
    • Fix hard crash in Wing Geometry generation with cutouts, if there are no cutouts defined in CPACS. (#1023)

Contributors

@sdeinert, @merakulix @svengoldberg @joergbrech @MarAlder

Full Changelog: v3.3.1...v3.4.0

TiGL 3.3.1

15 Mar 10:36

Choose a tag to compare

Version 3.3.1

14/03/2024

  • General changes:

    • Improve documentation and update installation instructions.
    • TiGL now supports Opencascade Technology 7.6.2 (#973).
    • Extension of the functionality of ::tiglwinginterpolatexsi to work on a single segment that is not part of a component segment (#970). The function
      is now generalized, so that the start and end uid can be either a segment or component segment and the two do not have to be related to each other.
    • TiGL now supplies an environment.yml file that can be used with conda to install all build requirements of tigl into an Anaconda environment.
    • Renamed the function ::CCPACSConfiguration::GetAirplaneLenth to ::CCPACSConfiguration::GetAirplaneLength (#992).
  • Fixes:

    • Fix bug in guide curve transformation. The rX-Direction was wrongly interpreted with respect to global coordinates, not wing coordinates (#975).
    • Fix for hard crash if guiceCurves node is present but empty in wing segment (#962).
    • Fix bug related to the calculation of Euler angles from a given rotation matrix (#870).
  • TiGLViewer:

    • Improved visual quality of zebra stripes (#974).

Contributors

@MarAlder, @svengoldberg, @joergbrech, @AntonReiswich, @merakulix, @rainman110

Full Changelog: v3.3.0...v3.3.1

TiGL 3.3.0

04 May 11:46

Choose a tag to compare

Version 3.3.0

02/05/2023

  • General changes:

    • Support CPACS 3.3 (#883). The following CPACS 3.3 functionality is not yet supported: stringerFramePosition definition at fuselage section (#915), landing gears (#908), parametric fuselage profiles (#909).
    • Implemented the upcoming CPACS 3.5 feature for modeling ducts. It allows the user to create duct cutouts in wings and fuselages. TiGL was extended to support ducts and duct assemblies for aircraft configurations. It is to mention, that currently wings and fuselages are the only components that enable duct cutouts (#881).
    • Generate doxygen documentation for all classes, not just the API functions (#943).
  • New API functions:

    • New functions ::tiglConfigurationSetWithDuctCutouts and ::tiglConfigurationGetWithDuctCutouts that set and get the flag whether the ducts defined in CPACS shall be removed from the configuration using Boolean operations.
    • New function #::tiglGetCrossSectionArea' that allows cutting either a whole configuration or single parts with a plane and calculating the cross section area. This functionality can be used for the application for Whitcomb's area rule (#763).
  • Fixes:

    • Adapt get_tigl_tixi.sh to properly download the tixi3 package for debian (#884).
    • Export fuselages and wings as a whole and not segmentwise in the CAD export of the unfused configuration (#897).
    • Fix typos (#923, #924, #925).
    • Fix bug concerning the conversion of the internal parametrization of the faces of a wing to contour coordinates (#930).
    • Update CI (#918, #839).
    • Fix a compilation error with gcc 12.2 (#948).
    • Fix bug in ::tiglWingGetSegmentUpperSurfaceAreaTrimmed (#961).
  • TiGLViewer:

    • Implement high dpi screen support (#953).

TiGL 3.2.3

09 Mar 08:29

Choose a tag to compare

Version 3.2.3

09/03/2022

  • Fixes:

    • Disabled check, if wing cells can be trimmed rather than cut, even if they are not defined
      by contour coordinates. This check was put in place for better performance and robustness,
      because with trimmed curves expensive and error-prone boolean operations can be avoided.
      However, the current implementation of the check relies on some hard to tune tolerances and
      led to false positives and thus faulty wing cell geometries (issues #865, #869).
    • Fixed a bug, where the trailing edge of a wing cell could not be defined by referencing a
      spar (issue #864).
    • The class ::CCPACSEnginePosition has been added to the swig interface (issue #858). Without
      this it was previously impossible to access the transformed engine nacelle geometry from Python.

TiGL 3.2.2

17 Nov 15:37
42a76ee

Choose a tag to compare

17/11/2021

  • Highlights / General changes:

    • Added support for canard style flaps. This allows to position the hinge points
      outside of the wing by providing an additional translation vector (issue #816).
  • Fixes:

    • Fixed CPACS versions header not correctly parsed, if the version number contained a patch version (issue #830).
    • Fixed multiple errors that occured during the computation of wing cells (issues #815, #829, #840).
    • Fixed computation of the wing aspect ratio (issue #827).
    • Fixed crashes in TiGL Viewer when displaying control surface devices (issue #851).
    • Improved robustness of export functions. The export now tries to export as much as possible,
      even if one component failed to built (issue #853).
  • Bindings:

    • Added python 3.9 conda packages
    • Fixed loading python bindings with python 3.8 due to a changed DLL loading policy (issue #842).
    • Fixed a crash in the python bindings due to wrong memory handling (issue #823).

TiGL 3.2.1

02 Jul 07:21

Choose a tag to compare

Version 3.2.1

01/07/2021

This is a bugfix release!

  • Fixed function ::tiglWingGetSegmentEtaXsi ignoring the GetPointBehaviour that was introduced in TIGL 3.0.0 (#808 ): Since TiGL 3.0.0, the getPoint functions now use the parametrization of the wing surface geometries instead . This behaviour can be switched back to the old bevahiour using ::tiglWingSetGetPointBehavior. Before fixing now ::tiglWingGetSegmentEtaXsi, the functions always used the old behaviour such that the back and fort computation etaXsi -> point -> etaXsi did not result in the same values.

TiGL 3.2.0

28 May 15:00

Choose a tag to compare

Version 3.2.0

28/05/2021

  • Highlights / General changes:

    • Full support of CPACS 3.2
    • TiGL 3.2 is shipped with OpenCASCADE 7.4.0 and is now compatible with pythonOCC 7.4.0. This includes all TiGL releases and Conda packages.
    • Improved computation speed of wing cell geometries.
    • Implemented cell definition with contour coordinates. This feature will be part of CPACS 3.4.
    • A new curve / curve intersection algorithm. This is used e.g. for the computation of curve network interpolation and was necessary due to a regression in OpenCASCADE 7.4.0. The new algorithm is designed to find all intersections between two curves within a user defined tolerance.
  • New API functions:

    • New function ::tiglWingInterpolateXsi, that generalizes the functions ::tiglWingComponentSegmentGetSegmentIntersection and ::tiglWingComponentSegmentComputeEtaIntersection. Both old functions are now deprecated.
  • Fixes:

    • Fixed fuselage walls transformation that did not respect the fuselage transformation before.
    • Fixed fuselage profiles, that had different positions than y=0 at start or end point.
    • Fixed crash, if first guide curve point is (0,0,0) or last point is (0,1,0).
    • Fixed wrong position of trailing edge device borders, if referenceUID is referring to a segment.
    • Fixed a bug in ::tiglWingGetUpperPoint and ::tiglWingGetLowerPoint, if the leading edge has zero size.
  • Python Bindings:

    • The tigl3 Conda packages depend not on pythonOCC-core 7.4.0. If you plan to migrate your code, please notice that pythonOCC and TiGL don't use OpenCASCADE handles anymore. For more insights, please see here: tpaviot/pythonocc-core#583