uni/aseredesign
2025-07-03 19:05:38 +01:00
..
aseredesign.py fixed indeces of stringers 2025-07-03 19:05:38 +01:00
readme.md Update aseredesign/readme.md 2025-07-02 20:33:18 +01:00

ASE Redesign Calculator

Important:

Version was updated --- new release. There might be issues with the RF of the column buckling. I am unsure at this exact moment.

Nothing regarding the procedure has changed.


This redesign calculator requires manual input in Hyperworks, but returns the values needed for the final results csv file. It can calculate several results at the same time which I found helpful for comparing and analysing. It has the following limitations:

  1. All stringers have to have the same dimensions (panel thickness may vary tho)
  2. Dimensions must be inputted into Python as well as Hyperworks

Releases here

Quick rundown

  1. Modify the dimensions of the stringers and panels in the .hm and aseredesign.py file
  2. Run the simulation
  3. Import the results into Optistruct and export the panel stresses and stringer stresses in two different .csv files
  4. Increment the modAmount variable in the aseredesign.py
  5. Run the python script and hope for green!

Overview

  1. Set up Python
  2. Initial aseredesign.py setup
  3. How to modify values with proper offsets in Optistruct
  4. How to get dimensions into Python
  5. How to get the results for the FEA
  6. How to get the things calculated
  7. Miscellaneous

Set Up Python

Windows 10/11:

Make sure Python is installed.

You can check this by running the command "python" in the command line (opened either by typing "cmd" into the windows search bar and hitting the Enter key or over Windows+R and then entering "cmd" followed by hitting the enter key).

Then make sure the libraries "math", "csv" and "colorama" are installed.

You can install them by running the commands "pip install math", "pip install csv" and "pip install colorama".

Linux

  1. Install python
  2. pip install colorama, pip install csv, pip install math

Initial aseredesign.py setup

  1. Open aseredesign.py in your text or code editor or choice (vim, Visual Studio, Notepad++, etc) (On Windows, rightclick the file and hit "Open with" and choose notepad if you don't have any preference)
  2. Change the variable Ebasis and mass_limit in the beginning
  3. Hit save

How to modify values with proper offsets in Optistruct:

Stringers:

  1. Stringer dimensions are found in "Model" > "Beam Sections" on the left workpanel
  2. Select all Stringer_Section (1-9)
  3. In the bottom left workpanel, go to "Parameter Definitions" and modify DIM1 (stringer height), DIM2 (stringer thickness), DIM3 (width of the top of the "hat") and DIM4 (width of the brim of the "hat")
  4. In the same bottom left workpanel, go to "Neutral Axis Geometri..." and write down the value next to "Centroid Local Yc" somewhere. This value is required to calculate the offset (offset A and offset B are the same).
  5. Offset = - DIM1 / 2 - ("Centroid Local Yc") or in words: your offset equals the negative DIM1 (stringer height) value divided by 2, minus the value of Centroid Local Yc. The stringer offset should always be negative. Write this down as well.
  6. Go back to the "Model" tab on the left workpanel and double click on "Elements". There you should see all elements with IDs from 1 to 70 (excluding some numbers).
  7. Select all elements from element ID 40 to 66
  8. In the bottom left workpanel, find "Offset A" and "Offset B" and modify the values to "0,0,the value you got for the offset in step 5".
  9. Hit save.

The stringer dimensions must also be added to the python file before running it.

Panels:

  1. Panel thicknesses are found in "Model" > "Properties" on the left workpanel
  2. Select the shell element you want to modify and change the value next to "T:" in the bottom left workpanel.
  3. Keep in mind that this must be symmetrical. Shell1 must have the same thickness as Shell10, etc, etc. (Shell5 and Shell6 must have the same thickness, yadayadaya)
  4. Go back to the "Model" tab on the left workpanel and double click on "Elements". There you should see all elements with IDs from 1 to 70 (excluding some numbers).
  5. Select all panels with the same thickness. Each panel consists of 3 elements and it should be visually indicated what you got selected.
  6. In the bottom left workpanel, find "Offsets" > "SURFACE OPTIONS: (unselected)" > "ZOFFS" and modify the value next to "ZOFFS" to half of the panel thickness.
  7. Hit save. The panel dimensions must also be added to the python file before running it.

How to get the dimensions into Python:

You'll find two sections of arrays.

pThickness_01 to pThickness_05 describe the panel thickness. The first value of each array should correspond to the FEM model used in the simulation that delivered the results for panel_val_0 and stringer_val_0. The next one for panel_val_1 and stringer_val_1, the next one for panel_val_2 and stringer_val_2.

Same goes for the stringer dimensions. Their naming is equivalent to the naming in Hyperworks.


Also variable modAmount should equal the amount of results you have. (panel_val_x and stringer_val_x only count as one result.)

It's literally just the amount of times the analysis is repeated, with the x at the end of panel_val_x incrementing by 1 each time.

How to get the results for the FEA:

  1. Run simulation
  2. File > Import > Results > File System
  3. Post > Tools
    1. Results Query
    2. Start
  4. Then select do the following in the window:
    1. Select all 3 loadcases at the same time (using Ctrl+Click)
    2. Select: Element Stresses (2D & 3D) > XX,YY,XY,vonMises (select all 4 at the same time using Ctrl+Click) > Mid > none > global
    3. Set and save as panel_val_x.csv in the same folder as the python script
    4. Select all three loadcases again
    5. Select: Element Stresses (1D):CBAR/CBEAM Axial Stresses > none
    6. Set and save as stringer_val_x.csv in the same folder as the python script

"x" is a variable, starting at 0. I personally used 0 for the simulation results of the unmodified panel. Testing this all with the unmodified panel and comparing it with the previously given solution is a good sanity check to see if Hyperworks and this program is set up properly

How to get the things calculated:

  1. Go to your terminal or command line.
  2. Enter "cd your/folder/path/" (To get your/folder/path/ on Windows, open the File Explorer, go to the folder with the python file and click on the folder name in the top bar and copy that. On Windows it looks like this: "C:\Users\walter\Desktop\funpythonscript")
  3. Enter "python aseredesign.py"
  4. Read and reiterate

Miscellaneous

How to get offset A and B:

offset = -dim1 /2 - (Centroid Local Yc of stringer)

get centroid local yc in Beam Section Tab

add offset in Elements tab