Homepage | About EASA | Contact
Please note that these practical sessions are designed to be completed in sequential order. This tutorial should take approximately 1.5 hours.
The tutorial is broken up into five practical sessions as follows:
Let’s assume an organization uses analysis tools, which may include in-house codes and/or models created using commercial applications such as Excel® or MATLAB®. Let’s also assume there is a requirement to deploy some of these tools, in an easy-to-use form, to end-users who may not be expert at using these tools in their “native” form.
This tutorial is a guide through the creation of a custom web application called an EASAP to simplify and automate the use of an analysis tool. We create an intuitive interface to enable error-free usage with a minimal learning curve for end-users. In addition, we would like end-users to be able to store results in a central repository and to share results with colleagues.
Any batch mode software, either in-house or commercial, can be driven by an EASAP. Here we use a batch mode program that performs a simple structural analysis of a rectangular plate. This application was written by Herbert Whitman (herbgw2@yahoo.com) and is freely available at http://www.fseas.info/.
This application is an example of a simple DOS program that does not have a graphical user interface—it is ‘command-line driven code’. To run this program as intended in its original form, open a DOS command prompt, change to the directory containing the program, and type in the name of the main executable femrctpl.exe. The user is prompted for a series of inputs, as shown in the figures below.
As can be seen in the above popup window, the program prompts for the name of an input data file that must be created with a text editor prior to running the program. An example of the expected form for this input data file is shown in the figure below.
The program produces lines of text and tabular data output. A portion is shown in the figure below.
The results computed by the program include:
Clearly, this is not a process that you would expect a new user to be able to execute in its current form without
some training.
More generally—while many commercial applications offer capable GUIs—they are usually designed
to allow expert users to solve many different types of problems, rather than enabling a non-expert to quickly
and intuitively execute a specific process.
In this tutorial, we will take a difficult, “expert-only” process, and “wrap” the process into an intuitive web application, enabling error-free usage by non- experts.
Note: This tutorial is designed for use with an EASA Server that is running under Windows. If your EASA Server is running under Linux, then please contact our support personnel at support@easasoftware.com to make arrangements for receiving a Linux server compatible version of the tutorial.
For this tutorial, both the planning of the EASAP and the generation of batch files for the underlying software application have been completed previously. Additionally the report template has been already created to focus on learning to Author an EASAP.
The files that you will need to complete the tutorial are listed in the table below:
File Name | Description |
---|---|
femrctpl.exe | Main executable of rectangular plate analysis program |
input.txt | File containing inputs for rectangular plate analysis program |
plate.txt | Data file for rectangular plate analysis program |
EASAlogo.jpg | Image file of EASA logo |
plate.gif | Image file used as a thumbnail or selection image |
load.gif | Image file used in application diagram |
report.html | Template HTML file for report of results |
PLATE.OUT | Template file for extracting output |
Estimated completion time = 15 minutes.
In this practical session, you will create the new EASAP, set its properties, and create its data entry objects. At the end of this session, your EASAP will look like the sample shown below.
Please follow the instructions below to complete this practical session. Detailed information on the objects created in this session can be found at the Author's Pages.
The first task is to create a new EASAP within EASA.
In the New Application wizard, set some PROPERTIES for our EASAP.
Note: Optionally, you can select an Image such as plate.gif
, included with this tutorial, and a brief description such as: ‘This application performs a loading analysis on a cantilevered rectangular plate having a variable thickness and length and a fixed width of 1 ft. The displacement of the plate is predicted for a user defined uniformly distributed load’. Both the image and the description will be visible to Users once you publish your EASAP.
EASAP Builder is one of the main tools used within EASA to create applications without coding. As you can see, it consists of a tree with objects on the left and associated parameters on the right. During this tutorial, all we will do to build a fully functioning application is to create various objects and populate their parameters. There will be no coding involved.
After creating your EASAP, the next task is to upload any files required by the EASAP. When uploaded, these files are copied from your computer to the EASA Server and stored in the development folder for the EASAP. This folder contains the single, centralized definition of the EASAP, which once published will be used by all users of the EASAP.
EASAlogo.jpg
, by either clicking on Open or double-clicking the file name, and then click on the Upload button.The file will be added to the list of current files shown below the Browse and Upload buttons.
plate.gif
and load.gif
also. Note: The Save button is enabled only when you have unsaved changes. Upon saving the EASAP settings, the button will be disabled or grayed out until you make another change.
You are now ready to proceed with adding data entry objects to the user interface of your EASAP.
Let's check our work.
Now we start to add data entry objects to the user interface of your EASAP: on input users will choose a plate material and specify its dimensions.
Parameter Name | Parameter Value |
---|---|
Choices: | Steel, Aluminum, Titanium |
Default: | Steel |
Label: | Plate material |
Now add a SUB PANE.
Parameter Name | Parameter Value |
---|---|
Default: | 5.0 |
Label: | Length |
Upper Bound: | 10 |
Lower Bound: | 0.5 |
Units: | Length |
After setting the parameter values as shown in the table above,
The parameter table for the REALBOX L will appear as follows:
Create another REAL BOX.
Note: Set Units: first to create a dropdown 'units' menu for the other parameters.
Parameter Name | Parameter Value |
---|---|
Default: | 1, in |
Label: | Thickness |
Upper Bound: | 2, in |
Lower Bound: | 0.25, in |
Units: | Length |
Parameter Name | Parameter Value |
---|---|
Default: | 50, lbf/ft |
Label: | Load magnitude |
Upper Bound: | 200, lbf/ft |
Lower Bound: | 20, lbf/ft |
Units: | Force per Unit Length |
If you have errors, you will see error messages directing you to problems within your objects that you will need to fix.
At this point, the EASAP tree should look like this:
Let's check our work.
Your EASAP will have a title such as ‘Cantilever Plate Loading Analysis (*)’, where the asterisk will be a number.
Note: The reason you may get a number within parentheses after your EASAP title is that EASA automatically adds this number in order to keep the title unique. Therefore, if another EASAP already exists with the same name then the number will be added to your EASAP’s title.
Congratulations. You have finished Practical Session 1.
Estimated completion time = 10 minutes.
In this practical session, you will create a diagram representing a dynamic schematic of the plate. The figure below provides a view of how your EASAP will look at the end of this session.
Please follow the instructions below to complete this practical session.
Now you are ready to create your first diagram. Child
We add a rectangle to act as a white background for your diagram.
Note: The Child objects under DIAGRAM are drawn in the order that they appear on the Tree from top-to-bottom. Thus we draw the background first, and then draw the two rectangles afterward. If we drew the background last, it would hide the rectangles from view.
Parameter Name | Parameter Value |
---|---|
Origin: | -0.5 [ft], -5 [ft] |
Size: | 11 [ft], t + 10 [ft] |
Fill Style: | White |
Expressions that pass the automatic checks will be colored blue. If a problem is detected, the expression will be colored red.
Parameter Name | Parameter Value |
---|---|
Size: | 0.5 [ft], t + 10 [ft] |
Fill Style: | Gray |
Line Style: | Black t1 full |
We will add a third rectangle to show the plate length and thickness.
Parameter Name | Parameter Value |
---|---|
Origin: | 0, 0 |
Size: | L, t |
Fill Style: | Red |
Line Style: | Black t1 full |
The final step is to associate the new DIAGRAM with the TABBED PANE in which it will be displayed.
The first TABBED PANE window will now look like this:
You can also check on the diagram functionality by making changes to values for the 'Length' or 'Thickness'.
The EASAP tree should look like this:
You are now finished with Practical Session 2.
Estimated completion time = 20 minutes.
In this practical session, you will create a process to run the software application, manipulate user inputs into a form suitable for the batch file, and edit a batch input file into a template with Delimited Object References (DORs).
The first task is to upload a few files required by the EASAP.
input.txt
and click on the Upload button.
The input.txt
file will be added to the list of current files shown below the Browse and Upload buttons.
plate.txt
, femrctpl.exe
, report.html
, input.txt
.
femrctpl.exe
is the executable, plate.txt
contains input data, and input.txt
contains responses to queries from the executable that would otherwise be typed at the command prompt.
Now we create the PROCESS for running the plate analysis software.
Parameter Name | Parameter Value |
---|---|
Run Using: | cmd.exe /C "femrctpl.exe < input.txt" |
Software: | demo |
Now we set up the objects needed to manipulate the user input data into a form appropriate for replacement within the batch input file, in this case plate.txt
.
Now we create a MAP to map a particular plate material into the modulus of elasticity which is required by the plate analysis software.
Tip: Copy the contents of the Choices: parameter of the TABBED PANE LIST→input→mat and Paste it as the modulus→Inputs: parameter value.
Parameter Name | Parameter Value |
---|---|
Value: | mat |
Inputs: | Steel, Aluminum, Titanium |
Outputs: | 27600, 10600, 15000 |
Create a similar MAP for the material’s Poisson ratio.
Parameter Name | Parameter Value |
---|---|
Outputs: | 0.305, 0.33, 0.34 |
Now we will move on to translate the plate’s dimensions into the uniform element size that is expected in the input file. The plate is divided into 20 elements along its length. Create a COMPUTE:
Parameter Name | Parameter Value |
---|---|
Value: | L/20 |
Unit Group: | Length |
The next step for the runplate process is to add a REPLACEMENT object for its input file, plate.txt
.
plate.txt
from the choice list.The PROCESSES branch of the EASAP Tree should look like this:
Therefore the order of objects on the tree within a PROCESS is not important. However, the order of execution of multiple PROCESS objects is based on their order on the Tree, occurring from top to bottom.
The Template Editor will start in a new window. We will now go through the process of replacing fixed input values, such as text strings and numbers, with DORs.
Tip: If you encounter problems setting the units of the DOR, ensure that the Unit Group: parameter has been set properly for the dx COMPUTE. If you need to go back and make a change in EASAP Builder, you should keep Template Editor open and just select File→Reload after saving your changes in the Builder.
At this point the file will appear in the Template Editor as follows:
At this point, your EASAP will be ready for its first test run. Even though the OUTPUT branch is empty and nothing will be displayed on the results pages, you can still submit a test run and take a look at what is produced at this point.
After a second or two, a pop-up window will appear when the EASAP has been submitted successfully.
The page should look like:
It will probably be the only entry in the table. If you do not see any rows in the table, try clicking the refresh button on your browser. Now, look at the Status column for the run you just submitted. It may show a variety of messages. If you see ‘Queued’ then the job is waiting for some other jobs to finish before starting to run. If you see a percentage number, then your job is currently running. Finally, if you see ‘Completed’ then your job is done.
Once your job has completed, you can take a look at some of the files produced by the test run.
A pop-up window will appear that will look like the following:
Let’s look at the input file, plate.txt
, and see the result of the DOR replacements.
If you do not see the file content shown above, then you may have an error in your EASAP settings or in your template input file. You can attempt to fix these problems at this time or wait until Practical Session 5, in which you will be testing and debugging your completed EASAP.
Now let’s look at the output file, PLATE.OUT
, produced by the underlying software application.
If you do not see the PLATE.OUT
link or the file content shown above, then you have an error in your EASAP settings or in your template input file. After reviewing the file, close the window.
Now, review the values of data produced in the EASAP.
You are now finished with Practical Session 3.
Now we will create an output report on the EASA→Authoring→Testing page which includes a summary of user input and a results table, above.
Parameter Name | Parameter Value |
---|---|
File: | report.html |
We need to extract some data from the underlying analysis software output file.
Parameter Name | Parameter Value |
---|---|
File: | PLATE.OUT |
This file name will not appear in the pull-down list because it is created after the plate software application is run.
In order to help in the creation of EXTRACT, FIND, and REPEAT objects:
When the Extract Tool window appears,
PLATE.OUT
and click OK.The window should appear as follows:
JOINT DISPLACEMENTS will appear in the left Matched Lines column.
Next we set up a repeating FIND to pull out the desired data.
Finally we compute the maximum displacement on the plate. In the OUTPUT branch:
Parameter Name | Parameter Value |
---|---|
List: | zd |
Function: | MAXIMUM |
Now let’s display the calculated maximum displacement of the plate in our report.
Parameter Name | Parameter Value |
---|---|
Text: | Maximum Plate Displacement = %MaxD% in. |
Style: | Normal |
Now add a heading.
Parameter Name | Parameter Value |
---|---|
Text: | <h4>Table of Plate Displacement</h4> |
Finally display our extracted nodal displacement data in a table.
Parameter Name | Parameter Value |
---|---|
Column Titles: | Node, Displacement [in] |
Columns: | node, zd |
At this point, you can also get a preliminary view of the report that will be generated by the objects in the OUTPUT branch.
The following will appear in the browser window:
Note: If your results pages do not look like what is shown above, you may have a problem with the original EASAP run or with the objects on your OUTPUT branch. You can try to resolve the problem now or wait until Practical Session 5 when you will be testing and troubleshooting your EASAP.
Estimated completion time = 10 minutes.
In this practical session, you will test the EASAP from the previous sessions. Then you will publish your EASAP for other users on EASA→User→Applications.
Lets get started:
If you see ‘Queued’ then the job is waiting for some other jobs to finish before starting to run. If you see a percentage number, then your job is currently running. Finally, if you see ‘Completed’ then your job is done and you can view the results by clicking on the icon under Output ().
Now let’s look at the files that will help you diagnose problems you may encounter getting an EASAP to run properly.
err1-runplate.txt
file in the list.
This file should have a Size of 0.0 kb to the right of the file name. If the number is greater than zero, then click on the link for the file and examine the error messages given in the file. If you are unable to determine the cause of these messages, then contact your instructor or EASA support representative. At this point, you may need to go back to EASAP Builder and make changes to your EASAP based on suggestions from the EASA support person. You will then resubmit the EASAP for another test. Iterate in this way until all errors in the err1-runplate.txt
file are eliminated.
Note: Depending on the type of underlying software driven, not all messages captured in the diagnostic files, such as err1-runplate.txt
, will need to be eliminated. Often, software applications send other types of messages to the standard error stream.
PLATE.OUT
file has been created.
If not, then there is a problem with either the EASAP or the input file, plate.txt
.
The file should look like the following:
If the input file does not look like the one above and you are unable to determine the cause of the problem, contact your instructor or EASA support representative. At this point, you may need to either go back to EASAP Builder and make changes to your EASAP or make modifications to your template plate.txt
file in the template editor. You will then resubmit the EASAP for another test. Iterate in this way until the DORs in the plate.txt
file get replaced properly and a valid PLATE.OUT
file is produced.
At this point, you have successfully completed an EASAP run. You can close the file browsing window now, and if you haven’t already done so, you can now examine the reported results by clicking on the View Results button () in the Output column. The report will look similar to what you saw in your initial tour of EASA in Practical Session 1 and when you developed the Output branch in Practical Session 5.
If the report does not appear correctly, please contact your instructor or EASA support representative for assistance. Again, you may need to go back to EASAP Builder and make changes to your EASAP based on suggestions from the EASA support person. You will NOT have to resubmit the EASAP for another test: just save your changes in the Builder and then click on the Re-generate report using the latest version of this EASAP link to see an updated report. Iterate in this way until the report appears as expected.
Your EASAP will now be ready for publishing.
Let's check whether our EASAP will be visible to Users on the EASA system.
Your EASAP will now be visible in the EASA→Applications table. If you like, you can open up your EASAP, modify some inputs and then submit it to run as a User. As a User the output from an EASAP run will appear in EASA→Results→My Results.