# 3.1.1 Assemble Model

To calculate the behavior of a real-world structure, its geometry, loads, and supports must be defined. The **“Assemble”** component gathers all the necessary information and creates a structural model from it (see Fig. 3.1.1.1).

<figure><img src="/files/OO8VQD8ChEv6DWCEY7yt" alt=""><figcaption><p>Fig. 3.1.1.1: The “Assemble”-component gathers data and creates a model from it.</p></figcaption></figure>

{% file src="/files/8BlAD8VhMeC6a9pxc4LB" %}

If beams are defined by node indexes, they will refer to the list of points provided at the **“Pts”** input plug: the first node in the list has index zero, the next one index one, and so on. The **“Pts”** input can also be used to give the model nodes a specific order.

The value at the **“LDist”** input plug defines the distance below which points will be merged into one. This helps in dealing with inaccurate geometry. The default limit distance is 5 mm.

{% hint style="info" %}
By default, elements with coincident nodes get rigidly connected.
{% endhint %}

Snapping together of nodes does not apply to points provided via the **“Pts”** input plug. This can be used for defining zero-length springs, such as the bolt connecting the two pieces of a scissor mechanism. In such cases, duplicate points can be provided via the **“Pts”** input. Elements connecting to these points do so in an alternating fashion: the first element connects to the first duplicate node, the next to the second, and so on. The actual connection between the elements can be made via a spring with zero length, as shown in Fig. 3.1.1.2. The local axes of zero-length spring elements correspond by default to the global coordinate system. To define zero-length elements, provide duplicate points at the **“Pts”** input of the **“Assemble”** and **“LineToBeam”** components. Elements attach to these nodes in an alternating fashion.

<figure><img src="/files/youv5WMjO3MROgMQP6IW" alt=""><figcaption><p>Fig. 3.1.1.2: Zero length spring coupling the two parts of a scissor structure.</p></figcaption></figure>

{% file src="/files/04uekB3xnjNP1h6iyfL4" %}

Cross sections of elements and materials can be defined either upon creating an element or at the **“Assemble”**-component. The latter option overrides the former and assigns cross sections and materials via element identifiers. Using regular expressions for selecting identifiers of elements provides a flexible means of attaching cross sections and materials to different parts of a model.

The **“Mass”** output plug renders the mass of the structure in kilograms and includes user-specified point masses. **“COG”** represents the position of the center of gravity. When plugged into a panel, the model prints basic information about itself, including the number of nodes, elements, and so on. At the start of the list, the characteristic length of the model is given, calculated as the distance between opposing corners of its bounding box.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://manual.karamba3d.com/3-in-depth-component-reference/3.1-model/3.1.1-assemble-model.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
