> For the complete documentation index, see [llms.txt](https://virtualfactory.gitbook.io/vlft/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://virtualfactory.gitbook.io/vlft/use-cases/factory-assets/assembled-product.md).

# Modelling of an Assembled Product

A hinge for the furniture market is presented as an example of 3D modelling of an assembled product.

The hinge consists of different components listed in the table below, assembled together according to the scheme in the figure.

| ID         | Label | Position \[mm]       |
| ---------- | ----- | -------------------- |
| Wing       | 1     | \[0, 0, 0]           |
| WingScrew  | 2     | \[0, 5.5, -9.5]      |
| Clip       | 3     | \[0, 3, 8]           |
| Pin1-1     | 4     | \[0, 5.7, 12]        |
| Connector1 | 5     | \[0, 8.42, -45.43]   |
| Spring     | 6     | \[0, 6.25, -38.68]   |
| Pin1-2     | 7     | \[0, 2, -35]         |
| Connector2 | 8     | \[0, 12.26, -37.35]  |
| Pin1-3     | 9     | \[0, 9.5, -25]       |
| Box        | 10    | \[0, -0.22, -47.11]  |
| Hook       | 11    | \[-1, 22.02, -44.18] |

![](/files/-MYALKA9BMPbBW06XG-X)

The 3D model of the Hinge has been prepared according to the workflow described in section [3D Models of Assets](https://virtualfactory.gitbook.io/virtual-learning-factory-toolkit/knowldege-base/instantiation-workflow/3d-models) and is [available as .glb file](https://difactory.github.io/repository/models/AssemblyLine/GLB/Hinge.glb) according to the gLTF format.

## Scene Examples: Hinge

The 3D model of the Hinge can be employed to characterize assets populating a scene. Herein three examples are described to highlight different features of data formalization based on a [spreadsheet ](/vlft/kb/instantiation/assets/spreadsheet.md)and [.json file](/vlft/kb/instantiation/assets/json.md). The resulting scene can be visualized using the [VEB.js](/vlft/tools/vebjs.md) web application (remote version), thus the path of the Hinge.glb file is defined according to the file system of the server where VEB.js is running.

### Scene 1 - Clones of Hinge

Three hinges are included in the scene as assets (*Hinge\_1,Hinge\_2,Hinge\_3*), all of them cloning the same 3D model Hinge.glb.&#x20;

It is not necessary to explicitly define all components as child assets in the spreadsheet or .json file because child nodes in the hierarchy of the .glb file are automatically cloned. VEB.js redefines the ID of cloned components by adding upfront the ID of the root node plus a dot (e.g. "Hinge3.Clip" clones node "Clip" in the hierarchy of asset "Hinge3"). The [spreadsheet table](https://difactory.github.io/repository/spreadsheets/ex_HingeClones.xlsx) and [.json file ](https://difactory.github.io/repository/scenes/ex/HingeClones.json)are available.

The scene can be visualized in VEB.js either with the command "Import Scene" (and selecting the .json file) or by opening [this link](https://difactory.github.io/DF/scenes/ex/hinge1.html).

![](/files/-MZEEIxxWpkRxyVAddD9)

### Scene 2 - Customized components of Hinge

One hinge is included in the scene as asset (*Hinge*) and the positions of hinge components are modified with respect to the default values specified in the Hinge.glb file. This can be done by explicitly defining the hinge components as assets in the spreadsheet and .json file. In particular, the hinge components are characterized by the following properties:

* ***inScene*** set to 1
* representation as a node in the .glb ***file*** (e.g. Hinge.glb#Clip), as [documented here](/vlft/kb/instantiation/assets/spreadsheet.md#assets) and [here](/vlft/kb/instantiation/assets/json.md#assets)
* ***parentObject*** to properly map the hierarchy of assets
* ***position*** to customize the (x,y,z) coordinates that are relative to the asset identified by property ***placementRelTo.***

The [spreadsheet table](https://difactory.github.io/repository/spreadsheets/ex_HingeCustomizedComponents.xlsx) and .[json file](https://difactory.github.io/repository/scenes/ex/HingeCustomizedComponents.json) are available.

The scene can be visualized in VEB.js either with the command "Import Scene" (and selecting the .json file) or by opening [this link](https://difactory.github.io/DF/scenes/ex/hinge2.html).

![](/files/-MZEELdGSALS40rIj6WT)

### Scene 3 - Hidden components of Hinge

Two hinges are included in the scene as assets (*Hinge1, Hinge\_2*), but not all the hinge components are actually included in the scene. This can be done by explicitly defining the hinge components as assets in the spreadsheet and .json file. In particular, the hinge components are characterized by the following properties:

* ***inScene*** set to 0 so that it is not included in the scene
* representation as a node in the .glb ***file*** (e.g. Hinge.glb#Clip), as [documented here](/vlft/kb/instantiation/assets/spreadsheet.md#assets) and [here](/vlft/kb/instantiation/assets/json.md#assets)
* ***parentObject*** to properly map the hierarchy of assets

The [spreadsheet table](https://difactory.github.io/repository/spreadsheets/ex_HingeHiddenComponents.xlsx) and [.json file](https://difactory.github.io/repository/scenes/ex/HingeHiddenComponents.json) are available.

The scene can be visualized in VEB.js either with the command "Import Scene" (and selecting the .json file) or opening [this link](https://difactory.github.io/DF/scenes/ex/hinge3.html).

![](/files/-MZEEO96-YoB8gslatKl)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://virtualfactory.gitbook.io/vlft/use-cases/factory-assets/assembled-product.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
