Tigl Versions Save

The TiGL Geometry Library to process aircraft geometries in pre-design.

v3.3.1

2 months ago

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: https://github.com/DLR-SC/tigl/compare/v3.3.0...v3.3.1

v3.3.0

1 year ago

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).

v3.2.3

2 years ago

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.

v3.2.2

2 years ago

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).

v3.2.1

2 years ago

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.

v3.2.0

2 years ago

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: https://github.com/tpaviot/pythonocc-core/pull/583

v3.1.0

3 years ago

Version 3.1.0

27/07/2020

  • General changes:

    • Full support of CPACS 3.1
    • Backport support for control surface devices from TiGL 2. It is now possible to manipulate trailing edge devices with TiGL 3.1 using the TiGL Viewer, the API or the language bindings.
    • Added support for fuselage walls
    • Support for fuselage profiles with kinks.
    • Added support for new symmetry flags inherit and none. The symmetry flag inherit causes a geometric component to inherit the symmetry flag from its parent geometry. This was and still is the default behavior in TiGL. The new symmetry type none allows the addition of components to mirrored geometries without respecting the symmetry of the parent.
    • Substantially improve performance of ::tiglCheckPointInside.
    • Reduce complexity of the fuselage geometry: The profiles of the fuselage are reparametrized to create simpler a B-spline surface. This will improve robustness of boolean operations and increase the general performance at the cost of a small error in the geometry creation, that should be negligable in most cases.
  • New API functions:

    • Added new api function ::tiglComponentGetType

    • For control devices, the deflection value has been renamed to control_parameter. Therefore the functions

      • ::tiglControlSurfaceGetMinimumDeflection
      • ::tiglControlSurfaceGetMaximumDeflection
      • ::tiglControlSurfaceGetDeflection
      • ::tiglControlSurfaceSetDeflection

      are marked as deprecated. Please use the new functions

      • ::tiglControlSurfaceGetMinimumControlParameter
      • ::tiglControlSurfaceGetMaximumControlParameter
      • ::tiglControlSurfaceGetControlParameter
      • ::tiglControlSurfaceSetControlParameter

      instead.

  • Fixes:

    • Fixes compilation errors with MinGW and VS 2019
    • Fixes compilation errors with qt4
    • Fixes compilation errors with OpenCascade 7.4.0 and OCCT 7.2
    • Several fixes to internal python bindings
    • Several fixes to control devices code.
    • Fixes invalid segment meta data in VTK export
    • fixing problem in ReadCPACS when using rotors (invalidation during read of segments caused error in lazy creation of attached rotor blades)
  • TiGLViewer:

    • Back-ported control surfaces to TiGL Viewer and improved design of flap dialog.
    • Added option to draw face boundaries in TiGl Viewer

cpacscreator-v0.1.1

4 years ago

We are happy to show you the first pre-release of CPACS Creator 0.1.

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.1/index.html

v3.0.0

4 years ago
  • General Changes:

    • CPACS 3 compatibility, including the new component-segment coordinate-system definition. The new cpacs definition of the wing structure allows more precise modelling of ribs and spars.

    • Guide curve support for wings and fuselages for high-fidelity surface modeling according to the CPACS 3 defintion.

    • Note: TiGL 3 does not yet contain the control surface device modeling. This will be included into TiGL 3.1.

    • New modeling of nacelles.

    • New modeling of pylons.

    • New modeling of fuselage structure elements like doors, beams, frames and pressure bulkheads.

    • Automated creation of CPACS reading and writing routines. This allows much better vality checks of the CPACS document.

    • The "GetPoint" function of wings / fuselages operate now on the actual wing/fuselage shape (e.g. in case of guide curves). Before, these function operated on the linear loft, which is different from the actual shape. To switch back to the old behavior, the new function ::tiglWingSetGetPointBehavior and ::tiglFuselageSetGetPointBehavior must be used. Note: Using the actual smooth wing shape, ::tiglWingGetUpperPoint and ::tiglWingGetLowerPoint do not use the wing chord surface anymore as a reference coordinate system, but relies on the wing surface parametrization. This change was required, since there would be no other way to retrieve points around the leading edge, that is on front of the trapezoidal chord surface.

    • Improved speed of ::tiglFuselageGetPoint function. Also, the paramter xsi is now interpreted as the relative curve parameter instead of the relative circumference.

    • Improved robustness of fuselage loft computation.

    • The TIGL library was renamed to tigl3. The TIGLViewer was renamed to tiglviewer-3.

    • The windows builds are now using the Visual C++ 2015 Toolchain.

    • TiGL now requires a C++ 11 capable compiler. Minimum required compilers are gcc 4.8 or Visual C++ 2015.

  • New API functions:

    • ::tiglWingComponentSegmentPointGetEtaXsi computes the eta/xsi coordinates of a point on the component segment.
    • ::tiglIntersectWithPlaneSegment computes the intersection of a CPACS shape (e.g. wing) with a plane of finite size.
    • ::tiglGetCurveIntersection to compute the intersection of two curves.
    • ::tiglGetCurveIntersectionPoint to query the intersection point(s) computed by ::tiglGetCurveIntersection.
    • ::tiglGetCurveIntersectionCount returns the number of intersection points computed by ::tiglGetCurveIntersection.
    • ::tiglGetCurveParameter projects a point onto a curve and returns the curve parameter of the point.
    • ::tiglFuselageGetSectionCenter computes the center of a fuselage section defined by its eta coordinate.
    • ::tiglFuselageGetCrossSectionArea computes the area of a fuselage section.
    • ::tiglFuselageGetCenterLineLength computes the length of the centerline of the fuselage.
    • ::tiglCheckPointInside checks, whether a point lies inside some object (defined by its uid).
    • ::tiglExportFuselageBREPByUID and ::tiglExportWingBREPByUID
    • ::tiglSetExportOptions sets exports-specific options
    • ::tiglFuselageSetGetPointBehavior and ::tiglWingSetGetPointBehavior to adjust, whether the get point functions should return linear loft values or points on the actual shape.
    • ::tiglSetDebugDataDirectory specifies the directory of the crashdump data.
  • Changed API:

    • Removed deprectated intersection functions. These include
    • tiglComponentIntersectionLineCount
    • tiglComponentIntersectionPoint
    • tiglComponentIntersectionPoints
    • Removed function tiglExportVTKSetOptions. This is now replaced by ::tiglSetExportOptions
    • tiglWingGetWettedArea now returns surface area of the wing, if the wing has no parent. Previously this caused a crash.
  • Fixes:

    • TiGL Viewer: Fixed missing fonts on macOS
  • Language bindings:

    • New python bindings allow to access the whole C++ API of TiGL. This bindings can be installed via conda.
    • Python: the tiglwrapper.py module was renamed to tigl3wrapper.py. The Tigl object is renamed to Tigl3.
    • Java: the tigl package moved from de.dlr.sc.tigl to de.dlr.sc.tigl3
  • TiGL Viewer:

    • Display of reflection lines to inspect surface quality.
    • Display of textured surfaces.
    • Angle of perspective can be adjusted using the scripting API with setCameraPosition and setLookAtPosition. This allows e.g. to create videos of the geometry.
    • Option to display face names.
    • Number of U and V iso-lines can be adjusted independently.
    • New design

v3.0.0-rc2

4 years ago
  • General Changes:

    • CPACS 3 compatibility, including the new component-segment coordinate-system definition. The new cpacs definition of the wing structure allows more precise modelling of ribs and spars.

    • Guide curve support for wings and fuselages for high-fidelity surface modeling according to the CPACS 3 defintion.

    • Note: TiGL 3 does not yet contain the control surface device modeling. This will be included into TiGL 3.1.

    • New modeling of nacelles.

    • New modeling of pylons.

    • New modeling of fuselage structure elements like doors, beams, frames and pressure bulkheads.

    • Automated creation of CPACS reading and writing routines. This allows much better vality checks of the CPACS document.

    • The "GetPoint" function of wings / fuselages operate now on the actual wing/fuselage shape (e.g. in case of guide curves). Before, these function operated on the linear loft, which is different from the actual shape. To be backwards compatible, ::tiglWingGetUpperPoint, ::tiglWingGetLowerPoint, and ::tiglFuselageGetPoint still use the linear loft by default. If the actual smooth surface is desired, the new function ::tiglWingSetGetPointBehavior and ::tiglFuselageSetGetPointBehavior must be used to enable smooth lofts. Note: Using the actual smooth wing shape, ::tiglWingGetUpperPoint and ::tiglWingGetLowerPoint do not use the wing chord surface anymore as a reference coordinate system, but relies on the wing surface parametrization. This change was required, since there would be no other way to retrieve points around the leading edge, that is on front of the trapezoidal chord surface.

    • Improved speed of ::tiglFuselageGetPoint function. Also, the paramter xsi is now interpreted as the relative curve parameter instead of the relative circumference.

    • Improved robustness of fuselage loft computation.

    • The TIGL library was renamed to tigl3. The TIGLViewer was renamed to tiglviewer-3.

    • The windows builds are now using the Visual C++ 2015 Toolchain.

    • TiGL now requires a C++ 11 capable compiler. Minimum required compilers are gcc 4.8 or Visual C++ 2015.

  • New API functions:

    • ::tiglWingComponentSegmentPointGetEtaXsi computes the eta/xsi coordinates of a point on the component segment.
    • ::tiglIntersectWithPlaneSegment computes the intersection of a CPACS shape (e.g. wing) with a plane of finite size.
    • ::tiglGetCurveIntersection to compute the intersection of two curves.
    • ::tiglGetCurveIntersectionPoint to query the intersection point(s) computed by ::tiglGetCurveIntersection.
    • ::tiglGetCurveIntersectionCount returns the number of intersection points computed by ::tiglGetCurveIntersection.
    • ::tiglGetCurveParameter projects a point onto a curve and returns the curve parameter of the point.
    • ::tiglFuselageGetSectionCenter computes the center of a fuselage section defined by its eta coordinate.
    • ::tiglFuselageGetCrossSectionArea computes the area of a fuselage section.
    • ::tiglFuselageGetCenterLineLength computes the length of the centerline of the fuselage.
    • ::tiglCheckPointInside checks, whether a point lies inside some object (defined by its uid).
    • ::tiglExportFuselageBREPByUID and ::tiglExportWingBREPByUID
    • ::tiglSetExportOptions sets exports-specific options
    • ::tiglFuselageSetGetPointBehavior and ::tiglWingSetGetPointBehavior to adjust, whether the get point functions should return linear loft values or points on the actual shape.
  • Changed API:

    • Removed deprectated intersection functions. These include
      • tiglComponentIntersectionLineCount
      • tiglComponentIntersectionPoint
      • tiglComponentIntersectionPoints
    • Removed function tiglExportVTKSetOptions. This is now replaced by ::tiglSetExportOptions
  • Language bindings:

    • New python bindings allow to access the whole C++ API of TiGL. This bindings can be installed via conda.
    • Python: the tiglwrapper.py module was renamed to tigl3wrapper.py. The Tigl object is renamed to Tigl3.
    • Java: the tigl package moved from de.dlr.sc.tigl to de.dlr.sc.tigl3
  • TiGL Viewer:

    • Display of reflection lines to inspect surface quality.
    • Display of textured surfaces.
    • Angle of perspective can be adjusted using the scripting API with setCameraPosition and setLookAtPosition. This allows e.g. to create videos of the geometry.
    • Option to display face names.
    • Number of U and V iso-lines can be adjusted independently.
    • New design