-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
20 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,20 @@ | ||
 | ||
|
||
# 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. | ||
|
||
|
@@ -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. | ||
|
@@ -42,7 +42,7 @@ The same approach is applied to move the highpoint of the upper and lower side o | |
|
||
|
||
 | ||
<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. | ||
|
@@ -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. | ||
|
||
|
||
 | ||
<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. | ||
|
||
 | ||
|
||
|
@@ -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. | ||
|
||
|
@@ -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: | ||
|
||
[](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). | ||
|
@@ -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! |