Release Notes 5.0
What's new?
Visual Components (VC) 5.0 introduces a host of powerful features that gives users more tools and control over their simulations than ever before.
Important to note
- KUKA.Sim AddOn will not be available with the initial VC 5.0 release, it will be made available in a subsequent version release.
- VC 5.0 products licensed via floating keys need to utilize the new License Server Manager 3.0 which released alongside VC 5.0.
New Features
Python 3 API
VC 5.0 features a new Python API based on Python 3. The API is based on Python version is 3.12.2, bringing a host of enhancements and benefits to elevate your development experience.
Key Benefits of our new Python API:
- Easier to navigate and use APIs with improved syntax and structure to simplify coding and improve readability
- Asynchronous programming with Async/Await, that allows you to write non-blocking code that can handle multiple tasks concurrently
- Access to popular libraries such as NumPy, Pandas, and SciPy.
The new API can be used by selecting Python 3 as the script language in PythonScript, Python Kinematics or Python feature properties language selector.
Documentation
- Documentation for the Python 3 API can be found here in the Python 3 section of VC 5.0 online help.
- Built-in documentation can also be accessed using the help() method, which prints the documentation to application output panel.
Usage example:
from vcCore import *
help(vcApplication)
External library support
External libraries such as Numpy can now be installed through pip.
Python Commands
Python 3 API features improved support for commands. A command is now initialized and represented by a single file, removing the need for the separate __init__.py file required by the Python 2 API.
At application startup the following folders are searched for Python 3 commands
-
App installation folder: Program Files\Visual Components\<VARIANT_NAME>\Python 3
- My Commands folder: Documents\Visual Components\<VERSION>\My Commands\Python 3
Files that comply with the following naming convention are automatically loaded during start up:
- File has a “.py” extension.
- File starts with “cmd” prefix (e.g., cmdSimpleCommand.py)
Prefix ‘cmd’ is only required for commands to be loaded automatically. Commands that are loaded manually by a user’s drag and drop operation or programmatically through the API do not require the prefix.
Additionally the Python Command panel has been improved. Multiple equal customizable buttons can now be created instead of two hardcoded ones. Each button can be customized by its text, visibility and whether it closes the panel or not. Buttons are located directly under the content, instead of at the very bottom.
Note that Python 2 is now an optional feature and can be left out of the installation by deselecting the option in the Visual Components installer.
Python Statements
We have introduced a new Process Statement Type called Python Statement, which allows users to execute Python 3 scripts during simulation time. You can include it in your Processes by adding it through the Statement Gallery.
Custom Python Statement
We have also provided an API that enables users to create their own Custom Python Statements. Refer to the How to use - Python Statement for Process Modeling help topic for a more comprehensive example of how to implement your own Custom Statements
New Motion Controller (BETA)
The new Motion Pipeline revamps the current robot motion system, giving users greater flexibility and the ability to create more efficient paths and statements. Note that this feature is still in development and is subject to change.
New Motion Controller offers:
- Faster execution times and better performance.
- More control over robot configuration.
- Behavior more closely resembling real-world robots.
- Smoother motion interpolation.
- Greatly improved kinematics.
New Path Solver
The new Solver available in Visual Components OLP products, improves robotic path planning by generating collision-free, executable paths. It replaces the older “Check Path” tool with faster more reliable performance, especially for complex paths.
Improved output panel
The application features a new and improved output panel. The panel now has a new and improved user interface and supports displaying and filtering messages by categories such as Info, Warning and Error. Messages can be selected, copied and pasted. More settings are now available to configure the behavior directly in the panel UI. Python 3 and .NET APIs to use and extend the panel are also provided.
Colliders
Colliders allows you to create simplified collision geometries separate from visualization. Simplified collision geometries make collision detection much faster. A new collider container behavior is introduced and it can store multiple collider objects. The collider objects represent collision shapes: Box, Sphere or Convex. The visibility and opacity of collider objects can be controlled. Collision detectors have a toggle to either use or ignore colliders.
Additionally there's a Create Collision Geometry tool available in the Modeling tab Tools menu. This allows you to easily make colliders for complex shapes. It uses convex decomposition to split node's geometries into multiple colliders and can create convex or box shapes depending on user choice. There's an option to adjust the collider quality.
Connectors
VC 5.0 includes built-in connectivity plugins for several major robot brands, allowing you to connect virtual or real robot controllers to your simulation. This means you can exchange data during simulation such as sending joint movements from a controller, reading sensor inputs or setting output signals to simulate tasks like picking and placing.
The following new connectors are included.
Denso Robot
Connect to a Denso robot controller during simulation and exchange data. Drive joint movements, read sensor values, and set outputs using a real or virtual controller.
Techman Robot
Connect to a Techman robot controller during simulation and exchange data. Drive joint movements, read sensor values, and set outputs using a real or virtual controller.
MELFA Robot
MELFA Robot plugin allows you to connect to a MELFA VRC and exchange robot data using RT ToolBox3. PLC connections are not supported.
Yamaha Robot
Connect to a Yamaha RCX 3 series controller during simulation and exchange data. Drive joint movements, read sensor values and set outputs using a real or virtual controller.
MQTT Client
The MQTT connector allows you to run an MQTT client locally--one per active session of Visual Components. The client can connect to any number of MQTT brokers (servers) during simulation and exchange data by subscribing (SUB) and publishing (PUB) to topics on the broker which act as channels for filtering messages. Data includes the values of properties and signals in a layout. Connections can be encrypted such as using port 8883, support username and password authentication and handle quality of service checks with messaging. It is possible to use message templates or schemas for topic messages. In addition, you can modify received messages (ingress) using a built-in expression and formula editor as well as outgoing messages (egress).
LS Electric PLC
Connect to a LS Electric PLC and directly exchange data, joint values, read/write, I/O signals with various data types. Data types like WORD, STRING and TIME are not supported at this time.
Fronius Connector
The Fronius Connector enables users to connect to and integrate with a Fronius Welding Power Source. The user is able to read jobs from the power source as well as show, edit and create new jobs in Visual Components OLP products and save them back to the power source. Typically, jobs include all the parameters needed for welding.
VC Python Tools Extension
VC Python Tools is an extension that works alongside Python in Visual Studio Code to provide code editing support for the Visual Components API, making it easier to develop component scripts, custom commands and other functionalities. Gain access to VC type information, documentation and code snippets directly through IntelliSense. The extension is available on the Visual Studio Marketplace.
Credential-based licensing
In addition to using a standalone or a floating license, the user now has the option to login to the application using credentials. The licenses are managed using our new license management system VC Accounts, where entitlements grant users rights to use the products. With VC Accounts, customers can activate and transfer usage rights of products without the need to contact customer support. Furthermore partners can access, view and activate entitlements on behalf of end-customers. Credential-based licensing supports all VC 5.0 product variants and add-ons. Note that standalone or floating licenses cannot be managed using VC Accounts.
Network License Server Manager 3
Alongside VC 5.0, we have updated and released a new version of the Network License Server Manager. For more information, please visit the Downloads page of the Visual Components website.
Changes to Connectivity
For the VC 5.0 version, the connectivity offering for each of the products in the Visual Components product line-up has changed.
- Visual Components Essentials, Robotics and Robotics OLP will no longer offer any connectivity plugins.
- Visual Components Professional and Professional OLP will offer connections to OPC UA and MQTT.
- Visual Components Premium, Premium OLP and Digital Twin offer all connectivity options.
Updates to supported Windows Versions
The current supported Windows versions for the VC 5.0 product line-up are as follows:
- Windows 11, version 21h2.
- Windows 10, version 1507.
Telemetry
This functionality has been introduced to collect data from within the VC application. Data collected may consist of certain mandatory information that is essential to ensure legal compliance, security and integrity of the software. Other data may be collected to improve user experience and enhance product development. There is an "Analytics Settings" in the backstage menu that can be turned on or off. If turned off, certain user specific/sensitive data is either filtered out or anonymized before being collected.
Other improvements
- UI performance when switching tabs has been improved
- .STPX file type is now supported as an import type
Known Issues
- The Motosim plugin does not currently support Version 2025 SP1
- eCatalog components with expression properties are loaded incorrectly when user language is set to Japanese.
- Users can enable the Windows beta feature "Use Unicode UTF-8 for world-wide language support", which can be found under Time & Language > Language & region.
Library Updates
|
38633 |
FFMPEG 7.1.1 update |
|
39472 |
gRPC.Tools 2.72.0 update |
|
39554 |
HOOPS Exchange 2025.6 update |
|
39556 |
RealDWG 2024.1.7 Update |
|
34094 |
Update System.Text.Json to 8.0.0.5 |
General Improvements
|
37626 |
Add message that application need restart after an add on is enabled/disabled |
|
38703 |
eCat sync can be triggered from the Refresh button |
|
35903 |
ICustomizationService.PublicModelsFolder can be used to set default eCatalog path |
|
39554 |
Update to import and export types |
|
37518 |
Remove references to Infragistics types from IDockAwareWindowManager |
|
27680 |
Create new frames / delete existing frames from Jog Panel |
|
33606 |
Removed Product Type OriginFrame |
|
33627 |
Implement world manager and its .NET API |
|
34292 |
Saving: "Include Components" true by default |
|
36669 |
Change default value of "Enable Independence" backstage option to false |
|
36700 |
Installer - Show Python 2 option from installer feature tree |
|
36135 |
Remove "clear Output on simulation start" setting from backstage |
|
41745 |
VC Application can use different resolutions in its splash screen |
|
40997 |
Improve Py2 script loading times |
|
43024 |
Enable .stpx support |
|
40767 |
No longer require manual registration of LSElectric connectivity libraries |
|
39785 |
Installer marks Visual Components as trusted for Controlled Folder Access |
Bug Fixes
|
38491 |
Crash: Exchange Robots causing app to crash |
|
37395 |
Regression: Interact does not work with physics components |
|
38666 |
Regression: "Snap & Align" Frame snap type not working |
|
28304 |
Parasolid X_T file import does not recognize feature names due special character |
|
39619 |
.JT geometry export does not support 2D elements |
|
34636 |
CAD containing Japanese characters lose material(color) after being saved as component and loaded |
|
22276 |
"Toggle statement" feature in robot program statements goes gray/unusable |
|
39774 |
IComponentContainer.ComponentLeaving event gives you ComponentArriving instead |
|
38520 |
Robot shows "Robot World" internal node in API |
|
9921 |
eCatalog: Pressing right/left arrow keys makes the cursor move two spaces |
|
10250 |
Changing constraint type in Real component property moves it last in the list |
|
25025 |
vcReserveProductStatement does not support access to the new filters |
|
26115 |
Geometry import fails when Feature Tree setting is set to Optimized |
|
27568 |
Positions based to moving frame do not revert to initial position when reset |
|
29997 |
Statistics export to Excel fails if max row limit is exceeded |
|
30321 |
Orthographic view mode doesn't zoom towards cursor |
|
31220 |
Import CAD fails sometimes when using optimized feature tree setting |
|
31554 |
Assembly Editor 3D toolbar initial location is incorrect |
|
32018 |
Installer: NO_SHORTCUTS=1 still creates Manufacturer folder |
|
32019 |
Exception is thrown while manipulating a link with physics joint |
|
32391 |
TransportIn statement creates unnamed variables, causing UI exception |
|
32561 |
Fix python script copying access violation |
|
33102 |
Freeze when trying to open backstage |
|
33370 |
.NET API: IProperty<T>.AllowedValues returns a broken collection if constraints are not used |
|
33372 |
.NET API: Calling ILayoutPackFolder.ChangeBatchLevel getter causes an internal exception |
|
33422 |
.NET API: ISimInterfaceSection.FramePrimitive getter throws an internal exception |
|
33425 |
.NET API: Calling NullDofWrapper.ChangeBatchLevel getter causes an internal exception |
|
33520 |
Crash: Python 2 API: OnRoutineAdded/Removed in robots causes hard exception and crash. |
|
33605 |
Clicking on empty Collection Group creates Exception |
|
33611 |
Offset when creating a linear pattern of component in sublayout |
|
33660 |
Delta robot is collapsed after loading the component |
|
33686 |
Python 2: Saving Bitmap using TGA writer returns wrong value |
|
33937 |
ABB Connectivity: Joint Values Update with reset button |
|
33951 |
Search '4.10' in help field causes crash because search service returns Excel file content as result |
|
33988 |
Locked components do not keep their location when moved to a different sublayout |
|
34043 |
Toggle statement command not working properly |
|
34068 |
Focus mode: dynamic component opacity doesn't change |
|
34552 |
Data loss: Can't save layout that creates vcmx file over ~2.15GB (2^31 bytes) in size |
|
34582 |
Using pattern for attached component creates pattern from world origin |
|
34609 |
SolidWorks - Markups import location is wrong |
|
34646 |
Regression: Large primitive physics result in uncontrolled bouncing |
|
34667 |
Using component with servo controller behavior in PM assembly causes crash |
|
34925 |
Py2 Application crashes when generating an incomplete sphere using triangles |
|
34944 |
Incorrect Japanese translations in connectivity |
|
34952 |
Material editor texture URL color bug |
|
35213 |
VC 4.10-Error code 2525 |
|
35257 |
Unhandled exception with Break and Continue statements outside While scope |
|
35904 |
Ruler not shown when translating a rotated component in local coordinate Z direction |
|
36495 |
Unexpected eCat search result sorting when searching for "To Conveyor Process" |
|
36529 |
eCat database path resolving error |
|
36645 |
Texture from an imported component is automatically set as assembly editor floor texture |
|
36811 |
Exception when creating variable pairs with double-byte numbers and single-byte numbers exceeding UInt64 |
|
36252 |
Loading certan .dwg file fails |
|
42083 |
Cadenas not showing any products in folders |
OLP
Improvements
|
Added fill pass weave references on root layer level for standard multipass. |
|
Added helix path creation tool. |
|
Added Circ-Out Search variant. |
|
Added WPS Rule Manager & WPS Rule Selector. |
|
Added warning message when mixing sublayouts in OLP layouts. |
|
Added Search statement link option for Weld statements. |
|
Added multimode editing for Search statements. |
|
Improved external axis recalculation trigger logic. |
|
Improved surface picking for AutoSearch. |
|
Improved German translations. |
|
Improved TCP Calibration performance. |
|
Improved Path to Process Path converter to work in more cases. |
|
Improved XML import with new options and manual multipass support. |
|
Optimized how images are saved in Components and zip files for Guided Workflow. |
|
Removed Simplify Geometry command. |
|
ABB: Added uploader and downloader support for OmniCore controller. |
|
COMAU: Added WEAVE weld parameter post-processing in motion statements. |
|
OMRON: Added uploader support. |
|
Fronius: Added localized strings for all languages. |
Fixes
|
Zigzag Pattern: Fixed unhandled exception when trimming. |
|
Zigzag Pattern: Fixed exception when closing panel. |
|
Zigzag Pattern: Fixed height offset adjustment over gaps. |
|
Guided Workflow: Fixed Workflow URI not updating when opening a layout. |
|
Guided Workflow: Fixed Add Link being available on Workflow items without Configurator. |
|
Guided Workflow: Fixed images not being deleted from folder. |
|
Guided Workflow: Fixed image popup not working as expected. |
|
Guided Workflow: Fixed Configurator not opening correctly. |
|
Assembly operations: Fixed previously released assembly piece reappearing during smart grab. |
|
Cadenas: Removed unused files from project. |
|
Fixed OLP exception when exporting Program from Templates. |
|
Fixed Start/End offset not working correctly with Max point distance. |
|
Fixed Wire Offsets and Distance Offsets not working together correctly. |
|
Fixed inability to move Path between robots without 'Start/End' point types. |
|
Fixed duplicate points due to sharp corner mode. |
|
Fixed assembly operations grab move with non-zero wire roll. |
|
Fixed assembly operations call routine selection. |
|
Fixed application crash when gantry link min > max. |
|
Fixed AutoSearch not generating paths under group statements. |
|
Fixed missing ImportCSV property. |
|
Fixed mirror cloning paths. |
|
Fixed error message when selecting Via path statement. |
|
Fixed error when post-processing robot program with path statements inside IF-ELSE or SWITCH. |
|
Fixed editing for WireSense searches. |
|
Fixed Weld statement corner rebuild. |
|
Fixed gantry calculation for TR setup. |
|
Fixed Search nozzle offset calculation for Middle and Shoulder modes. |
|
ABB: Added upload support for wobjdata, tooldata and speeddata. |
|
COMAU: Fixed $ARM_SPD_OVR with integer in move command. |
|
COMAU: Fixed angle E (Ry) in point data to be positive. |
|
Denso: Fixed upload when no Python kinematics and no config properties. |
|
Denso: Fixed upload for configurations and speed values. |
|
Kawasaki: Fixed Python kinematics for upload. |
|
Yamaha: Fixed upload and point variable support. |
|
Yaskawa: Added upload/download support for SVSPOTMOVE. |
|
Yaskawa: Fixed post-processor crash with invalid process. |
|
Yaskawa: Fixed base-track position offset calculation. |
|
Yaskawa: Fixed pulsesetter for robots with less than 6 axes. |
|
Fanuc: Fixed downloading tool_offset from point level WPS. |
|
Fanuc: Fixed base and wall normal calculation in base coordinates. |