planesections 1.3.5

Creator: bigcodingguy24

Last updated:

Add to Cart

Description:

planesections 1.3.5

PlaneSections



A lightweight finite element beam bending library built on libraries like PyNite and OpenSeesPy.
The goal of PlaneSections is to make easy-to-use beam anayses, which can be used to quickly document structural calculations.
NOTE:
Units for force and length must be applied to the beam in a consistent unit base for FEM.
PlaneSections has been design with Metric units in mind in terms of scaling diagrams. For those using imperial units, results will work with a consitent unit basis, but the scale of the digrams may be off.
PlaneSections is a FEM solver! Results are only stored at nodes specified by the user - all intermediate values in plots are linearly interpolated.
Contents

Installation
Features
Documentation
Demo
Coordinates
Solvers
Work Status

Installation
The default package is installable through pip.
pip -m install planesections


The package with the optional OpenSeesPy dependancy is installable with
pip -m install planesections[opensees]


Features:
2D and 3D beams can be anayzed under the following force types:

Point loads
Point Moments
Line Element loads
Linearly varying element loads (2D only).

Diagrams can also be made of 2D beams, but the support types that can be plotted are limited.
Documentation
All major functions and classes are documented on read-the-docs: https://planesections.readthedocs.io/en/latest/
Demo
The PlaneSections can analyze and document beam plots for calcualtions. Below we make a beam, create a diagram of it, then get the output bending moment and shear force diagrams. It's also possible to get rotation, and deflection diagrams but these are not shown here.
import planesections as ps

# Define node locations, and support conditions
L = 5
beam = ps.newEulerBeam(L)

# Define beam and fixities
pinned = [1,1,0]
beam.setFixity(L*0.1, pinned, label = '1')
beam.setFixity(L*0.9, pinned)

# Define loads
Pz = -1
beam.addVerticalLoad(0, Pz, label = 'A')
beam.addVerticalLoad(L*0.5, 2*Pz, label = 'B')
beam.addVerticalLoad(L, Pz, label = 'C')
beam.addDistLoadVertical(0, L, Pz)
beam.addDistLoadVertical(1, L*0.3, 5*Pz)

# Plot the beam diagram
ps.plotBeamDiagram(beam)

# Run the analysis
analysis = ps.PyNiteAnalyzer2D(beam)
analysis.runAnalysis()

# Plot the SFD and BMD
ps.plotShear(beam)
ps.plotMoment(beam)










Coordinates
The coordinant system used for beams is as follows:



Further Examples
See the examples folder for more examples!
Solvers
The opensees solver is included as an optional dependancy. It is significantly faster than the PyNite solver (~100x), but the license is more limited in use. OpenSees allows commercial use of the package, but does not allow resale without permission, so use at your own risk! OpenSees License.
Some restrictions exist for OpenSees license, so this library has been added as an optional dependancy
Status
PlaneSections is almost "feature complete" in terms of it's analysis functionality. The only additional analysis features I might include are:

Spring supports
Internal hinges
Better cross section support
These are not slated to be in the next release.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.