adtzlr / trusspy

Nonlinear Truss Solver for Python
http://trusspy.readthedocs.io/
GNU General Public License v3.0
53 stars 11 forks source link

Plot supports based on boundary conditions #14

Closed adtzlr closed 1 year ago

adtzlr commented 4 years ago

Add an option to draw supports (roller, pinned) inside the model plot. As TrussPy is 3D-based this seems a quite complicated task: Which symbols should be used? The Classic symbols in each direction? Which plane should be used to draw the symbols? Is it possible that the 2D plots are still projections of the 3D scene or are special considerations based on 2D/3D needed?

srtgn commented 4 years ago

This link from Anastruct might be useful: https://anastruct.readthedocs.io/en/latest/supports.html

adtzlr commented 4 years ago

Thank you. Well, AnaStruct is a 2D analysis program for trusses and beams and therefore a fixed, a roller and a hinged support are well defined (the plane in which the supports are acting are clearly defined). TrussPy has only one type of boundary condition: fixed or free per nodal DOF. No specific supports for boundary conditions. Furthermore TrussPy only supports trusses, so a hinged and a fixed support are effectively the same as trusses do not carry moments. So there are two options: Implement new types of boundary conditions (roller_xy, roller_yz, roller_zx, fixed) and plot them accordingly at their acting planes. Or option 2: analyze the boundary conditions and place the correct support symbol in the plot. I would prefer the latter one and implement the symbols only for one plane (e.g. XZ-plane).

adtzlr commented 4 years ago

Then I could add a new keyword argument to the function plot_model(supports=True). Do you think this would be a good idea?

srtgn commented 4 years ago

Great idea!

adtzlr commented 4 years ago

Hey, I tried some things out but unfortunately I had no success in generating a stable code for drawing supports which works in 2D,3D, is efficient, easy to maintain...

I'm sorry but I have to delay this feature ~for another several weeks~. Sorry, I meant several years ⌛