Releases: DLR-SC/tigl
TiGL 3.3.1
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
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).
- New functions
-
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
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.
- Disabled check, if wing cells can be trimmed rather than cut, even if they are not defined
TiGL 3.2.2
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).
- Added support for canard style flaps. This allows to position the hinge points
-
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:
TiGL 3.2.1
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
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.
- New function
-
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
TiGL 3.1.0
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
andnone
. The symmetry flaginherit
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 typenone
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 tocontrol_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
CPACS Creator 0.1
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
TiGL 3.0.0
-
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
andsetLookAtPosition
.
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
TiGL 3.0.0-rc2
-
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
- Removed deprectated intersection functions. These include
-
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
andsetLookAtPosition
.
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