Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implemented Fuselage Profile Type: Rectangle (Issue #909) #1005

Merged
merged 58 commits into from
Sep 2, 2024
Merged

Conversation

merakulix
Copy link
Contributor

Description

Implementing the rectangle profile type as an element of the CPACS standard profile type covers one part of issue #909 on parametric profile types.
This approach is based on point lists (std::vector<gp_Pnt>) for approximation of curves, since the lofting algorithms don't support rational B-Splines yet.

Changes in tiglcommonfunctions.* :

Added new global functions:
- BuildWireRectangle(... , ): Builds the wire which is needed to build profiles. Uses these newly implemented functions:
- ApproximateArcOfCircleToRationalBSpline(... , ): Approximation to a rational B-Spline via point list was needed, since the lofting algorithm doesn't support rational B-Splines yet
- Linspace(... , ): Useful function when building point lists

Changes in CCPACSFuselageProfile.* :

Added new member function

  • BuildWiresRectangle(...,): - uses buildWireRactangle(..,) from tiglcommonfunctions.*

Changed member function:

  • BuildWires(...): Added conditional statement to choose right method for building the wire, depending on profile type

How Has This Been Tested?

Added Unit Tests:

  • testFuselageStandardProfileRectangle.cpp:
    • added testfiles that define a fuselage with mixed profiles:
      • simpletest_standard_profile_rectangle_circle_guides.cpacs.xml
      • simpletest_standard_profile_rectangle_circle_guides.cpacs.xml

a circle profile with kinks and a rectangle profile with and without corner radius, as shown in the image below

grafik
grafik

circle profile, rectangle profile with and without corner radius given, and guide curves, as shown in the images below

grafik
grafik

Checklist:

  • [x ] A test for the new functionality was added.
  • [x ] All tests run without failure.
  • [x ] The new code complies with the TiGL style guide.
  • New classes have been added to the Python interface.
  • API changes were documented properly in tigl.h.

@merakulix
Copy link
Contributor Author

I updated the code to generate the profiles using the CFunctionToBSpline function. On my local machine unit-and integration tests ran successful.

Copy link
Contributor

@joergbrech joergbrech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @merakulix! This looks really good! Just one minor cosmetic change and this is good to merge

src/common/tiglcommonfunctions.cpp Outdated Show resolved Hide resolved
@joergbrech joergbrech merged commit f6f1e4c into master Sep 2, 2024
17 checks passed
@joergbrech joergbrech deleted the rectangle branch September 2, 2024 10:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants