Compression only elastic link in Grashopper


I am trying to create a compression only link between two structural lines in grasshopper. My current thinking is to do this with the user text input, however I run into some errors when I run the SSD file.
how do I go about creating the compression only link?

I have attached images of what I have done and where I got them from.




First of all the structural comands in Grasshopper work with SOFiMSHC. In your second picture you show a SOFiMSHA command. So your input is not working, because you are mixing different SOFiSTiK modules.
Every command in Grasshopper revers to one or multiple commands in the SOFiSTiK modules. So in your case you are working with the E Link. If you don’t know to which TEDDY command this Grasshopper command belongs, you can add a text pannel after the SOFiSTiK modul → SOFiMSHC.

In the screenshot you see the TEDDY input for two structural lines (SLN) and the definition of a support and/or kinematic coupling on these two SLNs. If you don’t know the commands, have a look at the corresponding TEDDY manual.

SSD / TEDDY > Help > User Manuals > All Manuals… > sofimshc > …

Now that you know how to find the TEDDY command, you can look in the right chapter of the manual. There you will see that instead of an explicit bedding you can also enter a material working law (SLNS MNO)

Now you just have to create a nonlinear material worklaw in AQUA. This can be done via the definition of a bedding or the definition of a SMAT (Properties for Springs and Beam Hinges). This can be done with the following text input.

This is only an example, please adjust the forces to your needs. Pay attention to the direction of the spring. You may need to adjust the signs.

The next step is to assign the worklaw to the elastic link.

The last thing you need to do is to calculate the project non-linearly. Therefore, add the command SYST PROB NONL to the ASE module.


To help you with this workflow, I have created a simple example.
Grasshopper SLN ELink.3dm (26.0 KB)
Grasshopper SLN (20.9 KB)

I hope this helps you.

Best regards
Frederik Höller
Your SOFiSTiK Support Team

1 Like

Thank you, that is very helpful. If I wanted the compression connection to be rigid do I just make the axial stiffness of the spring infinite or is it better to use the R Link grasshopper component and define the worklaw the same as for the E Link?

If you still want to consider only compression, then I would probably use the working law (or the definition of spring with SMAT → see above).
If you want a completely rigid connection, I would use the R-Link.

But as you can see, there are always different ways to solve your problem. Always try to look at the TEDDY output created and understand how the code works. In your example, you can compare the two Grasshopper commands by visualising the TEDDY output with a panel. As you can see in the screenshot, the difference is that they produce a different definition of the SOFiMSHC command SLNS. So look in the manual and compare the two inputs :wink: .

(Project from above no details changed)

1 Like

Hi there! I am facing a similar problem, but with a support spring, I would like to avoid any material to be defined. Is it possible to define the CRAC value to get a non-compression spring?

I tried, but I don’t get any of the springs loaded (LC 1001), and I can’t find the reason. These are the scripts I am working with:
GL33A_Base_Shell.dat (80.1 KB)
GL33A_Base_Shell_Analysis.dat (4.9 KB)

Thank you!

I just realized that my spring point is not included in the Quad, which is likely why my springs don’t get loaded. How can I solve this issue? XLFG just allows avoiding the intersection.