tigl icon indicating copy to clipboard operation
tigl copied to clipboard

Cross-section of fuselages segments with guide curves not interpolated correctly.

Open LucasKugler opened this issue 1 year ago • 5 comments

I have noticed that, when generating fuselages with guide curves, certain sections show a strange behaviour: instead of keeping a somewhat circular or ovoid shape like the sections that are being interpolated, the cross-section becomes almost diamond shaped, i.e. the faces between the guide curves get flattened.

This happens only when there is a large difference in size between the sections, and gets stronger when the size difference increases. In turn, large size differences are not a problem if there is no guide curve.

It would be nice if this could be fixed, as the models look much cleaner with the guide curves, and it avoids to clutter the cpacs file with dozens of sections. But right now the surfaces don't look right.

Screenshots

Screenshot 2023-12-19 093541 Screenshot 2023-12-19 093733

LucasKugler avatar Dec 19 '23 09:12 LucasKugler

💐 Thanks for opening your first issue! Note that this is an artifact of the Coons patch algorithm which is still used to generate CPACS geometries from curve networks.

That being said, I don't know why the Coons patch algorithm behaves this way and there is a good chance that the Gordon surface algorithm as an alternative might resolve the issue.

Now that being said examining what happens in the Coons patch algorithm and/or fully migrating to Gordon surfaces will take some time and we currently don't have the capacity for it.

In the meantime, if you could provide a minimal reproducible example, it could help us speed up the process and I might be able to help with a workaround in python (that is a script that extracts the curve network and re-generates the surface with the Gordon algorithm)

joergbrech avatar Dec 19 '23 09:12 joergbrech

Thanks for the feedback! I forgot to mention that the CPACS example file simpleAircraft exhibits this behaviour. I have also attached an additional example. tigl_issue#985_example.zip

LucasKugler avatar Dec 19 '23 09:12 LucasKugler

The Gordon surface algorithm creates a "better looking" loft:

tigl_issue_985_gordon tigl_issue_985_gordon2

The workaround using a python script I mentioned currently only works for wings and not fuselages due to #986.

joergbrech avatar Dec 20 '23 10:12 joergbrech

Much better indeed! That's the output I would expect 👍 So if I understand correctly, the workaround is dependent on #986 being fixed first ?

LucasKugler avatar Dec 20 '23 10:12 LucasKugler

Yes: The workaround I had in mind was to use the internal python bindings of tigl to extract the section and guide curve wires of the fuselage and then use them as input to the gordon surface algorithm to create the fuselage shell. The guide curve wires are stored in the class CCPACSFuselageSegments which is unfortunately not exposed as part of the python bindings.

joergbrech avatar Dec 20 '23 10:12 joergbrech