Planesections

Latest version: v1.3.5

Safety actively analyzes 623092 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

1.3

In 1.3, it's possible to add labels! No more guessing what diagram values are at discontinuities! This is achieved the library [textalloc](https://github.com/ckjellson/textalloc/blob/main/README.md).

![image](https://github.com/cslotboom/planesections/assets/50510141/9aafea72-4ff9-416a-a251-e79c61134091)
![image](https://github.com/cslotboom/planesections/assets/50510141/f170ba2b-fb10-450b-82f4-ef246219c736)

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

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](https://github.com/cslotboom/planesections/assets/50510141/12d44842-ec77-4f83-905c-63cca4e57cb4)


**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

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

<p align="center">
<img src="https://github.com/cslotboom/planesections/blob/main/doc/img/Beam-Diagram-Linear.png"" width="700">
</p>


**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

==========

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

0.6.0

0.5.1

**Changes and Rational**

<p align="center">
<img src="https://github.com/cslotboom/planesections/blob/main/doc/img/Beam-With-Labels.png" width="500">
</p>

**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

Page 1 of 2

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.