Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ XR Studio

AttachPoint

  • Last UpdatedDec 14, 2023
  • 5 minute read

The AttachPoint node creates a coordinate system where a manipulable item can be positioned by the manipulation system.

See the Using the manipulation system for more information on how to set up and manage a manipulation-based application.

Platform support

This node is supported on XR-Windows platform only.

XR-WIN

XR-P-WIN

XR-P-IOS

XR-P-AND

XR-P-WASM

Full support

No support

No support

No support

No support

Full support

No support

No support

No support

No support

AttachPoint characteristics

  • By default, an AttachPoint can accept any manipulated item.

  • By setting a value to attachableManipulables, you can restrict interaction to a limited list of manipulable nodes.

  • The radius parameter defines the sphere of interaction of an AttachPoint. If the manipulated object is outside the sphere, then there is no possible interaction with the AttachPoint.

  • The attachTo parameter of the manipulable can bypass the attachableManipulables restriction, because this influences the behavior of the manipulator only.

Moving an AttachPoint

It can be useful to parent an AttachPoint. For example, if a screwdriver on an AttachPoint is placed inside a toolbox that is moved, the screwdriver must move accordingly. This can be achieved by copying the parent object matrix into the AttachPoint matrix field by using Transform position, rotation, and scale fields to reflect the values of the parent and then use positionOffset, rotationOffset, and scaleOffset to offset the AttachPoint from the parent itself.

Ghost

When a manipulated item enters into the radius sphere of a compatible and active attachPoint, its ghost, if defined, appears on the attach point.

.

Code example

This is a code example for the AttachPoint node.

<AttachPoint name="toolbox_labRoom_POA" templateInfo="AttachPoint|toolbox_labRoom_POA" extraParams="{sector=sec_lab}" position="-0.4427317 0.8069129 -1.359936" rotation="0 0 0 1" />

AttachPoint fields

These are the fields for AttachPoint node. Only the node-specific fields are indicated, not fields obtained by inheritance.

Field inheritance: NodeBase > AttachPoint

Fields

Type

Use

Default value

Description

active

sbool

Optional

true

Enables and disables the AttachPoint . The disabling does not impact the Manipulable attachTo parameter functionality.

attachableManipulables

mstring

Optional

List of allowed manipulables whose nodes can be attached. When not set (void), no restriction is applied. This does not impact the Manipulable attachTo parameter functionality.

attachableManipulablesMatrices

dstring

Optional

Can assign an offset matrix to any specific manipulable so that when the node is placed on the AttachPoint , positioning is modified accordingly. In this dictionary, the keys must be the names of Manipulable nodes and the values must be matrices.

debug

sbool

Optional

false

If set to true, enables sensor visualization when 3D Debug is running.

matrix

smatrix

Optional

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

This Matrix represents a space transformation that concurs to the final transformation of the node. It contributes to the node transformation as follows: TransformOffset * Transform * matrix. Being the last transformation applied to the node, it can be used as a parenting mechanism.

position

svec3

Optional

0 0 0

The position of the attach point coordinate system.

positionOffset

svec3

Optional

0 0 0

This field can be used to position the TransformOffset coordinate system. The TransformOffset coordinate system is composed as follows: scaleOffset * rotationOffset * positionOffset and it contributes to the node transformation as follows: TransformOffset * Transform * matrix.

rotation

squat

Optional

0 0 0 1

Rotates the Transform coordinate system. The Transform coordinate system is composed as follows: scale * rotation * position and it contributes to the node transformation as follows: TransformOffset * Transform * matrix * Parent. In cases where no parent is expressed, Parent corresponds to the World coordinate system (Identity).

You can edit this field by using any type of Eulerian representation of the rotation from the Graphic Context Editor Interface if the editor preferences are set accordingly. See Rotate content in the 3D View.

rotationOffset

squat

Optional

0 0 0 1

Rotates the TransformOffset coordinate system. The TransformOffset coordinate system is composed as follows: scaleOffset * rotationOffset * positionOffset and it contributes to the node transformation as follows: TransformOffset * Transform * matrix.

You can edit this field by using Eulerian representation of the rotation from the Graphic Context Editor Interface if the editor preferences are set accordingly. See Rotate content in the 3D View.

scale

svec3

Optional

1 1 1

Scales the Transform coordinate system. The Transform coordinate system is composed as follows: scale * rotation * position and it contributes to the node transformation as follows: TransformOffset * Transform * matrix * Parent. In cases where no parent is expressed, Parent corresponds to the World coordinate system (Identity).

Note: Scaling an AttachPoint Node will not affect its radius. The use of this field should be avoided in most cases because it can only affect the space transformations without a proper 3D geometrical representation of it.

scaleOffset

svec3

Optional

1 1 1

Scales the TransformOffset coordinate system. The TransformOffset coordinate system is composed as follows: scaleOffset * rotationOffset * positionOffset and it contributes to the node transformation as follows: TransformOffset * Transform * matrix.

Note: Scaling an AttachPoint Node will not affect its radius. The use of this field should be avoided in most cases because it can only affect the space transformations without a proper 3D geometrical representation of it.

In This Topic
Related Links
TitleResults for “How to create a CRG?”Also Available in