JPAD is a Java software library containing classes and utility functions that can be used to build software systems.
The typical user of JPAD is the aircraft designer, one who is interested in aerodynamic or performance predictions and in parametric studies. The principal focus of the library is the overall aircraft model, conceived as a set of interconnected and parametrized submodels: the wing and its variants (horizontal tail, vertical tail, canard), the fuselage, nacelles, the propulsion system.
JPAD comes with a set of modules, i.e. interdependent projects. These include:
JPADConfigs
JPADCore_v2
JPADCAD
JPADCommander
JPADSandbox_v2
JPADCADSandbox
The modules JPADSandbox_v2
and JPADCADSandbox
are used for testing and development of new features. Additional smaller projects and folders are present in the repository, but they are temporary and can be discarded. A major revision of the repository folders is under consideration.
See also this wiki page.
Caveat: JPAD is under heavy development and is about to reach a beta state. The codebase is provided here because we believe in the open source philosophy. Be advised, the whole repository is approximately 10 GiB. In future all the unnecessary files will be stripped off in order to reduce the codebase footprint.
Caveat: Some features of JPAD depend upon a couple of native libraries that have been tested only for the Windows 64-bit platform. Hence, we provide instructions for Windows users. A Linux version of JPAD will be available once the library is declared stable and feature complete (release candidate 1.0).
Download and install:
- Java SE Development Kit 8 (8u161 for Windows x64, as of January 2018)
- Git bash for Windows
- Eclipse IDE (Oxygen, as of January 2018)
You can use a Git bash shell to clone the repository. Open the shell, establish a path where you want to download the files, e.g. C:\Users\John\Dev
. At the shell prompt move to this position and issue the command:
git clone https://github.com/Aircraft-Design-UniNa/jpad.git
if you use HTTPS, or issue the command:
git clone [email protected]:Aircraft-Design-UniNa/jpad.git
if you have set up your shell to use SSH. See this guide to learn more. Alternatively, you can download the repository as a zip archive from this link.
Once you have cloned successfully the JPAD repository, e.g. from C:\Users\John\Dev
, you end up with the subfolder jpad
populated with all the necessary files to use the library. We call this folder <JPAD_ROOT>
.
Open Eclipse and prepare to import a couple of projects that live in <JPAD_ROOT>
.
From the menu Window -> Preferences
open the dialog and navigate in the left pane to Java -> Build Path -> Classpath Variables
. In the right pane define the following new variables:
JPAD_ROOT
pointing to the path of the folderjpad
, e.g.C:\Users\John\Dev\jpad
LIBRARY_FOLDER
pointing to the path<JPAD_ROOT>/libraries
, e.g.C:\Users\John\Dev\jpad\libraries
ECLIPSE_FOLDER
pointing to the path<JPAD_ROOT>/libraries/eclipse/plugins
, e.g.C:\Users\John\Dev\jpad\libraries\eclipse\plugins
From the menu File -> Import
select the import wizard General -> Existing Projects into Workspace
. Click Next
. Chose Select root directory
and browse to <JPAD_ROOT>/JPADConfigs
. The JPADConfigs project will be recognized by the wizard. Select the project and click Finish
.
Similarly, from the import wizard select the existing project JPADCore_v2
by setting the root directory as <JPAD_ROOT>/JPADCore_v2
. The JPADCore_v2 project will be recognized by the wizard. Select the project and click Finish
.
The JPAD API is now set up in place in your IDE. The project JPADCore_v2 depends on JPADConfigs. The API exposes a number of interdependent data structures that model an aircraft and all its subcomponents.
The JPAD repository includes a module that features advanced CAD functions to model 3D geometric entities, such as NURB surfaces and solids. This project is named JPADCAD and employs a Java binding of the C++ Open CASCADE Technology (OCCT) SDK (v7.0.0).
The JAR file containing the Java wrapper and the supporting native libraries compiled for Win64 are found in the folder <JPAD_ROOT>libraries/occjava/OCCJavaWrapper_OCCT_v7.0.0_vc14_Win64
. This path will be called <OCCJAVA>
.
From the Eclipse import wizard select the existing project JPADCAD
by setting the root directory as <JPAD_ROOT>/JPADCAD
. The JPADCAD project will be recognized by the wizard. Select the project and click Finish
.
The project named JPADCommander features a GUI designed around the JPAD core API. This application provides an interactive workflow for complete aircraft model authoring. Predefined aircraft models can be loaded, modified and saved with JPADCommander, which gives visual feedback to the user during the process. The GUI will provide also the possibility to execute aerodynamic and performance analysis tasks. This functionality is still under development.
From the Eclipse import wizard select the existing project JPADCommander
by setting the root directory as <JPAD_ROOT>/JPADCommander
. The JPADCommander project will be recognized by the wizard. Select the project and click Finish
.
The project JPADCommander depends on the two projects JPADCore_v2 and JPADConfigs.
The JPAD repository includes additional projects that are used by the development team as sandboxes. These are JPADSandbox_v2 and JPADCADSandbox. You can import into Eclipse the two sandbox projects by pointing the import wizard to the root folders: <JPAD_ROOT>/JPADSandbox_v2
and <JPAD_ROOT>/JPADCADSandbox
.
The project JPADSandbox_v2 depends on the two projects JPADCore_v2 and JPADConfigs.
The project JPADCADSandbox depends on the two projects JPADCore_v2, JPADConfigs, and JPADCAD.
To run the test programs in Eclipse go to the menu Run -> Run Configurations
. Explore the dialog that manages all the existing run configurations, which are stored as .launch
files. Select a configuration from the left pane (in the Java Application group).
Before running a configuration do check the panels on the right pane. Explore the Main
, Arguments
and the Environment
tabs. In the Environment
tab make sure you edit the Path
variable, which expands the JPAD_ROOT
variable (see the string ${JPAD_ROOT}
). Select the Path
variable, click Edit
, click Variables
, click Edit Variables
, finally create the new variable JPAD_ROOT
pointing to the path <JPAD_ROOT>
.
See also this wiki page.
DAF Research Group at University Naples Federico II
Design of Aircraft and Flight technologies