/AeroFoil

AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files

Primary LanguagePythonGNU Lesser General Public License v2.1LGPL-2.1

AeroFoil Logo
AeroFoil - a FreeCAD Macro

made-with-python License: AGPL v3 GitHub release (latest by date) Code style: black
Code Climate maintainability Build Status Codecov
Total alerts Language grade: Python


'AeroFoil' is a user-created macro to be used within the FreeCAD application. AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, as well as imported DAT or CSV files.



Key Features

  • Airfoil points refinement
  • Multiple airfoil copy generation
  • 2D curves and planar face output
  • DWire/PolyLine and BSpline output
  • Sketcher workbench and Draft workbench output
  • Fully constrained sketches in Sketcher workbench
  • Split (upper and lower) airfoil curves generation
  • Ready-made NACA 4-digit and 5-digit solvers
  • Symmetric and asymmetric curve functions parser
  • DAT text file and CSV spreadsheet data parser
  • Chord length input in mm, cm, m, in., ft, and yards


Installation

In the FreeCAD software, AeroFoil can be downloaded directly using the in-built Addon Manager. You may need to download GitPython (read the relevant documentation) to automatically download the associated folder (and its accompanying files); else, resort to manual download and extraction of the AeroFoil.zip file.
AeroFoil can also be obtained directly from the FreeCAD Macros Github Repository.

In Linux, AeroFoil can be installed manually, similar to Windows installation, or by using the command terminal and its relevant commands as mentioned in the INSTALL file.

By default, the Linux command terminal can be launched by pressing the following keyboard keys simultaneously :

Control + Alt + T

In Windows, AeroFoil can be installed with the help of the following two steps :-

  1. Download the AeroFoil.zip file.
  2. Extract the ZIP file's contents into the FreeCAD User Macro directory location.

By default, the FreeCAD User Macro directory should be located at :

~/.FreeCAD/Macro


Usage

AeroFoil can be loaded by performing the following steps :-

  1. Launch the FreeCAD application.
  2. Click on the Macro menu from the Menu Bar.
  3. Click on Macros ... from the Macro sub-menus.
  4. Click on the User macros tab in the pop-up dialog box.
  5. Select AeroFoil.FCMacro.
  6. Click on the Execute button.

Once, the AeroFoil macro has been loaded, follow the instructions in the respective dialog boxes, fill in the relevant inputs, and navigate accordingly. In case of error or warning, you will automatically be notified of the same. In case you are notified to report an unexpected error, communicate the error by mentioning the FreeCAD version, tracing the steps taken, and mentioning whether (and how much) or not any ouput was generated.

Notes
(1) Performing the macro operation with custom points and refinement produces no visible changes.
(2) The AeroFoil object properties are only visible on the FreeCAD software version 0.19. On older versions, you will be shown a warning on the console. This warning will not affect the output.

For more information on the AeroFoil macro, refer to its FreeCAD Macro Wiki Page or its discussion page on the FreeCAD Forum.


Future works

  • Fix Bugs (for FreeCAD v0.18 and v0.19)
  • Attempt, if possible, a complete CodeCov Coverage
  • Get the LGTM Alerts to 0, and Code Quality to A (preferably, to A+)
  • Implement automatic parsing of files
  • Add the 'search airfoil database' feature
  • Add leading edge refinement (0c to 0.25c)
  • Add the AeroFoil icon to the dialog boxes
  • Add the AeroFoil icon to objects in Tree View
  • Convert from Part :: Feature object to Part :: FeaturePython object
  • Add a preview of the data points and a small SVG post file upload
  • Separate the 'AeroFoil' and 'AeroFoilDialog' classes into two files
  • Create a Python Console Run Command


Links

[1] Airfoil Tools contains about 1,638 different airfoils.
[2] UIUC Airfoil Coordinates Database contains nearly 1,600 different airfoils.


License

AeroFoil is made available under the GNU Lesser General Public License Version 2.1.