Skip to main content

Visualization Element: Path3D

Note

The element does not work with the CODESYS HMI display variant.

Symbol:

visu_img_path3d.png

Category: Special Controls

The Path3D visualization element graphically displays the curves of two independent records as a 3D path. It is specially designed for use with CNC in order to display the trajectory of a machine tool or a robot. The programmed path (path) and the path actually traveled (track) is displayed.

Although the visualization element is designed for use with CODESYS SoftMotion in CNC, it can also be used to display any other record. In this case the application has to provide the path data.

If the element is used together with CODESYS SoftMotion CNC, then function blocks from the library SM3_CNC_Visu help to generate the data from the path and track. These function blocks are used by the sample project CNC_File_3DPath, which is stored in the installation directory of CODESYS.

  • SMC_PathCopier

  • SMC_PathCopierCompleteQueue

  • SMC_PathCopierFile

  • SMC_PositionTracker

A description of the function blocks can be found in the Library Manager in the library SM3_CNC_Visu.

Note

0_Sample_ProjectSample project: "3D Path Generator"

0_Sample_Project project CNC_File_3DPath (included in the CODESYSinstallation directory)

Element properties

Are all element properties available?

All properties are available only after you select the Advanced option or the All categories filter in Properties.

Element name

Example: GenElemInst_1

Tip

Assign individual names for elements so that they are found faster in the element list.

Element Type

Path3D

Position

The position defines the location and size of the element in the visualization window. This is based on the Cartesian coordinate system. The origin is located in the upper left corner of the window. The positive horizontal X-axis runs to the right. The positive vertical Y-axis runs downwards.

X

The X-coordinate (in pixels) of the upper left corner of the element

Example: 10

Y

The Y-coordinate (in pixels) of the upper left corner of the element

Example: 10

Width

Specified in pixels

Example: 150

Height

Specified in pixels

Example: 30

Tip

You can change the values by dragging the box _visu_icon_position_element.png symbols to other positions in the editor.

Path description

Path data (VisuStruct3DTrack)

Variable of type VisuStruct3DTrack which is declared in the IEC code

Example: PLC_PRG.pc.vs3dt.

A description of the structure can be found in the Library Manager in the VisuElem3DPath.library library.

The data structure describes a path or track by a specific number of points. The points are determined and buffered by the application. The track typically displays the last n positions so that only a specific part of them is displayed at one time.

VisuStruct3DTrack.pProjection is a variable which is set by the visualization element and contains information about the path/track projection. It can (only) be read by the application. Moreover, the Projection.Apply or .ApplyV methods can be used to see if the transformed position is inside or outside of the visualization display area as defined by Projection.ElementRect.

Path color

Color of the drawn path

Path line width

Path line width (in pixels)

Example: 2

Edge point marking

. Display of the points between two consecutive objects in the path
  • End points are not marked

  • End points are marked with a circle

  • End points are marked with a cross

  • End points are marked with a plus sign

Track description

The track data is structured in the same way as the path data: VisuStruct3DTrack

Track data (VisuStruct3DTrack)

Variable of type VisuStruct3DTrack which is declared in the IEC code

Example: PLC_PRG.pc.vs3dt

A description of the structure can be found in the Library Manager in the VisuElem3DPath.library library.

Track color

Color of the drawn track

Track line thickness

Track line thickness (in pixels)

Example: 2

Camera control

The camera position for 3D mode is controlled with a reference to an external data structure.

This structure allows the following operations:

  • Move left/right/up/down

  • Rotate around X/Y/Z axis

  • Reset the view to X/Y, Y/Z, or Z/X plane so that the web and the path are fully visible

Control data structure (VisuStruct3DControl)

Variable of type VisuStruct3DControl which is declared in the IEC code

Example: PLC_PRG.pc.vs3dc

The values can be set via the application itself or via the ControlPanel visualization element. The VisuElem3DPath library contains ready-to-use visualization frames that provide a possible user interface for this data.

A description of the structure can be found in the Library Manager in the VisuElem3DPath library.

Input Configuration

The properties contain the configurations for the user input when using the mouse or keyboard. A user input defines an event and one or more actions that are executed when an event occurs.

Tip

The Configure button opens the Input Configuration dialog. There you can create or edit user inputs.

Configured user inputs are listed below the events. They each include the action that is triggered and the setting in short form.

Example: Execute ST Code: _visu_icon_action.png PLC_PRG.i_x := 0;

OnDialogClosed

Input event: The user closes the dialog.

OnMouseClick

Input event: The user clicks the mouse button completely in the element area. The mouse button is clicked and released.

OnMouseDown

Input event: The user clicks down on the mouse button.

OnMouseEnter

Input event: The user drags the mouse pointer to the element.

OnMouseLeave

Input event: The user drags the mouse pointer away from the element.

OnMouseMove

Input event: The user moves the mouse pointer over the element area.

OnMouseUp

. Input events:
  • The user releases the mouse button within the element area. It is irrelevant whether the user has previously pressed the mouse button inside or outside the element area.

  • The user presses the mouse button within the element area, leaves the element area, and then releases the mouse button.

Note

This CODESYS-specific triggering behavior guarantees that actions for key elements are completed. A key element starts an action for OnMouseDown and ends the action for OnMouseUp.

Example: A visualization user presses the mouse button within the element area of the key element and then moves the cursor position so that it is located outside of the element area. The action is ended anyway because OnMouseUp is triggered.

OnValueChanged

Event which triggers follow-up actions due to a change in value

Which follow-up actions are triggered is configured in the Input Configuration dialog.

The defined follow-up actions and the corresponding configuration are displayed below the element property.

The OnValueChanged event can be disabled by the VISU_NO_VALUECHANGED compiler define in the properties dialog of the application.

Tap

When a mouse click event occurs, the variable defined in Variable is described in the application. The coding depends on the Tap FALSE and Tap on enter if captured options.

Variable

Requirement: The Tap FALSE option is not activated.

Variable (BOOL) for the mouse click event

TRUE: A mouse click event exists. It lasts as long as the user presses the mouse button over the element. It ends when the button is released.

FALSE: A mouse click event does not exist.

Example: PLC_PRG.bIsTapped

Tap FALSE

standard icon: The mouse click event leads to a complementary value in Variable.

TRUE: A mouse click event does not exist.

FALSE: While the mouse click event exists.

Tap on enter if captured

standard icon: During user input, it is also taken into consideration whether the mouse pointer is dragged within the element area or not while the mouse button is pressed.

TRUE: While the mouse click event exists and the mouse pointer is moved over the element area.

FALSE: A mouse click event does not exist. Or the user moves the mouse pointer outside of the element area while the mouse button is pressed.

The value is TRUE again as soon as the user moves the pointer back to the element area. The mouse is then captured.

Switch over

With the onset of a mouse click event, the variable is set; when the mouse click event is completed, the variable is reset.

Variable

Variable (BOOL) for toggling at the end of the mouse click event

This is when the user releases the mouse button while the mouse pointer is over the element area. If the user releases the mouse button while the mouse pointer is outside of the element area, then the mouse click event is not ended and the value is not toggled.

Tip

The user can cancel a started toggle input by dragging the mouse pointer out of the element area.

Toggle on up if captured

standard icon: The value toggles regardless of where the mouse pointer is when the mouse button is released. The mouse is then captured.

Hotkey

Shortcut on the element for triggering specific input actions

When the hotkey event occurs, the input actions in the Events property are triggered. In this way, it is not the input action itself that leads to this input action, but the mouse input action.

Key

Key pressed for input action.

Example: T

The following properties appear when a key is selected.

Events

  • None

  • Mouse down: Pressing the key triggers the input actions that are configured in the OnMouseDown property.

  • Mouse up: Releasing the key triggers the input actions that are configured in the OnMouseUp property.

  • Mouse down/up: Pressing and releasing the key triggers the input actions that are configured in the OnMouseDown property and the OnMouseUp property.

Switch over

standard icon: Combination with the "Shift" key

Example: Shift+T.

Control

standard icon: Combination with the "Ctrl" key

Example: Ctrl+T.

Alt

standard icon: Combination with the "Alt" key

Example: Alt+T.

Tip

All keyboard shortcuts and their actions that are configured in the visualization are listed on the Keyboard Configuration tab.

Additional aspects

Coordinate system

standard icon: The coordinate system is displayed.

Grid

standard icon: Grid lines are displayed

Grid color

Color of grid lines

Highlight

Individual parts of the path can be highlighted visually. Typically, this is used to mark the already finished part of a track with a different color. Each point on the path is given a unique ID, which in the case of a CNC editor is linked to the object ID on which the point is located. This ID ("highlight ID") can be specified via the application so that elements/parts of the path can be highlighted dynamically.

Highlight type

. Select one of the following highlighting types:
  • Only the element with the ID that matches the value of the variable is highlighted.

  • All elements whose ID (in the case of a CNC editor linked to the object ID) is less than or equal to the value in Variable are highlighted.

Variable

Project variable that specifies the ID of an element

Example: PLC_PRG.iVarElementID

This "highlight ID" is taken into account for the setting of the Highlight type. The variables can be used in the application.

Highlight color

Example: Red

Appearance

Border line width

Thickness of the frame around the element (in pixels)

Example: 1

Border line style

. Select one of these style types for the frame line:
  • Solid

  • Dash

  • Dots

  • Dash Dot

  • Dash Dot Dot

  • Invisible

Background transparent

standard icon: The background of the element is displayed transparently.

_cds_icon_option_deactivated.png: The background of the element is displayed in the defined background color.

Background color

Style color or color

Center

The properties contain fixed values for the coordinates of the point of rotation. The rotation point is displayed in the editor as the _visu_icon_center_point.png symbol and is used as the center for rotation and scaling.

Tip

You can also change the values by dragging the _visu_icon_center_point.png symbol to another position in the editor.

X

X-coordinate of the point of rotation

Y

Y-coordinate of the point of rotation

Absolute movement

The properties contain IEC variables for controlling the position of the element dynamically. The reference point is the upper left corner of the element. At runtime, the entire element is moved.

Movement

X

Increasing this value at runtime moves the element to the right.

Y

Increasing this value at runtime moves the element downwards.

Rotation

Variable (numeric data type) for the angle of rotation (in degrees)

Example: PLC_PRG.iAngle1.

The midpoint of the element rotates at the Center point. This rotation point is shown as the _visu_icon_center_point.png symbol.

At runtime, the alignment of the element remains the same with respect to the coordinate system of the visualization. Increasing the value rotates the element to the right.

_visu_img_prp_rotation.png

Scaling

Variable (integer data type) to trigger a centric stretching

Example: PLC_PRG.iScaling

The reference point is the Center property.

The value 1 shrinks the element by a factor of 0.001. The value 1000 returns the element to its original size.

Interior rotation

Variable (numeric data type) for the angle of rotation (in degrees)

Example: PLC_PRG.iAngle2.

At runtime, the element rotates about the point of rotation specified in Center according to the value of the variable. In addition, the alignment of the element rotates according to the coordinate system of the visualization. Increasing the value in the code rotates clockwise.

The rotation point is shown as the _visu_icon_center_point.png symbol.

Note

If a static angle of rotation is specified in the Position → Angle property, then the static angle of rotation is added to the variable angle of rotation (offset) when the visualization is executed.

_visu_img_prp_inner_rotation.png

Tip

You can combine the variables to a Unit conversion.

Tip

The X, Y, Rotation, and Interior rotation properties are supported by the "Client Animation" functionality.

State variables

The variables control the element behavior dynamically.

Invisible

Variable (BOOL) for toggling the visibility of the element

TRUE: The element is not visible at runtime.

Tip

The Invisible property is supported by the "Client Animation" functionality.

Animation

Tip

These properties are available only when you have selected the Support client animations and overlay of native elements option in the Visualization Manager.

Animation duration

Variable for the duration (in milliseconds) in which the element runs an animation

  • Variable (integer value)

    Example: Menu.tContent with VAR tContent : INT := 500; END_VAR

  • Integer literal

    Example: 500

. Animatable properties
  • Absolute movement, Movement, X, Y

  • Absolute movement, Rotation

  • Absolute movement, Interior rotation

  • Absolute movement, Exterior rotation

The animated movement is executed when at least one value of an animatable property has changed. The movement then executed is not jerky, but is smooth within the specified animation duration. The visualization element travels to the specified position while rotating dynamically. The transitions are smooth.

Move to foreground

Variable (BOOL) for setting the element in the foreground

TRUE: At runtime, the visualization element is displayed in the foreground.

FALSE: At runtime, the visualization element is displayed in the layer where it was inserted in the visualization editor.

Example: bIsInForeground with VAR bIsInForeground : BOOL := FALSE; END_VAR

Permissions

Note

Available only when a user management is set up for visualization.

Access Rights button

Opens the Access Rights dialog. There you can edit the access privileges for the element.

. Status messages:
  • Not set. Full rights.: Access rights for all user groups : operable

  • Rights are set: Limited rights: Access is restricted for at least one group.