cslotboom / planesections

A lightweight FEM beam bending library.
Apache License 2.0
77 stars 10 forks source link

[Question] Can I use this library only to plot my truss structures? #13

Closed Martin15135215 closed 9 months ago

Martin15135215 commented 11 months ago

I want to plot my simple truss (2D) and space truss (3D). Can I use this library only for this use case? I don't need the analysis function etc.

In this line, is it possible to install planesections with pip without the dependencies openseespy

cslotboom commented 10 months ago

Hey, apologies, missed this. Right now, I have no plans to add the for the trusses. I'd consider adding a diagram feature for 2D trusses if there was enough demand. 3D trusses would be pretty difficult, Matplotlib does not work well in 3D.

About having no OpenSeespy, let me look into this. In the next version (1.2), I add the pynite solver which can be used instead of OpenSeespy. It would be nice to have OpenSeespy as an optional dependency.

If you don't mind me asking, what is your issue with openseespy as a dependency? Are you worried about the license, or do you have issues with it because it's not pure python?

Martin15135215 commented 10 months ago

I can well understand your difficulties with the visualization in 3D.

My reasoning was that if I create my own library and have this library as a dependency, it will automatically install OpenSeespy even if I don't need it.

cslotboom commented 10 months ago

Yeah I see - is the issue with OpenSeespy specifically, or just any analysis library?

Martin15135215 commented 10 months ago

I am not a lawyer, however if I wanted to create an open-source python library that depends on planesetion. Do I need to also mention that there are some licences restriction even if I don't use planesection function, classes etc. that use openseespy?

Edit: Did you hear of frame3dd? This is also a solver for beam and there is also a python binding. See https://github.com/WISDEM/pyFrame3DD/tree/master

cslotboom commented 10 months ago

Yeah I see. I also don't like the grey area OpenSees is in, you shouldn't have to worry about stuff like this.

From what I'm gathering the license is the significant thing. In the next version I'm considering making openseespy a optional install, and pynite the default solver. Pynite is opensource under a MIT license, so that would solve the licensing concerns.

I'll look into frame3dd! It would be nice to have a faster option than Pynite.

cslotboom commented 9 months ago

FYI, the latest release has made OpenSees an optional dependency. Let me know if this solves what you were looking for.

Martin15135215 commented 9 months ago

I greatly appreciate your help. I am still looking for a way to plot a truss in 3D. One possibility is Pynite, but I have problems with Jupyter in Unix. Another one is to test it myself with Pyvista.

cslotboom commented 9 months ago

Consider taking a look at this library, it might fit your use case: https://github.com/angelsolaorbaiceta/Mechanics/tree/master/structures

Martin15135215 commented 9 months ago

Thank you for telling me about this helpful book! A beginner book in Python explaining how matrix, geometry etc are implemented was something I didn't know about.

Martin15135215 commented 9 months ago

FYI: CALFEM is also a solver for beams etc.