Point Load on Mesh

Hi All,


I am using Sofistik with Rhino/Grasshopper and have a recurring issue when trying to apply point loads to a structural area. I have a membrane which I have defined as a surface in grasshopper which Sofistik then turns into mesh. I would like to apply point loads to this mesh at specific locations. I have defined structural points at the desired locations; however, when Sofistik meshes the surface, it ignores these structural points. This means that when the point loads are applied, these nodes do not exist on the mesh. I have gotten around this problem before by defining these structural points as support points which forces Sofistik to consider them in the meshing process, but then I have to turn them off before I apply the loads and run the analysis. Does anyone know a more elegant way to force Sofistik to add specific points to a mesh? Sorry if there is a particularly straightforward answer; I haven’t been able to find a way to do it yet.


Ich verwende Sofistik mit Rhino/Grasshopper und habe ein wiederkehrendes Problem, wenn ich versuche, Punktlasten auf eine Strukturfläche anzuwenden. Ich habe eine Membran, die ich in Grasshopper als Fläche definiert habe, die Sofistik dann in ein Netz umwandelt. Ich möchte auf dieses Netz an bestimmten Stellen Punktlasten aufbringen. Ich habe an den gewünschten Stellen Strukturpunkte definiert, aber wenn Sofistik die Fläche vernetzt, ignoriert es diese Strukturpunkte. Das heißt, wenn die Punktlasten aufgebracht werden, sind diese Knoten nicht auf dem Netz vorhanden. Ich habe dieses Problem schon einmal umgangen, indem ich diese Strukturpunkte als Stützpunkte definiert habe, was Sofistik dazu zwingt, sie bei der Vernetzung zu berücksichtigen, aber dann muss ich sie ausschalten, bevor ich die Lasten aufbringe und die Analyse ausführe. Kennt jemand eine elegantere Möglichkeit, Sofistik zu zwingen, bestimmte Punkte zu einem Netz hinzuzufügen? Tut mir leid, wenn es eine besonders einfache Antwort gibt; ich habe noch keine Möglichkeit gefunden, dies zu tun.



Without seeing some input code, it’s hard to tell.

  • Give the spt:s a number (think you have already, since you are applying point loads.)
  • Use Ctrl Opt Deln 0 in sofimshC so unused elements don’t get deleted (if your points are slightly above/below the area)

If they appear with the none-deletion option you have missed the surface.

If the nodal coordinate is slightly off compared to your surface (rounding error), perhaps you can apply the following approach that works in teddy:

  1. Define your sar first.
  2. Define your spt with planar coordinates (e.g. x/y) and use projection (spt ref AR)

However: Why don’t you just skip the nodes and apply the loads on the surface with coordinates?

Thanks for the response and suggestions. I have tried your suggestions but without much success.

To answer your last point, I am not sure how I could do this because I do not have access to the mesh node coordinates until after Sofistik does the meshing process. In grasshopper, I am giving Sofistik a surface, which it then generates a mesh from. The only way for me to apply the loads directly to the mesh nodes would be to run SOFiMSHC, then load the geometry back into grasshopper in order to identify the nodes I want to apply loads to, and then run SOFiLOAD from this information. This would be very tedious to do every time I make a change, so I was hoping to avoid this.

I have also been trying to work with a structural line to apply a line load along the mesh and have also been encountering issues. If I simply define a structural line without a cross section or fixation, but assign it a group number, it disappears once SOFiMSHC has run. As a result, when I try to define a line load in SOFiLOAD that references this line, then it cannot find a line to apply the load to.

Another option I was looking into was directly using the structural area edge as the line to apply a load to. Do you know if this is possible.

You can apply loads in 2 different ways:

  1. Apply them directly on the structural element, i.e. node/beam/quad (e.g. node in sofiload)
    In this case you need to know the node and it’s number
  2. Apply them as free loads (e.g. poin in sofiload)
    In this case you only need to know the application coordinate

In most cases one does not adjust the meshing to fit the load applications. Instead you apply a free load and sofiload/ase translates it to the corresponding nodal loads.

On another note:
There seems to be something wrong with the way you define your structure. Sofimshc should not be arbitrarily deleting spt:s and sln:s.

I am not really that familiar with the rhino/grasshopper interface, as I stick to pure text files (teddy) myself. But sofimshc would be useless to me if it weren’t possible to create arbitrary sln/spt in an existing mesh. So it should work.