4.1.5: Definitions and Components
Do not panic in case some Karamba3d components turn red upon feeding them with your model. Read the error message. It usually contains information that helps you further.
This usually means that the system is kinematic and parts of the model are able to move freely without deformation. Perform the following the checks:
- Check the supports for forgotten support conditions.
- Check whether you defined a hinge next to a rotational support which allows the supported node to move freely.
- Plug the model into the "EigenModes" component. The first Eigenmodes will be the rigid body modes you forgot to fix. Save your model before doing that: Large models can take a long time to calculate.
- If the first few Eigenmodes seemingly show an undeflected structure there might be beams in the system that rotate about their longitudinal axis. Enable "Local Axes" in the "ModelView"-component and move the slider for scaling deformation in order to check this. If still nothing shows up use the "Nodal Displacements"-component and check whether there are non-zero nodal rotations in the system.
- Turn trusses into beams by activating their bending-stiffness. Be aware of the fact that a node has to be fixed by at least three trusses that do not lie in one plane.
- Remember that trusses have no torsional or bending stiffness and thus cannot serve to fix the corresponding rotations of a beam that attaches to the same node.
- Check whether an element has zero area, height or Young’s modulus.
Beam-sets have an orientation. You probably use beam-sets with opposing directions.
Check whether you disabled the correct degrees of freedom in the “Conditions” section of the “PreDisp”-component.
If the “ModelView”-component does not seem to react to selections done with the drop-down-list for load cases, check the value in the “ResCase”-input plug. Remember that its value is added to the result-case index selected on the drop-down-list. If the sum is negative all load cases will be displayed.
Check whether “Shaded Preview” is enabled in Grasshopper's "Solution"-menu.
Check whether your Rhino background color is black. Some types of tags are printed in black and do not show on a black canvas. You can change the text color in the “karamba.ini”-file (see section 4.1.6).
Set the “Faces/Cross section” slider of the “ModelView”-component to a value larger than two, such that the displayed result sufficiently corresponds to your idea of roundness.
When loading definitions based on outdated Karamba3D version a pop-up window will inform you that “IO generated x messages,. . . ”. Normally this can be ignored. It may happen however that very old Karamba3D components do not load. In this case put their current versions in place. Deprecated components have an “old” sign painted over their icon when you zoom in on them.
On some components the order of input-plugs changed over time (e.g. the “Assemble”-component). They will turn red when loaded and the runtime error message will state that one object can not be cast to some other object. In this case replace the old component with a new one and reattach the input-plugs accordingly.
Make sure that the beams cross sections you intend to optimize belong to the same family as those you want them to be selected from.
Increase the value at the “ULSIter”- and “DispIter”-input-plug. The cross section optimization algorithm is an iterative procedure. In case you stop too early – having limited the maximum number of iterations to a small value – the algorithm has no chance to converge and thus returns seemingly wrong results. Always check the “Info”-output of the component for information on the solution procedure.
Karamba3D recognizes a line input in the "LineToBeam"-component as a straight line connecting a start and end point. When you have NURBS curves (that have more than 2 control points and a curve degree higher than 1) referenced from Rhino or a grasshopper definition, these must first be discretized into line elements. This can be done easily using the "Rebuild"-command or component to convert the curve into a polyline. Make sure to explode the polyline into separate line elements before plugging it into a "LineToBeam"-component.