I am trying to find the Beam Displacements class/ method from the Karamba API. I am referring to the component available in the GH interface. I was unable to locate it in the online docs nor in the decompiled dll files.
Hi @moo,
it is in KarambaCommon: Karamba.Results.BeamDisplacements.solve(…):
///
/// component for retrieving translational and rotational displacements on elements.
///
/// modelIn: model from which to retrieve displacements/rotations.
/// retElemIds: list of identifiers of elements for which to retrieve results.
/// retElemGuids: list of guids of elements for which to retrieve results.
/// retLcId: name of load-case for which to retrieve results. -1 means all load-cases.
/// ts: parameter values 0 smaller than t smaller than 1, where to retrieve results (on beams).
/// trans: translational displacements: list-structure: load case, element, state.
/// rot: rotational displacements: list-structure: load case, element, state.
public static void solve(
Model modelIn,
List retElemIds,
List retElemGuids,
string retLcId,
List ts,
out List<List<List>> trans,
out List<List<List>> rot)
so, if I understood correctly the beam must be divided into elements (list of lines) before analysis like how I would set up a shell in Karamba?
I have this confusion because we are able to input a curve parameter where we want the nodal displacement, so does Karamba divide the mesh based on the elements created, or does it divide the beam elements on its own?
for shells there are currently (version 2.2) only mesh- and point-loads available. If you want to have line loads you need to embed dummy beams in the shell.
The LineToBeam-component of Karamba3D divides curved lines into straight segments. These are not further subdivided. The straight beam elements give exact results since they are based on a power series method (see reference [10] in the manual).
Hi @moo,
the ‘Elem’ output of the ‘LineToBeam’-component is of type ‘BuilderElement’. This class has the method ‘guid’ which returns the element’s GUID.
– Clemens