Source code for xsect.calc.cruciform
from __future__ import division
from .angle import angle_points
from .multi import multi_section_summary
__all__ = ['cruciform_points', 'cruciform_summary']
[docs]def cruciform_points(leg1, leg2, thickness1, thickness2=None, separation=0):
"""
Returns an array of cruciform boundary points of shape (N, 2).
Parameters
----------
leg1 : float
The length of the legs in the vertical direction.
leg2 : float
The length of the legs in the horizontal direction.
thickness1 : float
The thickness of `leg1`.
thickness2 : float
The thickness of `leg2`. If None, the thickness is assumed the same
as `thickness1`.
separation : float
The separation distance between connected legs.
"""
a = angle_points(leg1, leg2, thickness1, thickness2)
a += (0.5*separation, 0.5*separation)
b = a * (-1, 1)
c = a * (1, -1)
d = a * (-1, -1)
return a, b, c, d
[docs]def cruciform_summary(leg1, leg2, thickness1, thickness2=None, separation=0):
"""
Returns a dictionary with a summary of cruciform properties.
Parameters
----------
leg1 : float
The length of the legs in the vertical direction.
leg2 : float
The length of the legs in the horizontal direction.
thickness1 : float
The thickness of `leg1`.
thickness2 : float
The thickness of `leg2`. If None, the thickness is assumed the same
as `thickness1`.
separation : float
The separation distance between connected legs.
"""
p = cruciform_points(leg1, leg2, thickness1, thickness2, separation)
return multi_section_summary(p)