xsection.CompositeSection#

../../_images/composite-tee.png

A composite T-section with steel reinforcement.#

class xsection.CompositeSection(patches, materials=None, poisson=None, holes=None, measure_e=None, **kwds)#

A non-homogeneous cross-section composed from multiple sections.

Parameters#

patches: list[Section]

A list of sections to combine into a composite section.

materials: dict[str, Material], optional

Mapping of material names to material properties. If provided, materials will be assigned to patches based on their “group” attribute.

__init__(patches, materials=None, poisson=None, holes=None, measure_e=None, **kwds)#

Methods

__init__(patches[, materials, poisson, ...])

add_patch(patch)

add_patches(patch)

create_fibers([group, warp_type, center, ...])

Create fibers for a finite element simulation.

exterior()

interior()

linspace(start, stop, num[, endpoint, center])

Create num copies of this section with centroids linearly aranged from start to stop.

rotate([angle, principal])

summary([shear, format])

torsion_warping()

translate(dr)

Attributes

centroid

elastic

patches

Example#

import veux
from xsection import CompositeSection
from xsection.library import Rectangle, Circle
from xara.units import iks

d   = 18*iks.inch
b   = 20*iks.inch
t   =  6*iks.inch
cv  =  2*iks.inch
bar = Circle(0.4, z=2, mesh_scale=1, divisions=10)

c = CompositeSection([
      Rectangle(t,d),
      Rectangle(b,t).translate([0, -d/2-t/2]),
      *bar.linspace([-(b/2-cv), -d/2-t/1.5], [b/2-cv, -d/2-t/1.5], 4, z=2)
   ])

m = c.model
artist = veux.create_artist(c.model)
artist.draw_surfaces()
artist.draw_outlines()
veux.serve(artist)