Dimensioning
Last updated
Last updated
Roomle Configurator is capable of showing overall dimensions of the configurator, as well as axis aligned dimensions that can be defined for individual components. To enable the dimensions, allow the dimensions display in the left menu bar of the configurator - see the red marked icon in the screenshot:
The overall dimensions of a configuration are given by an envelope of the individual components' bounding boxes. These bounding boxes are defined as an union of all meshes' bounding boxes. These are defined by the two last arguments of the AddExternalMesh function.
You can override the overall dimensioning for every main component using the setBoxForMeasurement
. If you dock several components together, the overall dimensions of the configuration will be the envelope of union of all component's bounding boxes. This function can solve errors where the actual geometry is slighly smaller or bigger, which often happens with soft upholstered furniture or cushions. Be aware, that if you have three or more components docked next to each other, the connection distance must be correctly modelled in the geometry. There is no simple way to compensate overall dimensions of imperfect geometry if the configuration is docked.
This function is valid in the onUpdate
script.
setBoxForMeasurement(size: Vector3f, offset: Vector3f)
Example: setBoxForMeasurement(Vector3f{1720, 840, 1960}, Vector3f{0, -640, 0});
This adds a cube with dimensions {1720, 840, 1960}
with pivot in its back left lower corner and moves it by -640 along t y
axis. It is the same as if you had:
We suggest following pattern to compute the bounding boxes:
have variables measurementBox_sizeX
, measurementBox_sizeY
, measurementBox_sizeZ
, measurementBox_offsetX
, measurementBox_offsetY
, measurementBox_offsetZ
compute them in onUpdate
use setBoxForMeasurement(Vector3f{measurementBox_sizeX, measurementBox_sizeY, measurementBox_sizeZ}, Vector3f{measurementBox_offsetX, measurementBox_offsetY, measurementBox_offsetZ});
you can of course use constants in this functions something like - measurementBox_sizeX/2 + measurementBox_offsetX
for the X-offset coordinate if your pivot point is in the center-rear-lower edge
you can of course utilize parameters like width
, depth
and height
directly if the overall measurement matches with them
Hint: You can visualize the bounding boxes during development like this:
To use debugGeometry
, concantenate it to standart geometry
in loader snippets. See Advanced Loader Snippet.
See example of a sofa system with visualized bounding boxes. Bevel size of 50 used as an argument in the AddCube
function in order to see the edges of the particular bounding boxes easier.
If you need to show to the end-user of the configurator distinctive dimensions of the product's parts, you can do so using the dimensionings
feature. This will draw a dimensioning line which is parallel with one of the coordinate axes. You define two points on selected axis, where the configurator then shows the dimensions.
In this chair, the dimensionings have been used to display the seat width and the seat height. In order for the configurator to allow this, you use dimensionings
attribute of the Component
:
Attributes of the Dimensioning
class:
level You can display the dimensionings in several layers. The higher the number, the closer to the component and smaller the dimensioning is.
type Can be x
, y
or z
. Specifies on which axis the dimensioning should be displayed.
from Starting coordinate on the selected axis.
to Ending coordinate on the selected axis.
visible Expression defining if the dimensioning should be shown.
labels Works as any other labels
, allowing you to override the dimensioning number in different languages. Note, that it is currently not possible to display the actual dimension computed from the from
and to
attributes.