Skip to content

Releases: cslotboom/planesections

1.3 - Labeled Diagrams

18 Feb 23:39
Compare
Choose a tag to compare

In 1.3, it's possible to add labels! No more guessing what diagram values are at discontinuities! This is achieved the library textalloc.

image
image

Diagram labels:

  • Added a dependency for the library textalloc
  • Added a kwarg "labelPOI" to plotting functions. Setting it to true can be used to find points of interest for shear/moment/deflection diagrams
  • Added a kwarg "POIOptions" to plotting functions. This dictionary can be used to flag certain POI labels (i.e. maximum, labeled points, etc.) on or off.

Diagram misc:

  • fixed distributed element forces so they always have at least 3 legs in the diagram.

1.2 - New Solver and Arbitary Linear Loads

28 Dec 22:53
Compare
Choose a tag to compare

Change notes:
This was a pretty big release with some significant back-end changes. The most significant change was OpenSees has been made an optional installation, and is not included by default. I've also added linearly distributed that can vary arbitrarily between two points, we can now do something like what's shown below. The diagram classes have been completely reworked to facilitate stacking better, but this isn't something that would affect the typical user. See detailed breakdown below.

Beam-With-Arbitarary-LinearLoad

General

  • Restructured the analysis module, there are now sub-files for each analyzer.
  • Restructured the diagram folders, there are subfolders that can be used to support each diagram type.
  • Added a linear load class
  • Changed how force labels work.
    • Before labels assigned to forces were assigned to nodes as well by default.
    • Now force labels are separate and not added to nodes.
    • If you also want a node label at a certain point it must be manually added by setting the flag
    • There are many contexts where you would want a force label to be plotted, but not a node label.

Analysis:

  • Added the PyNite solver for 2D beams
  • Made OpenSeesPy an optional dependency.
  • Added element loads that are linearly distributed between two points for 2D beams.

Diagram

  • Overhauled the back-end and plotting classes, adding a bunch of helper classes to facilitate stacking of linear loads.
  • Added vertically distributed loads to the plotter.

Examples

  • Changed the solver used in examples to the PyNite solver

1.1 - Linear Loads

03 Sep 04:33
51f1738
Compare
Choose a tag to compare

We skipped a whole bunch of version tags! In 1.1, the following has been updated:

Loads:
Linear loads are needed for snow drifts and retaining wall design!
They're been added in the latest patch, along with updating the diagram corectly

  • Added Linear Loads!
  • Added (vertical) linear loads to the beam diagram.

Fixities:
Working with a list of fixities is a little awkward.
For a nice user experience I've added a object that abstracts away the list of fixity.
You can now use "FixityTypes2D" to create fixities in 2D.

  • Added a fixity object that can be used in place of using lists.
  • Added the FixityTypes2D object, which can be used to make new fixities objects for 2D beams.

Diagram:
In prior versions, diagrams were set up so if there were positive and negative loads, they would go on the same side of a plot.
Now diagrams are set up so negative and positive loads are on opposite sides and stack as such

0.6 - 3D beams

08 Aug 06:02
Compare
Choose a tag to compare

0.6 - 3D Beams

Analysis of 3D beams have been added to planesections! These work similar to their 2D counterpart. Note that diagrams don't work for 3D beams, and probably won't for some time. It's a big step in complexity to go from drawing 2D diagrams to 3D diagrams.

To make 3D beams work, a number of functions were refactored. This was preferable to creating and maintain two different version of each class and function, hooray! However, it also mean I needed to refactor many classes, and change some names, (boo). Short term this may mean a bit of pain, as many classes and functions with "2D" in there name have been changed. These functions still work and have deprecated with warning messages, but a few breaking changes exist, see below.

Breaking changes:

  • for Sections, the attributes Ixx was renamed to Iz
  • (possible breaking) Sections have been moved to their own file - if you directly imported, i.e. from planesections.builder there will now be an error.

3D beams added and subsequent tests.

  • Created Node objects and moved logic from Node2D there. Node2D inherits from Node.
  • Created Node3D objects that inherits from Node2D.
  • Adapted Beam2D into Beam. This class can service2D and 3D beams.
  • Adapted OutputRecorder2D to OutputRecorder. This applies to 2D and 3D beams
  • removed the material propreties attribute from beams and added a method instead
    • renamed the attributes Ixx to Izz (raises no deprecation warning)
  • Replaced all 2D plot funcitons with generic names (i.e. plotShear2D -> plotShear)
    • These can be called on 2D and 3D beams.
  • Added Example Ex2d-3D beams, showing how 3D beams can be used.

Misc. Other changes

  • allowed section to be passed to the beam creation functions newSimpleEulerBeam2D and newEulerBeam2D
  • changed newEulerBeam2D and newSimpleEulerBeam2D to newEulerBeam newSimpleEulerBeam

v0.5 - Postprocess Functions and Diagram Labels/Units.

17 Jul 03:02
Compare
Choose a tag to compare

Changes and Rational

Gettings results
Moving forward, results will be pulled from the beam with functions instead of beam methods
The theory is that functions will be easier for users to "discover" when reading documentation, rather than class methods which can get buried.
It also seperates out concerns and prevents the main beam classes from becoming too large.

Diagram Labels and Units:
Labels have been added to the diagrams. A system for managing diagram units was also added to support this.
A "diagram unit manager" class has been added in the environment module.
This unit manager will have a "Active Environment" for units.
This allows users to specify units, without adding a flag to each function.
This was done so that Imperial unit users aren't constantly having to specify they want Imperial units. Instead, they just have would set their active environment once.
More environments for Imperial will be added over time.


Additions:

  • Added functions to poll results from the beam, including deflection, rotation, moment
  • Added more test cases for output beam results, including deflection and rotation.
  • Added more tests for import structure.
  • Added labels to the beam diagram plots
  • Added a environment module and unit manager to help make managing units easier.
  • Restructured the examples and added a section for managing diagram units.

Misc. Changes:

  • EulerBeam2D Changed to not use mutable default arguments
  • The default scale for plotDisp is now 1000 instead of 0.001
  • Changed the default beam plot to have it's line be in front of the support circles
  • Added error handling to the addPointLoad function.
  • Minor tweaks to how supports look

v0.4.3-beta

04 Jul 00:51
Compare
Choose a tag to compare
v0.4.3-beta Pre-release
Pre-release

The first official beta release! PlaneSections is now stable enough for other people to use it. It's possible to:

  • Make diagrams of the beam for most support conditions and loads
  • Make output section plots for the beam
  • Define basic sections for the beam
  • Use the unit package to apply a consistent set of units in metric.

Documentation is an on going process, but a read-the-docs website is up and running. Three basic examples are also included.