Git Product home page Git Product logo

tikz-structuralanalysis's People

Contributors

agmartin2 avatar ccaprani avatar corentinthomee avatar grote-beer avatar hackl avatar jlblancoc avatar juppees avatar krysros avatar sononicola avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tikz-structuralanalysis's Issues

Integration with structure solving software?

Hi @hackl !

First of all: congrats for this great project, I really loved to see it around, and the resulting plots look fantastic!! 👍

I has been pursuing a similar project for years, but I started from the opposite side: a C++ backend capable of solving (2D for now) static structure analysis. Including meshing, it can plot detailed plots of all basic stresses, deformations, etc.

I'm just writing to explore the possibility of, somehow, integrate my solver (available here) with your package in some way, such that the resulting deformed structures could be also plotted or, at least, the reaction forces, or some selected subset of numerical results.

It would require exporting the user-given definition of a structure into a text file in a format that you can see in these examples, then invoking the program ob-solver with appropriate parameters, and reading back the results file.

My software is also capable of generating HTML5-based animations of animated structures, like in this example:
http://ingmec.ual.es/openbeam/fem/rdm-t06-prop03/

pr06_prop03_animated_000000

It's a lot of work, and I'm aware that you may be (just as I am!) swamped with other projects.
But couldn't helped myself writing a line to leave this possibility open...

Cheers,
JL

Additional options in the structural analysis package

Is there a way to add more options to the structural analysis package so as to be able to produce the shapes shown in the attached figures where you may:

  • Add an option for shading or hatching the diagrams (set hatch pattern, set shade color, you can also set such options on/Off)

  • Set the sign conventions ( is +ve down or up? and put the sign inside the diagrams, set such options on or off as well, drawn moment at tension side or not, since some reference do reverse the sigh convensions)

  • Show or hide tangents to curves, and are these tangents drawn in dotted lines or continous lines and set line thickness (For the purpose of emphasizing how the diagrams are drawn, also add it such that these options can be set on or off)

  • Put load values inside circles (To differentiate between concentrated loads and distributed loads in free bosy diagrams)

  • Set color and style (Thickness, dotted...) for arrows of loads....

  • put additional text (Insert equations emphasizing text and symbols, arrows......to explain the diagrams more accurately)

  • Adding vertical lines between dagrams in order to emphasize zero and maximum shear, zero and maximum moment: draw vertical lines from their location to point of load application and also vertical lines from zero shear to maximum moment and zero moment to maximum shear?, draw vertical lines freely between any 2 diagrams (Also set line style if dotted, continous... as well as line thickness and color)

  • Adding dimensions lines + dimensions between any 2 points you choose and set whether such dimensions are aligned or vertical or horizontal, also dimensions for non-linear segments.

  • Add sections and emphasize each section with a seperate styling in all diagrams

Is there a way to add the above options so as to produce the shapes shown in the attached figures?

https://tex.stackexchange.com/questions/561473/generating-structural-analysis-diagrams?noredirect=1#comment1415704_561473

Binder1_Page_2

Binder1_Page_1

Specifying styling for line widths

Hi Jurgen - really love this package - well done! I have forked it and am willing to do some development on the issue below, but thought I'd see what you think is a good approach first.

Problem
A typical use case is to present the same structure multiple times as a basis for some other plots; e.g. BMD, SFD, deflected shape, etc. Repeating the structure drawing code makes no sense, and so using a \tikzset and pic is really useful. Using this approach, styles can be altered as needed using scopes as suggested in the package documentation:

\tikzset{
	pics/grid/.style args = {#1/#2}{
	code={
		\dpoint{c}{0}{0}{0}; 
		\dpoint{d}{ -#1 }{0}{0};
		\dpoint{e}{0}{ #1 }{0}; 
		\dpoint{f}{ #1 }{0}{0};
		\dpoint{g}{0}{-#1 }{0}; 
		\dpoint{z}{ -#1 }{ -#1 }{0}; 
		
		\daxis{1}{z}; 
		
		\begin{scope}[#2]
			\foreach \startn/\endn in {c/d,c/e,c/f,c/g}
			\dbeam{1}{\startn}{\endn};
		
			\support{1}{d}; \hinge{1}{d}
			\support{3}{e}[90];
			\support{1}{f}; \hinge{1}{f}
			\support{3}{g}[270];		
		\end{scope}
		
		\dnotation{1}{c}{$C$}[below=2mm];
		\dnotation{1}{d}{$D$}[above right];
		\dnotation{1}{e}{$E$}[above left];
		\dnotation{1}{f}{$F$}[above right];
		\dnotation{1}{g}{$G$}[below right];
	}},
	pics/grid/.default=4/black
}

One issue I have found is that line thicknesses cannot be changed using this approach. This is because the library defines line thickness as follows:

\tikzstyle{hugeLine}=[line width=\DhugeLineWidth,]

where \DhugeLineWidth is

\newcommand{\DhugeLineWidth}{2pt}

as a result, including line width in argument #2 of my pic above has no effect.

The problem can be solved by doing the following:

\begin{scope}[hugeLine/.append style={line width=1mm}]
    \pic{grid};
\end{scope}

but this requires the user to access the undocumented innards of the library (i.e. hugeLine in this case), and it may change the line width on elements other than those expected (wherever hugeLine is used to draw elements in the scope.

Question
So my question is: what is the best way to adapt the library code to allow for line thickness specifications?

Solutions?
In a bid to be helpful, I'm wondering if the solution is something like:

  1. Alter the commands definitions to include the option of overriding line widths;
  2. Documenting and exposing the library tikzset styles

I don't like (1) because it means editing all the library commands (lots of work); it also means more complex commands (additional argument); and it is inconsistent tikz design which should be all updateable through /.style appends or scope (which I prefer for simplicity).

I don't like (2) because it would mean introducing tikz styles for every type of element drawn, e.g. bending beam, truss rod, invisible just to name the ones possible for \dbeam.

On balance I think (2) is easier for both normal and advanced users. Is there a third (and better) solution?

Thanks!

Add option to define a point relative to another point

It would be great if it were possible to define a point relative to another point, for example set point B 2 units to the right of point A. When changing a drawing, this would make it much easier to shift groups of points.

Updating the stanli package on CTAN to latest version

I’ve been using the stanli package and have found the features, such as roller supports, in the latest GitHub version quite beneficial. I noticed that the version in the CTAN repository doesn’t reflect these latest updates. Would it be possible to update the CTAN package to match the current GitHub version?

Many users rely on CTAN for their LaTeX package management, and having the most recent update available there would be incredibly helpful. If there’s anything that myself or others can do to assist with this process, please let us know.

Thank you for your work on maintaining this useful resource.

Add option to draw any curve between two points as lineload

Hello,

I am a student assistant for a structural mechanics course and prepare presentations, as well as assignments with this amazing package.
I our course however, we use more intricate lineloads than just linear ones. It would be nice to have a curved option (like bezier curves, I think tikzpgf supplies that) that allows to shape them.

E.g.: It would be a lineload type where I would give the control point of the curve.

Sadly I do not know TeX well enough to modify the .sty file myself.

How much effort would it be to add that? I can try to pr a solution, but that may not be up to standards.

Chenjox

Avanced Internal Force Lines

Hello there,

I really like your awesome tikz-library that you created.
I wonder is it possible to to draw internal force lines with kinks somehow? (Like in the figure shown below)
What I am doing right now is I use the \internalforces command for each sub-segment. this however, has the unwanted side-effect that at the kinks, the force-line goes back to the beam.

Do you know any simple way in which this could be avoided? (I am willing to modify the stanli.sty file, but Im new to tikz..)

Best Regards,
Jakob
capture

About the style and naming of supports with rollers

Hi, Jürgen,

I have been recently playing with floating bearings using rollers, before noticing about this github repo and that some supports with rollers were already added to it. Thanks for the addition to you and Jose Luis Blanco.

The difference between what I prepared and what was recently contributed to github is that I used only two rollers and that I named the support type as "2oo" to emphasize that this is a type 2 support represented with two rollers. I think that using this kind of naming is way more intuitive than adding a new number for just an alternative representation of the same support. Also, I am way more used to find two rollers instead of three for that kind of support.

I am aware that this may be a matter of taste, so did not prepare a pull request. However, here goes the suggestion, in case you find it reasonable. If so, I can prepare a pull request for it.

Best regards,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.