Envision 1.0.0

September 28, 2022 - SHA: 39e4a5d5

Note: CEETRON Envision 1.0 requires a new license and a new way to provide that license to the toolkit. Please see the license section below.

Changes

Rename Ceetron Cloud Components (C3) to CEETRON Envision for Web

The product Ceetron Cloud Components (C3) has been renamed to CEETRON Envision for Web. The product is almost identical and has the same features, with the change of the license system being the most notable change (see below). There are also some changes to the organization of the distribution archive, where the servers are now grouped into the server folder, and the CeeCloudServer is now in the server/ugServer folder.

The product documentation is now also part of the Tech Soft 3D documentation system and can be found here: https://docs.techsoft3d.com/ceetron/latest/envision-web/index.html

Note: The demo site running the docker versions of Envision Web can now be found on: https://envision.ceetron.com (previously http://c3.ceetron.com).

Rename Ceetron Desktop Components to CEETRON Envision for Desktop

The product Ceetron Desktop Components (CDC) has been renamed to CEETRON Envision for Desktop. The product is almost identical and has the same features, with the change of the license system being the most notable change. (see below). Ceetron Python Modules [CPM] is now a part of the Envision Desktop distribution and no longer a separate product. See CAE-850 below for more info.

The product documentation is now also part of the Tech Soft 3D documentation system and can be found here: https://docs.techsoft3d.com/ceetron/latest/envision-desktop/index.html.

New unified documentation for all CEETRON products (including Envision Desktop and Web)

We have a new look and feel for the entire CAE product line at Tech Soft 3D. This is using the same system as for the new HOOPS documentation.

The main entry point is https://docs.techsoft3d.com/ceetron/latest/main/index.html. Here you can find an overview of the entire CEETRON product line and browse or search for documentation for any of the products.

New unified HOOPS license system in Envision (Web and Desktop)

Envision (Web and Desktop) now uses the unified HOOPS license. The same license can be used across all CEETRON and HOOPS products, given that the license has the needed features enabled. This license key is a long string and it replaces the two keys (KeyA and KeyB) that were used in C3 and CDC.

For CEETRON Envision Web, the license can be specified with the ugServer.setLicenseCode(myCode). You can also copy your hoops_license.h (downloaded from the Developer Zone) into the same folder as the server code. For more help, please see the documentation here: https://docs.techsoft3d.com/ceetron/latest/envision-web/license.html.

For CEETRON Envision Desktop, you need to provide the string to cee::CoreComponent::initialize(). One way to do this is to use hoops_license.h (downloaded from the Developer Zone) as shown below:

#include "hoops_license.h"
...
// Initialize the parts of CEETRON Envision Desktop that we'll use.
g_componentInstance = cee::CoreComponent::initialize(HOOPS_LICENSE);

For more information, please see the documentation: https://docs.techsoft3d.com/ceetron/latest/envision-desktop/topics/general/license-system.html.

Changes to versioning

CEETRON Envision Desktop and Web will follow the same version numbers and starts at 1.0. We will strictly follow Semantic Versioning (Semantic Versioning 2.0.0 ).

For Envision Desktop there have been some changes to the CeeCore/Version.h file with its macros:

Old Define

New Define

CEE_VERSION

CEE_VERSION_NUMERIC

CEE_MAJOR_VERSION

CEE_VERSION_MAJOR

CEE_MINOR_VERSION

CEE_VERSION_MINOR

CEE_PATCH_VERSION

CEE_VERSION_PATCH

CEE_SPECIAL_BUILD

CEE_VERSION_PRE_RELEASE

Note: The CEE_VERSION_STRING is now: “MAJOR.MINOR.PATCH" (for pre-releases: “MAJOR.MINOR.PATCH-PRE_RELEASE"). Examples: 1.2.3 or 1.4.0-RC1

The is a new method in CoreComponent to get the full version with the build SHA:

CoreComponent::versionStringWithBuildSha() Returns full version number. Examples: 1.2.1+e73b7a84 or 1.2.0-rc1+e73b7a84.

There is now a VersionInfo.json file in the root folder of both Desktop and Web distributions detailing the version info of the distribution:

Web

{
    "productName": "Ceetron Envision Web",
    "major": 1,
    "minor": 0,
    "patch": 0,
    "preRelease": "",
    "buildSha": "39e4a5d5",
    "version": "1.0.0",
    "versionWithBuildSha": "1.0.0+39e4a5d5",
    "cugDataFormatVersion": 2
}

Desktop

{
    "productName": "Ceetron Envision Desktop",
    "major": 1,
    "minor": 0,
    "patch": 0,
    "preRelease": "",
    "buildSha": "39e4a5d5",
    "version": "1.0.0",
    "versionWithBuildSha": "1.0.0+39e4a5d5",
    "dataProviderFramework": "7.0",
    "resultCalculatorFramework": "4.0"
}

Changes to environment variables

Most environment variables have changed from C3_* to CEW_*.

Old environment variable name

New environment variable name

C3_UG_PORT

CEW_UG_PORT

C3_UG_USE_HTTPS

CEW_UG_USE_HTTPS

C3_UG_MODEL_PATH

CEW_UG_MODEL_PATH

C3_UG_ENABLE_REST_API_UPLOAD

CEW_UG_ENABLE_REST_API_UPLOAD

C3_UG_ENABLE_REST_API_QUERY

CEW_UG_ENABLE_REST_API_QUERY

C3_UG_ENABLE_CORS

CEW_UG_ENABLE_CORS

C3_UG_DATA_PROVIDER_FOLDER

CEW_UG_DATA_PROVIDER_FOLDER

C3_UG_RESULT_CALCULATOR_FOLDER

CEW_UG_RESULT_CALCULATOR_FOLDER

C3_UG_ADD_ON_FULL_FILENAME

CEW_UG_ADD_ON_FULL_FILENAME

C3_UG_DISABLE_IMPORT_CAE

CEW_UG_DISABLE_IMPORT_CAE

C3_UG_LOG_CONSOLE_OUTPUT_TYPE

CEW_UG_LOG_CONSOLE_OUTPUT_TYPE

C3_UG_LOG_FILE_OUTPUT_TYPE

CEW_UG_LOG_FILE_OUTPUT_TYPE

C3_UG_LOG_FILENAME

CEW_UG_LOG_FILENAME

C3_UG_LOG_LEVEL

CEW_UG_LOG_LEVEL

C3_CUGS_PORT

CEW_CUGS_PORT

C3_CUGS_FILE_DS_PATH

CEW_CUGS_FILE_DS_PATH

C3_CUGS_LOG_CONSOLE_OUTPUT_TYPE

CEW_CUGS_LOG_CONSOLE_OUTPUT_TYPE

C3_CUGS_LOG_FILE_OUTPUT_TYPE

CEW_CUGS_LOG_FILE_OUTPUT_TYPE

C3_CUGS_LOG_FILENAME

CEW_CUGS_LOG_FILENAME

C3_CUGS_LOG_LEVEL

CEW_CUGS_LOG_LEVEL

C3_GS_PORT

CEW_GS_PORT

C3_GS_USE_HTTPS

CEW_GS_USE_HTTPS

C3_GS_REDIS_DS_HOST

CEW_GS_REDIS_DS_HOST

C3_GS_FILE_DS_PATH

CEW_GS_FILE_DS_PATH

C3_GS_LOCAL_FILE_SOURCE_PATH

CEW_GS_LOCAL_FILE_SOURCE_PATH

Fixed Bugs

CAE-831 Missing vector filtering “skip by” when mapped to iso/cut

Specifying a skip-by for drawing of vectors did not work as expected for isosurfaces, isovolumes and cutting planes.

CAE-826 Query of results from VTFx files which reference result values by ID did not work

Querying results from a model backed by a VTFx file did not work as expected if the result values were referenced by ID (not the recommended way to reference result values).

CAE-811 [Web] ug.QueryNodeInfo returned -1 for node id if displacements were enabled

If a model were using displacements, the result returned from QueryNodeInfo would not contain the correct node ids.

CAE-801 [Web] VTFx properties did not apply info on visible sets and how to show them properly

Loading VTFx models with properties did not apply proper settings for visible sets.

CAE-762 Wrong visualization of mirrored parts on a cutting plane

Cutting planes for mirrored parts did not render correctly.


New Features

CAE-850 Added support for Python 3.7-3.10 in one unified distribution

CEETRON Envision Desktop now supports Python 3.7-3.10. In the distribution archive, there is a Python folder that contains what used to be Ceetron Python Modules [CPM].

Note that we have changed the python folder from cee to cee_envision to prepare for distribution on PyPI. So all old scripts using CPM needs to be updated to reflect this change.

CAE-774 [Web] Add support for dynamic symmetric arrows for vectors

Added support for drawing symmetric vector arrows which direction (inward or outward) is controlled by the sign of a user defined scalar result. This could be used to show if a stress result is compression or tension.

Added a new vector type (DYNAMIC_SYMMETRIC_ARROW) and VectorSettings.setVectorTypeDynamicSymmetricArrow(scalarId: number) to specify this new visualization.

Note: The property VectorSettings.vectorType now is a read-only property and the set property is deprecated. It will still work, but will be removed in future versions. So please use the new setVectorTypeArrow(), setVectorTypeSymmetricArrow() and setVectorTypeReverseSymmetricArrow() functions in VectorSettings to change the vector type.

CAE-698 [Web] Client-side element picking

Added support for client side picking of visible triangles within a region (rectangle) or along a path (set of points). This is a fast way to find all visible triangles within a region. You can then use the output of this to highlight the triangles, or to query the server to get which elements these triangles represent.

Added RemoteModelElementPicker which can be produced by RemoteModel.createElementPicker(view: View). Use the getVisibleElementsInRectangle or getVisibleElementsAtPoints methods to perform the query. Note that a new RemoteModelElementPicker must be created if you change the state of the RemoteModel. See documentation for more info.

CAE-827 [Web] Add interfaceName to cee.ug.SimulationInfo

Added the name of the interface/reader/data provider that is currently in use for the RemoteModel in cee.ug.SimulationInfo.interfaceName

CAE-760 [Web] Create new markup part for lines

Added new Markup Part cee.mrk.PartLines. This is a part that can show lines in a MarkupModel. Added cee.utils.PathGenerator which is a helper class to generate vertices for a path that can then be shown with the PartLines markup part.

CAE-740 Support for polyhedrons in CEETRON Envision VTFx component

Polyhedrons are now fully supported in the VTFx export component. Added cee::vtfx::ElementBlock::addPolyhedronElements() for adding polyhedron elements to a VTFx block.

CAE-794 Add result unit information to VTFx export and Envision Desktop

Added cee::ug::ResultInfo::setUnit() and unit() to Envision Desktop. This is already present in Envision Web.

Added cee::vtfx::ResultBlock::setUnit() and unit() to CEETRON Envision VTFx component.

CAE-836 Add robustness for empty DataPartVector/DataPartScalar

CEETRON Envision now handles parts with no result a bit more robust, as it is now allowed to have part objects with no results and not only nullptr in the part array.