arbitrary_read_file | ( filename, npoints, nloops, points, nploop, srp ) |
Description: | ||
Function to read boundary points and stress recovery points of an arbitrary section in a given file, and load the points into the spreadsheet in the Beam Library form. | ||
Input: | ||
STRING | filename | The name of a file listing the boundary points of an arbitrary beam section (in X,Y coordinates, one point per line) followed by the stress recovery points (in point indexes.) |
Output: | ||
INTEGER | npoints | Total number of points. |
INTEGER | nloops | Total number of boundary loops. |
REAL | points (VIRTUAL) | X,Y coordinates of all loop points. |
INTEGER | nploop (VIRTUAL) | Number of points on each boundary loop. |
INTEGER | srp (VIRTUAL) | Stress recovery point based on the indexes of the points array. |
0. 0.
4. 0.
4. 8.
0. 8.
0. 0.
2. 2.
3. 2.
3. 3.
2. 3.
2. 2.
6 2 1 4
arbitrary_section_create | ( section_name, npoints, nloops, points, nploop, srp) |
Description: | ||
Creates a new arbitrary shape beam section with the given section name, boundary loops and stress recovery points. | ||
Input: | ||
STRING | section_name[31] | Section name. |
INTEGER | npoints | Total number of points. |
INTEGER | nloops | Total number of boundary loops. |
REAL | points(npoints,2) | X,Y coordinates of all loop points. |
INTEGER | nploop(nloops) | Number of points on each boundary loop. |
INTEGER | srp(4) | Stress recovery point based on the indexes of the points array. |
Output: | ||
INTEGER | <Return Value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
1 | Invalid total number of points. | |
2 | The number of loops is outside the valid range of 1 - 8. | |
3 | Invalid number of points is found in a loop. (Fewer than 3 or greater than 150.) | |
7 | Invalid license. | |
13000025 | Duplicate name. | |
13000210 | The system is out of virtual memory. | |
13000211 | Virtual memory has been exhausted. | |
29002040 | Beam Section %A% already exists. Do you wish to overwrite? | |
29002042 | Beam Section Name is blank. Input a Beam Section Name. |
arbitrary_section_display | ( section_name, option, npoints, nloops, points, nploop, srp ) |
Description: | ||
Function to create a display of an arbitrary section in a graphic viewport. It plots the geometry of the section, and depending on the given option, it calculates and displays the properties of the arbitrary section. | ||
Input: | ||
STRING | section_name[] | The name of an arbitrary section to be displayed. |
STRING | option[] | = "boundary" if only the boundary loops and points to be displayed. = "properties" if section properties to be calculated and displayed with the boundary. |
INTEGER | npoints | Total number of points. |
INTEGER | nloops | Total number of boundary loops. |
REAL | points(npoints,2) | X,Y coordinates of all loop points. |
INTEGER | nploop(nloops) | Number of points on each boundary loop. |
INTEGER | srp(4) | Stress recovery point based on the indexes of the points array. |
Output: | ||
None. |
arbitrary_section_modify | ( old_name, new_name, npoints, nloops, points, nploop, srp) |
Description: | ||
Modifies an existing arbitrary shape beam section with the given section name, boundary loops and stress recovery points. | ||
Input: | ||
STRING | old_name[31] | The name of an existing section to be modified. |
STRING | new_name[31] | The new section name to be used. |
INTEGER | npoints | Total number of points. |
INTEGER | nloops | Total number of boundary loops. |
REAL | points(npoints,2) | X,Y coordinates of all loop points. |
INTEGER | nploop(nloops) | Number of points on each boundary loop. |
INTEGER | srp(4) | Stress recovery point based on the indexes of the points array. |
Output: | ||
INTEGER | <Return Value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
1 | Invalid total number of points. | |
2 | The number of loops is outside the valid range of 1 - 8. | |
3 | Invalid number of points is found in a loop. (Fewer than 3 or greater than 150.) | |
7 | Invalid license. | |
13000210 | The system is out of virtual memory. | |
13000211 | Virtual memory has been exhausted. | |
29002042 | Beam Section Name is blank. Input a Beam Section Name. |
arbitrary_section_report | (section_name, npoints, nloops, points, nploop, srp) |
Description: | ||
Write section properties and the information of loops and points for an arbitrary section to the report file. | ||
Input: | ||
STRING | section_name[] | Section name. |
INTEGER | npoints | Total number of points. |
INTEGER | nloops | Total number of boundary loops. |
REAL | points(npoints,2) | X,Y coordinates of all loop points. |
INTEGER | nploop(nloops) | Number of points on each boundary loop. |
INTEGER | srp(4) | Stress recovery point based on the indexes of the points array. |
Output: | ||
None |
arbitrary_select_surface | ( surface_picklist, curv_factor, transl, npoints, nloops, points, nploop ) |
Description: | ||
Function to find the sampling points on the boundary of the given surface and load the points into the spreadsheet. | ||
Input: | ||
STRING | surface_picklist | Picklist of a surface on which the boundary points to be found and loaded to the spreadsheet. |
REAL | curv_factor | Maximum curvature error ( .01 <= h/L <= .25 ) allowed for sampling points on a curved edge. |
LOGICAL | transl | Whether or not to translate the boundary points so that the first point of the first loop coincides with the origin. |
Output: | ||
INTEGER | npoints | Total number of points. |
INTEGER | nloops | Total number of boundary loops. |
REAL | points(VIRTUAL) | X,Y coordinates of all loop points. |
INTEGER | nploop(VIRTUAL) | Number of points on each boundary loop. |
Error Conditions: | ||
1 | Surface selected is meshed and cannot be processed. | |
2 | Property evaluation fails. | |
3 | The number of points found on a loop exceeds 150. | |
29001001 | Unable to allocate the necessary memory. | |
29002060 | An error occurred while computing Beam Section properties. Check the boundary. | |
29002056 | An error occurred while computing Beam Section properties. Check dimensions. |
beam_section_create | (beam_name, beam_shape, beam_data) |
Description: | ||
This function creates a new beam section with the given name, shape, and a list of dimensions. | ||
Input: | ||
STRING | beam_name[31] | This value specifies the name of the beam section to be created. |
STRING | beam_shape[8] | This value specifies the shape name of the beam section. See the remarks below for more information. |
STRING | beam_data[31]() | This value specifies the data defining the dimensions of the beam. |
Output: | ||
INTEGER | <Return Value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
13000025 | Duplicate name | |
13000121 | The property value requested was not found | |
13000210 | The system is out of virtual memory. | |
13000211 | Virtual memory has been exhausted. | |
29002040 | Beam Section %A% already exists. Do you wish to overwrite? | |
29002042 | Beam Section Name is blank. Input a Beam Section Name. | |
29002043 | Beam Section Type %A% Invalid. | |
29002044 | Wrong number of Beam Section Dimensions Input. | |
29002046 | Invalid Beam Section Dimension %A%. | |
29003007 | Section %A% associated with Element Property data and is not deleted. | |
30001101 | Field %A% does not exist. |
Value | Description | |
“I” | for I beam | |
“L” | for angle | |
“T” | for blade | |
“CHAN” | for channel | |
“TUBE” | for tube or pipe | |
“ROD” | for circular solid rod | |
“BOX” | for rectangular hollow bar with symmetric walls | |
“BAR” | for rectangular solid bar | |
“BOX1” | for rectangular hollow bar with unsymmetric walls | |
“Z” | for Z shape beam | |
“HAT” | for hat shape beam | |
“CROSS” | for cross shape beam | |
“HEXA” | for hexagonal beam |
beam_section_delete | (beam_name) |
Description: | ||
This function deletes a list of beam sections. | ||
Input: | ||
STRING | beam_name[31]() | This value specifies the names of the beams to be deleted. |
Output: | ||
INTEGER | <Return Value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
13000121 | The property value requested was not found | |
13000210 | The system is out of virtual memory. | |
13000213 | A database lookup failed to locate the target index key. | |
29003007 | Section %A% associated with Element Property data and is not deleted. |
beam_section_display | (beam_shape, beam_name, beam_data, ent_or_loc, ent_loc_data, field_location) |
Description: | ||
This function calculates the beam cross section properties, and displays the beam cross section and its properties in a graphic viewport. | ||
Input: | ||
STRING | beam_shape[] | This value specifies the shape name of the beam section. See the remarks below for more information. |
STRING | beam_name[] | This value specifies the name of the beam section to be written. |
STRING | beam_data[]() | This value specifies a string array of dimensions in order of the labels shown on the beam library form. Strings of real numbers and field names prefixed by “f:” are allowed. |
STRING | ent_or_loc[] | This value specifies, if the input value beam_data contains any fields, that the field data be evaluated as a geometric entity when this value is set to “ENTITY” or that the field data will be evaluated at XYX coordinates when this value is set to “COORD”. |
STRING | ent_loc_data[] | This value specifies the geometric entity or XYZ coordinate information if the input value beam_data contains any fields. |
REAL | field_location | This value specifies the parametric location at which fields are evaluated. This value is used only if the input value beam_data contains any fields and the input value ent_or_loc is set to “ENTITY”. This value must be equal to or greater than 0 and equal to or less than 1. |
Output: | ||
INTEGER | <Return Value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
This function can return error values which have no association with an error message. |
Value | Description | |
“I” | for I beam | |
“L” | for angle | |
“T” | for blade | |
“CHAN” | for channel | |
“TUBE” | for tube or pipe | |
“ROD” | for circular solid rod | |
“BOX” | for rectangular hollow bar with symmetric walls | |
“BAR” | for rectangular solid bar | |
“BOX1” | for rectangular hollow bar with unsymmetric walls | |
“Z” | for Z shape beam | |
“HAT” | for hat shape beam | |
“CROSS” | for cross shape beam | |
“HEXA” | for hexagonal beam |
beam_section_modify | (beam_name, new_name, beam_shape, beam_data) |
Description: | ||
This function modifies an existing beam section by replacing its name, shape, and dimensions. | ||
Input: | ||
STRING | beam_name[31] | This value specifies the name of the beam section to be modified. |
STRING | new_name[31] | This value specifies the new name of the beam section. |
STRING | beam_shape[31] | This value specifies the shape name of the beam section. See the remarks below for more information. |
STRING | beam_data[31]() | This value specifies the data defining the dimensions of the beam. |
Output: | ||
INTEGER | <Return Value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
13000025 | Duplicate name | |
13000211 | Virtual memory has been exhausted. | |
13000213 | A database lookup failed to locate the target index key. | |
29002042 | Beam Section Name is blank. Input a Beam Section Name. | |
29002043 | Beam Section Type %A% Invalid. | |
29002044 | Wrong number of Beam Section Dimensions Input. | |
29002046 | Invalid Beam Section Dimension %A%. | |
30001101 | Field %A% does not exist. |
Value | Description | |
“I” | for I beam | |
“L” | for angle | |
“T” | for blade | |
“CHAN” | for channel | |
“TUBE” | for tube or pipe | |
“ROD” | for circular solid rod | |
“BOX” | for rectangular hollow bar with symmetric walls | |
“BAR” | for rectangular solid bar | |
“BOX1” | for rectangular hollow bar with unsymmetric walls | |
“Z” | for Z shape beam | |
“HAT” | for hat shape beam | |
“CROSS” | for cross shape beam | |
“HEXA” | for hexagonal beam |
beam_section_report | (beam_shape, beam_name, beam_data, ent_or_loc, ent_loc_data, field_location) |
Description: | ||
This function writes the given information of a beam section and the calculated section properties to the report file. | ||
Input: | ||
STRING | beam_shape[] | This value specifies the shape name of the beam section. See the remarks below for more information. |
STRING | beam_name[] | This value specifies the name of the beam section to be written. |
STRING | beam_data[]() | This value specifies the data defining the dimensions of the beam. |
STRING | ent_or_loc[] | This value specifies, if the input value beam_data contains any fields, that the field data be evaluated as a geometric entity when this value is set to “ENTITY” or that the field data will be evaluated at XYX coordinates when this value is set to “COORD”. |
STRING | ent_loc_data[] | This value specifies the geometric entity or XYZ coordinate information if the input value beam_data contains any fields. |
REAL | field_location | This value specifies the parametric location at which fields are evaluated. This value is used only if the input value beam_data contains any fields and the input value ent_or_loc is set to “ENTITY”. This value must be equal to or greater than 0 and equal to or less than 1. |
Output: | ||
INTEGER | <Return Value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
1 | This is an internal status condition. There is no corresponding status message in the message database. |
Value | Description | |
“I” | for I beam | |
“L” | for angle | |
“T” | for blade | |
“CHAN” | for channel | |
“TUBE” | for tube or pipe | |
“ROD” | for circular solid rod | |
“BOX” | for rectangular hollow bar with symmetric walls | |
“BAR” | for rectangular solid bar | |
“BOX1” | for rectangular hollow bar with unsymmetric walls | |
“Z” | for Z shape beam | |
“HAT” | for hat shape beam | |
“CROSS” | for cross shape beam | |
“HEXA” | for hexagonal beam |
bl_get_arb_beam_section_data | (id, points, nploop, srp ) |
Description: | ||
Function to find the X,Y coordinates of the boundary points, the numbers of points on each loop, and the stress recovery points with the given database section ID. | ||
Input: | ||
INTEGER | id | The database ID of an existing arbitrary section. |
Output: | ||
REAL | points(npoints,2) | X,Y coordinates of all boundary points in sequence. |
INTEGER | nploop(nloops) | Number of points on each boundary loop. |
INTEGER | srp(4) | Stress recovery points using the indexes in the points array. |
Return: | ||
INTEGER | status | The status from database function calls (OK = 0 ). |
bl_get_arb_num_points_loops | ( id, npoints, nloops ) |
Description: | ||
Function to find the number of points and the number of loops with the given section ID. | ||
Input: | ||
INTEGER | id | The database ID of an existing arbitrary section. |
Output: | ||
INTEGER | npoints | The total number of boundary points of the arbitrary section. |
INTEGER | nloops | The number of boundary loops of the arbitrary section. |
Return: | ||
INTEGER | status | The status from database function calls (OK = 0 ). |
blgetcentersarby | ( entyp, prop, centroid, shear ) |
Description: | ||
This function finds the coordinates of the shear center of an arbitrary section with the given section properties and centroid coordinates. | ||
Input: | ||
INTEGER | entyp | Entity type =1 for PBAR, =2 for PBEAM. |
REAL | prop (30) | Section properties calculated in the order of the property fields in the MSC Nastran entries. |
REAL | centroid (2) | X,Y coordinates of the centroid. |
Output: | ||
REAL | shear (2) | X,Y coordinates of the shear center of the arbitrary section. |
blgetperimarby | ( np, points, perim ) |
Description: | ||
Function to calculate the exterior perimeter of an arbitrary section. | ||
Input: | ||
INTEGER | np | The number of points on the outer loop (Loop 1.) |
REAL | points (np,2) | X,Y coordinates of all boundary points in sequence. |
Output: | ||
REAL | perim | The exterior perimeter of the arbitrary section. |
blgetproparbyCheck | ( entyp, npoints, nloops, points, nploop, srp, prop, nprop, centroid ) |
Description: | ||
Function to compute the sectional properties for a given arbitrary section boundary defined by a number of loops each containing a series of points. This function requires a license for the beam evaluator. If a license is not available, it will return a value of 7, and display a message. | ||
Input: | ||
INTEGER | entyp | Entity type =1 for PBAR, =2 for PBEAM. |
INTEGER | npoints | Number of total boundary points. |
INTEGER | nloops | Number of boundary loops. |
REAL | points(npoints,2) | X,Y coordinates of all boundary points in sequence. |
INTEGER | nploop(nloops) | Number of points on each boundary loop. |
INTEGER | srp(4) | Stress recovery points using the indexes in the points array. |
Output: | ||
REAL | prop (30) | Section properties calculated in the order of the property fields in the MSC Nastran entries. (See below) |
INTEGER | nprop | The number of valid properties in the prop array. |
REAL | centroid (2) | XY coordinates of the centroid. |
Return: | ||
INTEGER | status | 0 - OK 1,2,3 - invalid section 5 - invalid entyp 6 - zero area 7 - No license |
PBAR (entyp = 1) | PBEAM (entyp = 2) | ||
1 | A | 1 | A |
2 | I1 | 2 | I1 |
3 | I2 | 3 | I2 |
4 | J | 4 | I12 |
5 | NSM* | 5 | J |
6 | FE* | 6 | NSM* |
7 | C1 | 7 | C1 |
8 | C2 | 8 | C2 |
9 | D1 | 9 | D1 |
10 | D2 | 10 | D2 |
11 | E1 | 11 | E1 |
12 | E2 | 12 | E2 |
13 | F1 | 13 | F1 |
14 | F2 | 14 | F2 |
15 | K1 | 15 | K1 |
16 | K2 | 16 | K2 |
17 | I12 | 17 | S1* |
18 | S2* | ||
19 | NSIA* | ||
20 | NSIB* | ||
21 | CWA | ||
22 | CWB | ||
23 | M1A* | ||
24 | M2A* | ||
25 | M1B* | ||
26 | M2B* | ||
27 | N1A | ||
28 | N2A | ||
29 | N1B | ||
30 | N2B |
cline_section_create | ( section_name, numbranches, bbx, bby, xloc, yloc, Tb, Te, bdx, bdy, edx, edy, slen, srp, ndiv, arctol ) |
Description: | ||
Create a centerline section with the given section name and branch information. | ||
Input: | ||
STRING | section_name | Section name |
INTEGER | numbranches | Number of branches "n". |
REAL | bbx | Beginning x point. |
REAL | bby | Beginning y point. |
REAL (n) | xloc | Ending x points for each branch. |
REAL (n) | yloc | Ending y points for each branch. |
REAL (n) | Tb | Beginning thicknesses for each branch. |
REAL (n) | Te | Ending thicknesses for each branch. |
REAL (n) | bdx | Beginning x slopes for each branch. |
REAL (n) | bdy | Beginning y slopes for each branch. |
REAL (n) | edx | Ending x slopes for each branch. |
REAL (n) | edy | Ending y slopes for each branch. |
REAL (n) | slen | Arc lengths for each branch. |
INTEGER (4) | srp | Stress Recovery points. |
INTEGER (n) | ndiv | # Division |
REAL | arctol | Max Chordal deviation for curved sections. |
Output: | ||
None. |