github DLR-SC/tigl v3.5.0
TiGL 3.5.0

3 hours ago

This release adds the system definition introduced in CPACS 3.5 and direct NACA4 profile support
in CPACS, geometry/mass-property evaluation for fuselage decks, and leading edge devices (LED), on
top of a large set of TiGLCreator usability fixes and a build-system migration to conda-forge
(adding Apple Silicon support). TiGL 3.5.0 is conform with CPACS 3.5.1.

  • General changes

    • Update the internal CPACS schema to version 3.5.1 (#1028).
    • Add the new system definition introduced in CPACS v3.5.
    • Add leading edge devices (LED) to TiGL and TiGLCreator (#1101).
    • Add an alternative wing airfoil parametrization that allows specifying NACA4 codes (with trailing edge thickness) directly in CPACS, replacing the previous workaround of writing sampled NACA profiles as point lists and improving surface quality (#1293).
    • Add geometry and mass-property evaluation for fuselage decks (#1298, CPACS#859).
    • Ducts are now also cut out of fuel tank vessels; a duct assembly may exclude a tank by vessel or fuel tank uID (#1416).
    • TiGL can now approximate profile point lists while still interpolating a user-defined subset of points (#1276).
    • CPACS export now uses a more meaningful marker for mirrored objects' uIDs (#1289).
    • Improved flap rendering performance by cutting shapes sequentially instead of fusing them all before cutting (#1265).
  • New API functions

    • Add tiglWingInterpolateExtrapolateXsi to the API, extending tiglWingInterpolateXsi so the intersection point may lie outside the two defining points (#1412).
    • Add tiglGeometryRepresentationToString to the API, needed for the systems implementation (#1283)
    • Add tiglGetTrailingEdgeDeviceUID and tiglGetLeadingEdgeDeviceUID to obtain a UID for a given control surface index.
  • TiGLCreator

    • Add a "Display Options" tab to change draw options (e.g. flaps) per component; the configuration stays visible while switching draw options (#1270, #1279).
    • Bi-directional selection of shapes between the 3D viewer and the CPACS tree (#1275).
    • Add a grid resolution setting; grid origin labels now update dynamically with the selected grid plane (XY/XZ/YZ), which is persisted across sessions (#1269).
    • Draw option menus now update when adding new wings or fuselages.
    • Use NACA and standard profiles in the TiGLCreator templates (#1367).
    • Add user-defined spotlights (#1245).
    • Add an option to display the control point net of a component's faces, for debugging (#1260).
    • Disable the "Standardize" menu option until the underlying algorithm is reliable (#1336).
    • Scripting console: add a Color class and setObjectsColor/setObjectsColorRGB to set object colors without a native QColor object (#1222), and app.scene.selectShape to select a shape by its CPACS uID (#1316).
    • app.openFile now accepts a configuration uid (#1309).
    • Make all shapes non-transparent by default again (#1258).
    • Add undo/redo buttons to the toolbar (#1123).
    • Add a scrollbar to the CPACS editor widget so editing works on smaller screens (#1228).
  • Build System

    • Migrated build dependencies from the dlr-sc conda channel to conda-forge, bumping OpenCASCADE 7.6.2 → 7.9.3 and adding osx-arm64 (Apple Silicon) as a supported platform (#1286, #1273, #964).
    • Introduce pixi as a helper to install dependencies and run common development commands.
    • Added python tests to CI
    • Vendored pythonocc-core's SWIG interface sources and the MATLAB SDK headers (no conda-forge equivalents yet) as git submodules, skipped automatically where unavailable (e.g. the MATLAB SDK on Apple Silicon).
    • Include the external CPACS schema tool in the repo and CI to validate an edited CPACS XSD directly (#1420).
  • Fixes

    • Fix TiGLCreator crashing when changing a wing's symmetry plane after undoing a previous symmetry-plane change, and stop CTiglWingHelper::SetTipUid from logging spurious "Unexpected case!" warnings (#1432).
    • Fix mirrored geometry not appearing after enabling a component's symmetry until the file was closed and reopened (#1432).
    • Fix GetSweep/GetDihedral flipping to their complement on wings with exactly 45° dihedral/sweep, due to a platform-dependent rounding tie-break in the major-axis heuristic.
    • Fix several broken fuselage structure Python bindings, including CCPACSFuselageStructure.get_skin() and get_geometry() on skin segments and cargo doors (#1037).
    • Add missing ::generated::CPACSFuselages Python bindings, which had hidden fuselage getters/setters on ::CCPACSFuselage (#1207).
    • Fix too small minimum control point count in the B-spline profile approximation check (#1422).
    • Aircraft fusing no longer fails when a system or deck component (e.g. a lavatory) has no geometry defined; such components now simply contribute no shape. Also fixed a related TiGLCreator crash when triangulating the fused aircraft, and that draw option now consistently shows the symmetries/far-field dialog (#1388).
    • Fix fused CAD export (IGES/STEP/BRep) not resolving intersections between sibling components outside a parent-child relationship (e.g. two tailplanes both attached to the fuselage but also intersecting each other) (#939).
    • Fix BuildWireRectangle throwing on the "circle" limit of a standard rectangle profile.
    • CCPACSPositionings::CreatePositioning now sets a CPACS-conform name (#1378).
    • Fix crash in CTiglWingSectionElement::GetWire when the parent component is a pylon rather than a wing (#1371).
    • Fix error when displaying an aircraft with an engine but no nacelle, or a pylon without segments; these now return null geometry instead of throwing (#779).
    • Fix many CMake and compiler warnings (#1307).
    • CCPACSAircraftModel::GetConfiguration/CCPACSRotorcraftModel::GetConfiguration now throw a CTiglError instead of returning a null reference (#1426).
    • TiGLCreator: Fix incoherent selection between the 3D viewer and the CPACS tree for components without a dedicated editor (e.g. engines and pylons), and a related crash when opening "Display Options" after such a failed selection (#1419).
    • TiGLCreator: Fix selection being off by one click (#1395).
    • TiGLCreator: Fix crash when computing/displaying geometry that throws an OpenCASCADE exception instead of a tigl::CTiglError; an error dialog is shown instead (#1382).
    • TiGLCreator: Fix crash when selecting objects with malformed CPACS geometry; invalid objects are now marked with a warning icon instead (#1375).
    • TiGLCreator: Fix laggy fuselage selection in the CPACS tree; only the wireframe is highlighted now instead of each section individually, also improving performance (#1275).
    • TiGLCreator: Fix wrong behaviour of the wing sweep/dihedral chord-percentage spinbox (#1327).
    • TiGLCreator: Fix hard crash for invalid XML files (#1322).
    • TiGLCreator: Update the modificator widget's references after undo/redo (#1240).
    • TiGLCreator: Fix wrong scaling of the application when the Windows display scale is set to 150% (#1238).
    • TiGLCreator: Fix incorrect invalidation logic of elements, sections and fuselages/wings that could produce invalid geometries for some positioning/transformation combinations (#1209).
    • TiGLCreator: Fix non-unique default names for new fuselages/wings and non-unique section names (#1206, #1213).
    • TiGLCreator: Remove a misleading warning about an airfoil that cannot be added when it already exists (#1234).
    • TiGLCreator: Correct the "New File"/"Open File" icons and add a toolbar button (#1210).
    • TiGLCreator: Fix a Qt bug where hovering over the color chooser dialog selected a color (#1217).
    • TiGLCreator: Auto-append the file extension when saving a screenshot if missing, with a clearer error message (#1296).
    • TiGLCreator: Fix an unhandled exception triggered by the UpperLower wire in CTiglWingProfileNACA (#1366).

New Contributors

Full Changelog: v3.4.1...v3.5.0

Don't miss a new tigl release

NewReleases is sending notifications on new releases.