User Tools

Site Tools

Intro | Session 1 | Session 2 | Session 3 | Session 4 | Session 5 | Session 6 | Session 7 | Session 8

Session 1: Initiate an EASAP

Estimated completion time → 60 minutes.

In this session, we create a new EASAP, set a few properties, and add several data entry objects.

At the end of this session, the first two tabs of our EASAP will appear as below,

A. Create a new EASAP

The first task is to create a new EASAP within EASA.

  • log in to EASA and create a new EASAP
  • download the tutorial files
    • the files are contained in a compressed zip file called

In the New Application Wizard, set a few properties in PROPERTIES→APPLICATION for our EASAP,

  • Title: may be anything, for example ‘Rectangular Plate’
  • let’s set category1→Path: to Training
    • access control is granted via Categories and by an Administrator assigning Users to User Groups.
  • optionally, we may
    • select an Image such as plate.gif, included with this tutorial,
    • write a brief description such as,
      • → ‘This application performs a loading analysis on a rectangular plate having a variable thickness, length and width. The displacement of the plate is predicted for a user defined load’

Both the image and the description will be visible to a group of Users once we Publish the EASAP.

Click OK and the Authoring tool, the EASAP Builder, will open (below).

  • In this tutorial we build a fully-functioning application via iterations of EASA's design process,
    1. create an EASA object with a right-mouse-click,
    2. configure the object's parameters, either…
      • type in literal text, or…
      • select a value from a drop-down list

There will be no coding involved.

B. Upload files

Any necessary files required by an EASAP's underlying software are copied from the local Author's machine up to the EASA Server and stored in the development folder for the EASAP. This folder contains the single, centralized definition of the EASAP.

An authorized User will login to the EASA Server and will be redirected to an EASAP Server to interact with the the EASAP GUI once an Author has Published the EASAP.

  • select the Files tab just above the Tree in EASAP Builder.
  • click on the Browse button
    • select the folder on the local machine computer with the unzipped tutorial files.
  • with the mouse, select the files below with CTRL key held,
    • logo.jpg
    • material.txt
    • load2.gif
  • click Open and then Upload
    • The files will be added to the list of current files shown below the Browse and Upload buttons.
    • let's save our work. Click on the Save button ()

The Save button is enabled only when there are unsaved changes. Upon saving the EASAP settings, the button will be disabled or grayed out until another change is made.

C. Add Data Entry Objects

We are ready to add data entry objects to the user interface of the EASAP.

  • return to the Tree tab.
  • expand the EASAP→USER INTERFACE branch by clicking on its ().
  • expand the TABBED PANE LIST sub-branch.
  • the first TABBED PANE, tabbed_pane1, is already present.
    • rename it props
      • set one parameter
        • Tab: 1. Plate Properties

We add data entry objects to the USER INTERFACE of our EASAP. On this TABBED PANE we allow a User to choose a plate material and specify its dimensions.

  • right-click props
    • select Child→Add SUB PANE () rename it dim
      • set Border: Plate Dimensions
  • right-click dim
    • select Child→Add INPUTBOX () rename it input_W
      • set
        • Default: 1.0
        • Label: Width (ft)
        • Input Type: Number
        • Decimal Places: 2
  • right-click input_W
    • select Child→Add DATA VALIDATION ()
      • set
        • Allow: Decimal
        • Ignore Blank: TRUE
        • Data: Between
        • Minimum: 0.1
        • Maximum: 50
  • we create a second INPUTBOX
  • right-click input_W
    • Copy then Paste (Sibling)
      • → a new INPUTBOX should appear on the Tree
      • (alternatively, select input_W and type CTRL-c and then CTRL-v for equivalent keyboard shortcuts)
    • Copy then Paste (Sibling) again
    • rename the first new object input_L
      • set Label: Length (ft)
      • for its Child DATA VALIDATION modify
        • Minimum: 0.2* input_W
        • Maximum: 5* input_W
  • we create a third INPUTBOX
  • right-click input_W
    • Copy, right-click input_L then Paste (Sibling)
    • rename this new object input_t
      • set
        • Label: Thickness (in)
        • Default: 0.24
      • expand input_t
      • select its Child DATA VALIDATION
        • set
          • Minimum: 0.001*(input_W+input_L)/2
          • Maximum: 0.125*(input_W+input_L)
  • lets save our work, File→Save

Object names are case sensitive. In general, an Author should use lowercase names for objects, while capitalized or ALL CAPS are for built-in objects on the Tree as well as object types (ie. class names).

D. Use a COMPUTE to bind a UNIT to an input

A User will be asked to enter input values in the units the Author specifies.

In this case we want to make the EASAP explictly aware of which units apply to each input.

To achieve this we use a DATA PROCESSING→SCALAR→COMPUTE.

  • right-click dim
  • we add unit conversion to our INPUTBOX values…
  • right-click material_data→SCALAR sub-branch
    • Select Child→Add COMPUTE rename it W
      • set
        • Value: input_W[ft]
        • Unit Group: Length
  • right-click W
    • select Sibling→Add COMPUTE rename it L
      • set
        • Value: input_L[ft]
        • Unit Group: Length
  • right-click L
    • select Sibling→Add COMPUTE rename it t
      • set
        • Value: input_t[in]
        • Unit Group: Length

As W, L and t represent lenghts, each will be automatically converted correctly when used in an expression, see USER INTERFACE→UNIT MANAGER→DEFAULT UNITS→DIMENSIONAL GROUP→Length

An EASAP internally uses values in metric units of kilograms, seconds, degrees Kelvin, meters and radians.

E. EXTRACT data from a text file

We extract material property data out of a file, material.txt

When a User changes the plate material each material property needs to change accordingly before use as input to the underlying software.

  • first we create an EXTRACT within the material_data branch…
  • right-click LIST
    • select Child→Add EXTRACT () rename it extract_props
      • set File: material.txt

In order to help in the creation of the Extract, Find, and Repeat objects there is an Extract Tool available on the right click menu. The Extract Tool facilitates extracting a LIST of values from a column of data in a text file.

  • right-click extract_props
    • select Extract Tool at the bottom.

The following window appears,

From here we set up a repeating FIND to pull out the desired data and make them available in the EASAP as LIST's.

  • highlight Aluminum, right-click
    • select Add Variable Find
      • after the Add Variable Find window opens
        • enter matname in the DOR Name input box
        • select Text for the DOR type
  • highlight 10600.0
    • right-click and select Add Variable Find
      • enter Ein in the DOR Name input box
        • select Real for the DOR type
  • finally, highlight 0.33
    • right-click and select Add Variable Find
      • rnter muin in the DOR Name input box
        • select Real for the DOR type

  • we set up a repeating FIND to pull out the desired data…
  • highlight the line (matname | Ein | muin ) in the Matched Lines column
    • after the line becomes yellow
      • select the Repeat () button
      • the Set Repeat Parameters window opens.
      • select OK to close out of the Set Repeat Parameters window
      • click OK button to close out of the Extract Tool
  • This data will be extracted from the file when the EASAP is run, our LISTs will have the following values,
    • matname → Aluminum, Steel, Inconel, Titanium
    • Ein → 10600.0, 28000.0, 31000.0, 15000.0
    • muin → 0.33, 0.29, 0.35, 0.34

F. Use a DATA VALIDATION to provide a list of choices

We add functionality so the User may select a plate material from the choices in matname.

An INPUTBOX with a Child DATA VALIDATION constrains the possible choices.

At some later time an Author might want to add another entry to material.txt, the EASAP would automatically show the new choice once the modified material.txt was uploaded into the EASAP, and the was EASAP saved and then Published.

  • right-click dim
    • select Sibling→Add SUB PANE rename it material
      • set Border: Plate Material
  • right-click material
    • select Child→Add INPUTBOX rename it mat
      • set
        • Default: Steel
        • Label: Select material
        • Tool Tip: Select plate material from list
        • Input Type: Text
  • right-click mat
    • select Child→Add DATA VALIDATION
      • set
        • Allow: List
        • Source: %matname%

G. MAP a LIST to another LIST

We will use a MAP to retrieve the Modulus of Elasticity based on the choice of material from a User.

  • right-click SCALAR under material_data
    • select Child→Add MAP () rename it modulus
      • set
        • Value: mat
        • Inputs: %matname%
        • Outputs: %Ein%

The SCALAR mat will be compared with each entry in the LIST matname; the index of the first match in matname will determine a corresponding element in Ein and then modulus will take on that value.

Create a similar MAP to retrieve a Poisson ratio for a given material .

  • right-click modulus
    • Copy and Paste (Sibling) rename it poisson
      • set Outputs: %muin%


We are ready to display the physical property values of the selected material. For aesthetic reasons we want to use INPUTBOX's to display the Modulus of Elasticity and Poisson Ratio once a User makes a choice of material.

  • This requires two steps,
    1. disable each new INPUTBOX for User input → set Enable If: false
    2. generate a VALUE CHANGED EVENT when the User changes the material which triggers SET VALUE ACTION's
  • right-click mat
    • select Sibling→Add INPUTBOX rename it showE
      • set
        • Default: modulus
        • Label: Modulus of Elasticity [ksi]
        • Input Type: Number
        • Enable if: false ← this enforces the INPUTBOX is greyed-out and read-only for a User
  • right-click showE
  • Copy then right-click Paste (Sibling) rename it showMu
    • set
      • Default: poisson
      • Label: Poisson Ratio
      • Enable if: false
      • Decimal Places: 3

We need to add an EVENT PROCESSING so showE and showMu will update when the User chooses a different material and the value of the INPUTBOX mat changes.

  • right-click showMu
    • select Sibling→Add EVENT PROCESSING rename it event_mat_changed
      • expand event_mat_changed
      • right-click event1
        • select Child→Add VALUE CHANGED rename it value_changed_mat
          • set Objects: mat
  • rename the ACTION GROUP to action_display_mat_properties
  • right-click it
    • select Child→Add SET VALUE ACTION rename it set_value_E
      • set
        • Object: showE
        • Value: modulus
  • right-click set_value_E
  • Copy then right-click Paste (Sibling) rename it set_value_Mu
    • set
      • Object: showMu
      • Value: poisson

Let's check our work. At this point, the USER INTERFACE branch of the Tree should look like this,

After clicking on the Open Web Browser Test button (), the EASAP should look like this,

We should test the material selection functionality, select a different material and observe the property values change

  • Return to the Builder to continue.
  • right-click props
    • select Sibling→Add TABBED PANE () rename it edges
      • set Tab: 2. Edge Support Conditions

On edges we add data entry objects to allow a User to specify the support conditions for each of the plate’s edges.

  • right-click edges
    • select Child→Add TEXTAREA ()
      • set
        • Label: Minimum Support Requirements
        • Text: The edge supports must contain at least one Fixed edge or two Pinned edges.
        • Height: 60, pixel ← select from the dropdown menu on the right hand side of parameter table
          • → A TEXTAREA is used here in order to show the message though LABEL could be used instead.
  • right-click textarea1
    • select Sibling→Add SUB PANE rename it set_edges
  • right-click set_edges
    • select Child→Add CHOICE LIST rename it bottom
      • set
        • Choices: Free, Pinned, Fixed
        • Default: Free
        • Label: Bottom edge
        • Orientation: HORIZONTAL
        • Tool Tip: Set support condition for this edge
  • click on the set_edges and type CTRL-c (Copy)
    • type CTRL-b (Paste (Sibling)) three times
      • →three new SUB PANES will appear
  • rename the CHOICE LIST objects within each SUB PANE as,
    • top
    • left
    • right
  • set their Label: parameters respectively to,
    • Top edge
    • Left edge
    • Right edge
  • for left and right
    • Set Default: Fixed

We create an error check to make sure a User does not submit a case in which the plate is not properly supported.

  • right-click set_edges3
    • select Sibling→Add EVENT PROCESSING () rename it check_for_errors
  • expand check_for_errors
  • right-click on the ACTION object
    • select Child→Add CHECK VALUES ().
      • expand it and rename its Child ERROR CHECK to edge_error_check
        • set
          • Title: Edge Support Error
          • Error Message: The edge supports must contain at least one Fixed edge or two Pinned edges.
          • Type: ERROR_MESSAGE
          • Show if:
            • (bottom!="Fixed"&&top!="Fixed"&&left!="Fixed"&&right!="Fixed")&&!(bottom=="Pinned"&&top=="Pinned")&&!(left=="Pinned"&&right=="Pinned")

The edge_error_check→Show if: expression will be false if one of the four edges has been set equal to 2 ('Fixed'), or, when two edges have been set equal to 1 ('Pinned'); the expression is true otherwise and the Error Message: will be shown upon Submit.

At this point the USER INTERFACE branch of the EASAP Tree should look like this,

After clicking on the Open Web Browser Test button (), the second TABBED PANE should look like this,

  • exit EASAP Builder by selecting File→Exit or click on the x in the top-right corner of the window.
    • if a pop-up window asks whether to save or not, select ‘Yes’
  • to see the current name and status of our EASAP, select the EASA→Applications→My EASAPs menu.
  • locate our EASAP, it may have a title of ‘Rectangular Plate (*)’, where the asterisk will be a number.

If another EASAP exists with the name ‘Rectangular Plate’ a sequence number in parenthesis will be added to the title in order to keep the title unique.

  • Find our EASAP, click on its title link or the thumbnail image in the far left column of its row, and we will be taken to a new page, which will look like this,

Congratulations. We have completed Session 1. Let's continue with Session 2.

Introduction | Session 1 | Session 2 | Session 3 | Session 4 | Session 5 | Session 6 | Session 7 | Session 8