Wiki

Clone wiki

strupy / SectionBase

###Description Instance of this class give you access to steel section profile library.

Most useful methods are:

.get_database_name() return database name
.get_database_sectionlist() return list of available profiles name
.get_database_sectiontypesdescription() return dictionary with section types description
.get_database_sectiontypes() return list with available section types
.get_database_sectionlistwithtype() return list with section names belong to some section type
.get_sectionparameters() return dictionary with section properties for given section name
.ui_get_sectionparameters() as above but it open UI to get section name
.get_parameters_description() return dictionary with section properties description
.find_withparameter() find section list for given requirement, for example you can get section list with mass less than 50 kg/m - all section properties available to use

###Source code >>>


###Use examples

In [1]: import strupy.units as u

In [2]: from strupy.steel.SectionBase import SectionBase

In [3]: base = SectionBase() # instance

In [4]: base.get_database_name()
Out[4]: 'European Section Database'

In [5]: base.get_database_sectionlist()
Out[5]: 
['CAE 100x10',
 'CAE 100x12',
 'CAE 100x7',
 'CAE 100x8',
  .....
 'IPE 550',
 'IPE 600',
  ....
 'UUPN 240',
 'UUPN 260',
 'UUPN 280',
 'UUPN 300',
 'UUPN 320',
 'UUPN 350',
 'UUPN 380',
 'UUPN 400',
 'UUPN 80']

In [6]: base.get_database_sectiontypesdescription()
Out[6]: 
{'CAE': 'Equal angles (x-y axis, parallel to legs)',
 'CAEP': 'Equal angles (u-w main axis)',
  ..... 
 'IPEA': 'European I-beams IPE-A',
  ....
 'UUAP': 'Double UAP channels back to back',
 'UUPN': 'Double UPN channels back to back'}

In [7]: base.get_database_sectiontypes()
Out[7]: 
['CAE',
 'CAEP',
  ...
 'HEA',
 'HEAA',
 'HEB',
 'HEC',
 'HEM',
  ....
 'UAPP',
 'UPAF',
 'UPE',
 'UPN',
 'UUAP',
 'UUPN']

In [8]: base.get_database_sectionlistwithtype('IPE')
Out[8]: 
['IPE 100',
 'IPE 120',
 'IPE 140',
 'IPE 160',
 'IPE 180',
 'IPE 200',
 'IPE 220',
 'IPE 240',
 'IPE 270',
 'IPE 300',
 'IPE 330',
 'IPE 360',
 'IPE 400',
 'IPE 450',
 'IPE 500',
 'IPE 550',
 'IPE 600',
 'IPE 80']

In [9]: base.get_sectionparameters('IPE 500')
Out[9]: 
{'Ax': 115.52 [cm2],
 'Ay': 63.49 [cm2],
 'Az': 50.99 [cm2],
 'Iomega': 124.94 [cm4],
 'Ix': 89.00 [cm4],
 'Iy': 48198.50 [cm4],
 'Iz': 2141.69 [cm4],
 'Wply': 2194.26 [cm3],
 'Wplz': 335.89 [cm3],
 'Wtors': 44.83 [cm3],
 'Wy': 1927.94 [cm3],
 'Wz': 214.17 [cm3],
 'b': 20.00 [cm],
 'ea':  1.02 [cm],
 'es':  1.60 [cm],
 'figure': 'IPE',
 'figuregroup': 'Single I-beam',
 'gamma': 0.0,
 'gap':  0.00 [cm],
 'h': 50.00 [cm],
 'mass': 90.68 [kg/m],
 'ra':  2.10 [cm],
 'rs':  0.00 [cm],
 'sectionname': 'IPE 500',
 'surf':  1.74 [m],
 'vpy': 10.00 [cm],
 'vpz': 25.00 [cm],
 'vy': 10.00 [cm],
 'vz': 25.00 [cm]}

In [10]: base.ui_get_sectionparameters() #it will open UI Tkinter interface to get profile name and return properties
Out[10]: 
{'Ax': 88.91 [cm2],
  ....
 'sectionname': 'HE 300 AA',
 'surf':  1.70 [m],
 'vpy': 15.00 [cm],
 'vpz': 14.15 [cm],
 'vy': 15.00 [cm],
 'vz': 14.15 [cm]}

In [11]: base.get_parameters_description()
Out[11]: 
{'Ax': 'Cross-section area',
 'Ay': 'Reduced section area for XY-shear deformation calculations - when shear force influence along Y axis is taken into consideration',
 'Az': 'Reduced section area for XZ-shear deformation calculations - when shear force influence along Z axis is taken into consideration',
 'Iomega': 'Warping constant (for thin-walled sections)',
 'Ix': 'Torsional moment of inertia',
 'Iy': 'Moment of inertia about the Y axis',
 'Iz': 'Moment of inertia about the Z axis',
 'Wply': 'Plastic section modulus about Y axis',
 'Wplz': 'Plastic section modulus about Z axis',
 'Wtors': 'Section modulus for calculations of torsion stresses',
 'Wy': 'Elastic section modulus about Y axis',
 'Wz': 'Elastic section modulus about Z axis',
 'b': 'Section width',
 'ea': 'Web thickness',
 'es': 'Flange thickness',
 'figure': 'Name of section group',
 'figuretype': 'General type of section figure',
 'gamma': 'Rotation angle from local to principal coordinate system (maximum values of section moments of inertia)',
 'gap': 'Distance between chords in the complex sections',
 'h': 'Section height',
 'mass': 'Nominal weight per unit length',
 'ra': 'Fillet radius (web)',
 'rs': 'Fillet radius (flange)',
 'sectionname': 'Designation',
 'surf': 'Painting surface (section perimeter)',
 'vpy': 'Extreme fiber distance from the Z local axis of the point on the negative side of the Y axis',
 'vpz': 'Extreme fiber distance from the Y local axis of the point on the negative side of the Z axis',
 'vy': 'Extreme fiber distance from the Z local axis of the point on the positive side of the Y axis',
 'vz': 'Extreme fiber distance from the Y local axis of the point on the positive side of the Z axis'}

In [12]: base.find_withparameter(parameter='mass', value=40*u.kg/u.m, delta_n=-0.2, delta_p=0.2)
Out[12]: 
['TREC 250x150x6',
 'PLAT 800x6',
 'DCEP 120x14',
  ....
 'PLAT 350x12',
 'IPE A 300',
 'PLAT 500x12',
 'PLAT 500x10',
 'HE 160 B',
 'TREC 250x100x8']

| up | | Home page |

Updated