112 lines
No EOL
6.1 KiB
Markdown
112 lines
No EOL
6.1 KiB
Markdown
# ASE Redesign Calculator
|
|
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
|
|
|
|
## 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 Python 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 Python 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. Select all 3 loadcases
|
|
1. Element Stresses (2D & 3D) > XX,YY,XY,vonMises > Mid > none > global
|
|
2. Set and save as **panel_val_x.csv** in the same folder as the python script
|
|
3. Element Stresses (1D):CBAR/CBEAM Axial Stresses > none
|
|
4. 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 aserdesign.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 |