Skip to content

Commit

Permalink
preparing v3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jxjo committed Jan 29, 2025
1 parent fcf3ca5 commit 4de2bb8
Showing 1 changed file with 20 additions and 17 deletions.
37 changes: 20 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
![AE](images/AirfoilEditor_logo.png "Screenshot of the AirfoilEditor ")

# v3.0 <sup>beta 2</sup>
# v3.0


The AirfoilEditor is on one hand a fast airfoil viewer and on the other hand a powerful editor to modify the geometry of an airfoil. Focusing on an airfoils geometric and aerodynamic characteristics the principle of this app is: Don't do too much but do it really well.
The **AirfoilEditor** is on one hand a fast airfoil viewer and on the other hand a powerful editor to modify the geometry of an airfoil. Focusing on an airfoils geometric and aerodynamic characteristics the principle of this app is: Don't do too much but do it really well.


Main features:

* View an airfoil and browse through the airfoils of its subdirectory
* Analyze the curvature of the airfoil surface
* **! New !** View polars of an airfoil
* Repanel and normalize the airfoil
* Modify the geometry parameters thickness, camber, its high points, trailing edge gap
* Create a Bezier curve based 'copy' of an airfoil
* Blend an airfoil with another airfoil
* :new: v3: View polars of an airfoil based on xfoil polar generation

The driver for this app was to overcome some of the artefacts using xfoils geometry routines (for example used in Xflr5) when creating geometric 'high quality' airfoils.

Expand All @@ -26,7 +26,7 @@ An attempt was made to create a self-explanatory app that invites to play and tr

## Geometry: Basic Concepts

The `AirfoilEditor` implements different "strategies" to represent an airfoils geometry:
The **AirfoilEditor** implements different "strategies" to represent an airfoils geometry:

- 'Linear interpolation' - Based on the point coordinates of the airfoils '.dat' file, intermediate points are evaluated with a simple linear interpolation. This is used for fast preview and basic operations.
- 'Cubic spline interpolation' - A cubic spline is built based on the airfoils point coordinates. The spline allows to evaluate intermediate points with high precision.
Expand All @@ -42,7 +42,7 @@ The same approach is applied to move the highpoint of the upper and lower side o


![Modify](images/Modify.png "Screenshot of Modifying Airfoil")
<sub>The 'Edit Mode' of the `AirfoilEditor` to change the geometry either by value or by moving the mouse helper points. Each change creates a new 'Design' variant which allows to browse through the changes made in this session. </sub>
<sub>The 'Edit Mode' of the **AirfoilEditor** to change the geometry either by value or by moving the mouse helper points. Each change creates a new 'Design' variant which allows to browse through the changes made in this session. </sub>
<br></br>

Repaneling is based on a modified cosine distribution of the airfoil points on the arc of the spline. The bunching of the coordinate points at leading and trailing edge can be adjusted.
Expand All @@ -51,19 +51,19 @@ An airfoil may be 'blended' with another airfoil to create a new airfoil that ha

### Curvature

On of the major views on an airfoil in the `AirfoilEditor` is the curvature of the airfoils surface. It allows a quick assessment of the surface quality and to detect artefacts like a 'spoiler' at the trailing edge which is quite common.
On of the major views on an airfoil in the **AirfoilEditor** is the curvature of the airfoils surface. It allows a quick assessment of the surface quality and to detect artefacts like a 'spoiler' at the trailing edge which is quite common.


![Curvature](images/Curvature.png "Screenshot of Curvature")
<sub>The additional 'Curvature View' on the airfoil indicating reversals of the curvature. </sub>

> [!TIP]
Have a look at the [documentation of Xoptfoil2](https://jxjo.github.io/Xoptfoil2/docs/geometry) with more information about an airfoils geometry.
Have a look at the [documentation of Xoptfoil2](https://jxjo.github.io/Xoptfoil2/docs/geometry) for more information about an airfoils geometry.


### Bezier based airfoils

Beside '.dat'-files the Airfoil Editor seamlessly displays '.bez'-Files defining an Bezier based airfoil.
Beside `.dat` files the **AirfoilEditor** seamlessly displays `.bez` files defining a Bezier based airfoil.

![Bezier](images/Bezier.png "Screenshot of Bezier curve definition")

Expand Down Expand Up @@ -94,7 +94,7 @@ The Airfoil Editor allows to visualize the Hicks-Henne functions which were appl

## Airfoil Polars

To generate the polars of an airfoil the `AirfoilEditor` uses the `Worker` tool of the [Xoptfoil2 project](https://jxjo.github.io/Xoptfoil2). On of the `Worker` actions is the multi-threaded creation of a polar set using Xfoil.
To generate the polars of an airfoil the **AirfoilEditor** uses the **Worker** tool of the [Xoptfoil2 project](https://jxjo.github.io/Xoptfoil2). On of the `Worker` actions is the multi-threaded creation of a polar set using Xfoil.

Within the app a polar is generated 'lazy' - meaning at the moment when the polar should be displayed - and asynchronous in a backround task. Each polar is stored in a single file having the Xfoil polar format. This approach allows to step through airfoils or the designs of an airfoil and present the polars without further user interaction.

Expand All @@ -117,15 +117,15 @@ The combination of the 'Edit Mode' and automated polar generation allows a playf

## Short Introduction

Have a look at this little video showing the main functionality of the AirfoilEditor v2:
Have a look at this little video showing the main functionality of the **AirfoilEditor** v2:

[![Watch the video](https://img.youtube.com/vi/gkgPbVkOAcU/maxresdefault.jpg)](https://youtu.be/gkgPbVkOAcU)



## Software Aspects

The `AirfoilEditor` is developed in [Python](https://www.python.org/) using [PyQt6](https://pypi.org/project/PyQt6/) which wraps and extends the [Qt UI framework](https://www.qt.io/product/framework) and [PyQtGraph](https://www.pyqtgraph.org/) which wraps the QT Graphics framework.
The **AirfoilEditor** is developed in [Python](https://www.python.org/) using [PyQt6](https://pypi.org/project/PyQt6/) which wraps and extends the [Qt UI framework](https://www.qt.io/product/framework) and [PyQtGraph](https://www.pyqtgraph.org/) which wraps the QT Graphics framework.

The main building blocks of the App are
* Model - containing all geometry and math helper routines of an airfoil. The model is independent of the UI. The different modules are kept in [modules/model](modules/model).
Expand All @@ -140,24 +140,27 @@ The airfoil model and the base classes also form the core of other Apps like the

## Install

A pre-build Windows App including `Worker.exe`is available in the releases section https://github.com/jxjo/AirfoilEditor/releases
A pre-build Windows App including `Worker.exe` for polar generation is available in the [releases section](https://github.com/jxjo/AirfoilEditor/releases)

or

Download python sources from https://github.com/jxjo/AirfoilEditor/releases or clone the repository and install
Download python sources from [releases](https://github.com/jxjo/AirfoilEditor/releases) or clone the repository and install

```
pip3 install pyqt6
pip3 install numpy
pip3 install pyqtgraph
pip3 install termcolor
```

Linux users who want to use polar generation have to compile `Worker.exe` in the [ Xoptfoil2 project](https://jxjo.github.io/Xoptfoil2)
Linux users who want to use polar generation have to compile the Worker tool of the [ Xoptfoil2 project](https://jxjo.github.io/Xoptfoil2) and copy the program either into `/usr/local/bin` or into the sub folder `./assets/linux` of the AirfoilEditor. In the second case the execute permission has to be set with `chmod +x Worker`.

> [!TIP]
For Windows: Use the "Open with ..." Explorer command to connect the 'AirfoilEditor.exe' to file extension '.dat'. Later a double click on an airfoil .dat-file will open the AirfoilEditor and you can browse through the files in the directory (if you are using the Python version, create a little batch job to open the .dat file)
For Windows: Use the "Open with ..." Explorer command to connect the `AirfoilEditor.exe` to the file extension `.dat`. Later a double click on an airfoil dat-file will open the **AirfoilEditor** and you can browse through the files in the directory (if you are using the Python version, create a little batch job to open an airfoils dat-file)

---

Have fun :wink:

[Jochen](mailto:[email protected])

Have fun!

0 comments on commit 4de2bb8

Please sign in to comment.