Release notes: CEETRON Envision
|
|
Starting with Envision 2.0, the release notes are only available in the latest online release notes: https://docs.techsoft3d.com/ceetron/latest/envision-desktop/release-notes/index.html
CEETRON Envision for Web CEETRON Envision for Desktop
CEETRON Envision - Envision 2.0.0 - Feb 28, 2024 - SHA: 35e51d55
From Envision 2.0 and forward, release notes are a part of the online documentation. Please go to:
https://docs.techsoft3d.com/ceetron/latest/envision-desktop/release-notes/index.html
CEETRON Envision - Envision 1.9.1 - Feb 5, 2024 - SHA: 17f5efeb
Fixed bugs
CAE-1301 Fixed crash in older VTFx file when ray picking
Fixed crash that occurred when picking on a feature extraction in an older VTFx file.
CEETRON Envision - Envision 1.9 - Dec 20, 2023 - SHA: e2e38f7d
Fixed bugs
CAE-1253 CeeVTFx: Assert when calling SetBlock.blockType()
Fixed missing internal enum causing SetBlock.blockType()
to assert.
CAE-1252 CeeVTFx: C# casting not implemented
Casting in the C# wrapper needs extra functionality in the swig interface layer. This is missing from all classes inheriting from Block in the CeeVTFx component. Add this to be able to downcast.
var block = db.blockByIndex(Block.BlockType.SET, 0);
var setBlock = SetBlock.castFromBaseClass(setBlock);
CAE-1269 Setting logarithmic mapping and range using properties, shows improper range
Using ScalarSettings.setFromProperties{logarithmicMapping: , rangeMinimum: , rangeMaximum: }
with range and log mapping together would cause the resulting legend to not show the expected range. Fixed this to ensure that range is not adjusted when logarithmic mapping is set to OFF.
CAE-1251 CeeVTFx: Transparent logo not supported
Custom logo transparency has now been added to CeeVTFx. Custom logo transparency was fixed in CAE-6 released with Envision 1.8, but was not implemented for the VTFx component.
New features
CAE-42 Color vectors by any scalar (not just the one shown as fringes)
Added the option for a user to color any mapped vector results by any scalar result data set.
This setting is owned by the VectorSettings
class on Desktop and Web. Enable this by setting vector color mode to VectorSettings::ColorMode::COLOR_BY_MAP_SCALAR
and specifying the scalar result to map onto the vector arrows.
Desktop:
int vecResId = model->modelSpec().vectorResultIds()[0];
cee::ug::VectorSettings* vectorSettings = model->vectorSettings(vecResId);
vectorSettings->setColorMode(cee::ug::VectorSettings::COLOR_BY_MAP_SCALAR);
vectorSettings->setMapScalarResultId(model->dataSource()->directory()->scalarResultInfos()[1].id());
Web:
const vecResId = model.modelSpec.vectorResultIdArray[0];
const vectorSettings = model.getVectorSettingsById(vecResId);
vectorSettings.colorMode = cee.ug.VectorColorMode.COLOR_BY_MAP_SCALAR;
vectorSettings.mapScalarResultId = model.modelDirectory.scalarResultArray[1].id;
CAE-1113 CeeVTFx: Added support for cross sections
Added support for cross section visualization of beam elements in CeeVTFx. The VTFx component has a new class CrossSectionBlock
to store cross section specifications. Add these by calling CrossSectionBlock::addCrossSection()
with cross section type and necessary parameters. These cross sections can be mapped to beam elements by adding the elements using ElementBlock::addElementsWithCrossSections()
specifying both the element and the cross section mapping into the connected CrossSectionBlock
block.
Supported cross section types are:
BEAM_IORH
BEAM_PIPE
BEAM_BOX
BEAM_CYLINDER
BEAM_L
BEAM_CHANNEL
BEAM_BAR
BEAM_UNSYMMETRIC_I
BEAM_CONE
The distribution contains several examples on creating cross sections. These can be found in the Examples folder and described in the documentation for the VTFx component.
Models exported with cross section data will also be shown in Envision Web.
CAE-916 Web: Controlling Label visibility with an occluder object
Controlling label visibility with an occluder object is now implemented in CEETRON Envision Web. Note that this feature requires WebGL 2.0 support.
Use cee.mrk.PartLabels.setOccluderTriMesh()
to set the occluder tri-mesh to use for testing the visibility of the label at the specified index. If the mesh is visible, the label will be visible. If the mesh is occluded, the label will be hidden.
Note the following shortcomings of the current implementation:
Picking on occluded labels will not work reliably since there is no knowledge of the label's visibility during picking.
Screen grabbing may not be reliable since there might be a need for multiple redraws until occlusion query results settle.
CAE-1244 Added support for Python 3.11
CEETRON Envision Desktop has updated its Python support to include Python 3.11.
CEETRON Envision - Envision 1.8.2 - Feb 2, 2024 - SHA: c6bce7bd
Fixed bugs
CAE-1302 Cutting plane scalar filtering crashes on part without results
Fixed crash when cutting plane scalar filtering is used on model that contains part with no scalar results.
CEETRON Envision - Envision 1.8.1 - Jan 22, 2024 - SHA: 5a49dd1b
Fixed bugs
CAE-1292 Isovolume with mesh visualization: crash when mirroring is activated
Fixed crash when mirroring a isovolume visualized using mesh.
CEETRON Envision - Envision 1.8 - Nov 8, 2023 - SHA: b1eca36a
Fixed bugs
CAE-1172 Isovolume: dirty visualization when part is hidden
Fixed bug with isovolumes not being regenerated correctly when set invisible and changing states.
CAE-1241 Parts in remeshed models that are invisible are not properly updated when changing states
Fixed bug with invisible parts in remeshed models not being properly updated when changing states.
CAE-1173 DataReader: Displacement scale factor not applied
Fixed bug with displacement scale not being applied for custom readers
CAE-1246 cee::vtfx::close() does not release file handle if close fails
In cee::vtfx::File::close()
, the file handle is released even if the file is incomplete or invalid.
CAE-1248 CeeVTFx: Missing methods in C#
Added missing C# wrapper for CeeVTFx classes SetBlock
and SetItemGroup
.
New features
CAE-1000 Scalar filtering for cutting planes
Added setScalarFilteringVisibleRange(int resultId, int minimum, int maximum)
to CuttingPlane
. The filter allows you to control the visibility of areas on the cutting plane based on scalar values, making areas outside the specified range invisible.
A common use case for this functionality is to restrict the visibility of a cutting plane to a specific isovolume. By configuring the cutting plane filter with the same result id and scalar range as the isovolume, you can ensure that the cutting plane surface is only visible within the isovolume.
CAE-6 ImageResource should support transparent images
Added support for alpha values in ImageResource used to save images to the VTFx file. This means a custom logo saved to VTFx will retain transparency when reopened.
CAE-1226 Add transformationMatrix for RemoteModel(Web) and UnstructGridModel(Desktop)
Specifying transformation matrices for RemoteModel
(on Web) and UnstructGridModel
(on Desktop) is now supported. The transformation matrix is set in the ModelSettings
class.
CAE-1242 Add VTFx case description for UG
Added VTFx case description to cee.ug.VTFxCaseInfo
CEETRON Envision - Envision 1.7.1 - Oct 17, 2023 - SHA: e00acc67
Fixed bugs
CAE-1239 Missing highlighting of extracted features
Extracted features, such as cutting planes, were no longer highlighting correctly when enabling the highlight behavior
CEETRON Envision - Envision 1.7 - Oct 2, 2023 - SHA: 4616aefc
Fixed bugs
CAE-1207 Some sections are missing from Shell elements in LS-Dyna
More recent models from LS-DYNA sometimes did not report the correct sections for SHELL elements.
CAE-1213 Web: "Clipped" visualization artifacts during model update
Sometimes the bounding box of the Remote Model would not be correct during an update, leading to temporary (flashing) clipping artifact (front/back clipping planes) for some modes of AutoClip.
New features
CAE-874 RemoteModel: Big performance improvements with many (>10k) parts
Big improvements to models with many parts in the RemoteModel. The RemoteModel was designed to handle up to 10k parts, but have now been enhanced in several ways to handle many more parts (>60k). The optimizations will help all models, but be more and more relevant as the number of parts grows.
Main improvements:
Optimized the streaming, greatly reducing the data volume for meta data for parts
Much faster processing on client side by optimizing part processing and lookup
Adjusted logic that triggers redraws in RemoteModel to make redrawing more relaxed in order to increase streaming throughput
Added per part early rejection to cutting plane and iso surface computations
Server side improvement of processing of many parts.
CAE-1201 VTU: Added control for how the Node Welding should be done
Added an option to VTU to control how the node welding is done (if enabled). The user can select any field to determine which “part” a node belongs to, and only the nodes from the same “part” will be welded. The default name for this field is “PartID” but this can be changed with the reader setting.
Desktop: ReaderSettingsVtk::setWeldNodesPartFieldName()
Web:
CAE-1222 Added support for specifying a custom legend title in the ConstantRemoteModel
Added cee.ug.ConstantRemoteModel.setColorLegendTitle()
to let the user control the title of a color legend in the ConstantRemoteModel.
CAE-1230 Updated to CEETRON Access 1.7 and ABAQUS 2023
Upgraded to the latest version of CEETRON Access. This adds support for ABAQUS 2023 as well as a lot of bug fixes.
CEETRON Envision 1.6.0 - Aug 16, 2023 - SHA: f991e3e2
Fixed bugs
CAE-1196 QueryNodeScalarResult does not support calculator results
The cee.ug.QueryNodeScalarResult
query now supports querying scalar results that are computed with a result calculator plug-in.
CAE-1200 Crash in loadState() when changing section configuration
When changing sections in cee::imp::cae::DataSourceCae
and then calling loadState() you might in some cases get an assert.
CAE-1203 Navigation cube cannot be used to set the camera inside the OpenModelCallback
The Overlay.viewConfigurationFromNavigationCubeItem()
did not work before the first visualization was ready (e.g. in the openModelCompleted
callback in RemoteModel.openModel().
CAE-1209 DataProvider: setCreateDerivedResults(false) does not work when adding results in pollForChanges
The CDPDataProvider::setCreateDerivedResults(false)
setting did not work when providing new results in CDPDataProvider::pollForChanges()
, it would always provide derived results.
Also fixed an issue where the results provided by result calculators disappeared if a pollForChanges()
resulted in a new call to getMetaData
(CDPChangeNotifications.notifyTriggerNewGetMetaData()
).
CAE-1211 ImportCAE: For some file formats undefined results are reported as 0
The file readers supported by Ceetron Access (most CAE formats) specifies undefined results as 0 and not undefined. This causes the visualization to be wrong and also for 0 to be included in the min/max calculations.
Added a new setting to control this behavior: On desktop we enabled the cee::imp::cae::ReaderSettings::setUsesUndefinedResults
reader setting for Ceetron Access so you can now force undefined results to be zero.
In Envision Web, we added a new reader setting:
In future releases, this will be set to default true (use undefined), but that requires some fixes in Ceetron Access.
CAE-1210 UgServer crashes on some old legacy VTFx files
Some old and partial VTFx files caused an assert and crashed the RemoteModel (UG) server.
New features
CAE-1123 Custom labels for color legend tickmarks
Added support for specifying custom color legend labels for FILLED_CONTOURS_UNIFORM
and FILLED_CONTOURS
legends. You have to specify numberOfFilledContoursColors()
+ 1 strings (one for each tickmark).
Added to cee::ug::ColorMapper
CAE-1193 Add constant fluid viscosity property to MassedParticleParameters
You can now specify a constant molecular fluid viscosity when using the massed particle tracing. This is useful if the viscosity is constant and you do not have a dedicated viscosity scalar field.
Added cee.ug.MassedParticleParameters.constantFluidViscosity
. This will be used when fluidViscosityResultId
is not set (-1).
CAE-1202 Added ArrowGenerator and fix typings of cee.utils
Added cee.utils.ArrowGenerator
class to generate a tessellation of an arrow.
Added cee.utils.ConeGenerator
and cee.utils.PathGenerator
to the typings files CeeEnvisionWebComponents.d.ts
CAE-1206 Add documentation to .d.ts file
Added the Envision Web documentation to the CeeEnvisionWebComponents.d.ts
. This allows for a much nicer development experience, as most editors (including VS Code) will show the documentation as tooltips when hovering over code.
CAE-1208 Do not expose the license code when using the Hoops Exchange plugin
When using the HOOPS Exchange Data Provider for the RemoteModel, you can now use the CEW_TECH_SOFT_LICENSE_CODE
and HOOPS_LIBRARY_PATH
environment variables to specify the license and the location of the HOOPS Exchange distribution on the server side. This avoids providing these as ReaderSettings from the client side.
The documentation has been updated to reflect this.
CEETRON Envision 1.5.0 - Jul 4, 2023 - SHA: d563f5e6
Fixed bugs
CAE-1197 initString
not passed along while using defaultResultCalculatorDefinitions
When passing along the defaultResultCalculatorDefinitions
as part of the OpenModelOptions
to RemoteModel.openModel()
the init string was not properly propagated to the result calculator.
New features
CAE-531 Add support for WebGL 2 to Envision Web
Envision Web is now using WebGL2 as the default renderer. This should not affect any current usage but will open up for new features in the coming versions.
It will fall back to WebGL1 if WebGL2 is not supported. You can force WebGL1 with ViewerOptions.forceWebGL1 = true
.
CAE-741 Add missing part and element info to queries
Added information about area and volume to HitItem and Element and Geometry queries.
Added cee.ug.HitItem.elementArea
with the area of the hit element.
Added cee.ug.QueryElementInfoData.elementArea
returned by cee.ug.QueryElementInfo
.
Added cee.ug.QueryGeometryStatisticsData.totalVolume
and totalArea
returned by the cee.ug.QueryGeometryStatistics
.
CAE-1131 Added part setting to disable feature extraction for that part
Added a new part setting for disabling computation of feature extractions (cutting plane, isosurfaces, isovolumes, particle tracing). If set to true, there will be no feature extraction computed for the given part.
See cee.ug.PartSettings.disableFeatureExtraction
and cee::ug::PartSettings::disableFeatureExtraction()
for more information.
CAE-1177 Added coloring of elements based on set, element type and user property
You can now specify how to color a part if not results are shown. This is done with the cee.ug.ModelSettings.modelColorSource
or cee::ug::ModelSettings::setModelColorSource()
setting.
Legal values are Part (default), Set, Element Type, User Property with index 0..2.
CAE-1187 Added documentation about cug in the Envision Web documentation
The documentation for Envision Web cee API overview page now has information about CUG.
CAE-1191 Added example and documentation on how to use multiple views in Envision Web
Added documentation on how to use multiple views to the View and Viewer API documentation.
Added a new Example (Examples/MultipleViews
) which showcases how to use multiple views with Envision Web.
CAE-1195 Support for MacOS ARM64 (M1/M2) for UG Server
Added support for Apple Silicon MacOS ARM64 (used in M1/M2 based Macs) for the UgServer. Use the npm run startMacArm command to start the server on a Mac with M1/M2.
The binaries are in the server/UgServer/bin/osx_arm64
and NativeApplications/CugComposer/bin/mac_arm64
folders.
Note: You might get an error saying the CeeUgServer.node
cannot be opened. If so, go to Privacy and Security and allow it.
CEETRON Envision 1.4.0 - May 24, 2023 - SHA: d3109217
Fixed bug
CAE-1186 oglWinPosFromClientCoord did not take padding into account
oglWinPosFromClientCoord
has been fixed to account for any padding specified for the Canvas element.
New features
CAE-1119 HOOPS Exchange Data Provider in CEETRON Envision Desktop distributions
We now ship a ready to use Data Provider to load CAD Data. This is backed by HOOPS Exchange. The Data Provider can be used on both Desktop and Web, and enables you to load any CAD model supported by HOOPS Exchange into a cee.ug.RemoteModel
(web) or cee::ug::UnstructGridModel
(desktop). The Data Provider Plugin (cdp_ExchangePlugin.so
or cdp_ExchangePlugin.dll
) can be found in the folder DataProviderPlugins
in the distribution (Desktop Windows and Linux).
Note that the usage of this plugin requires a HOOPS license with Exchange. This license can be provided with the reader settings: HOOPS_LICENSE
. Also note that the distribution does not contain HOOPS Exchange. This have to be downloaded separately from the Tech Soft 3D Developer Zone. The path to HOOPS Exchange must be set with the reader setting: HOOPS_LIBRARY_PATH
.
See the documentation https://docs.techsoft3d.com/ceetron/latest/envision-desktop/topics/dataproviders/plugins/exchange.html for more information.
CAE-1086 Finding visible parts within a screen region
Added cee.ug.VisibleObjectPicker
which can find the visible parts within a given screen region specified in css pixels. Use cee.ug.VisibleObjectPicker.getVisibleObjectsInRectangle()
to get all visible parts in that given region. This is a screen based technique, so any parts fully obscured in the region by other parts will not be part of the returned parts. The method support finding both partially and fully covered parts.
CAE-932 Generators and examples for mapping results on a geometry of any shape in cee.ug.RemoteModel
Added generators for creating cylinders, spheres and boxes with a predefined tessellation density. Added an example on how to use this generated geometry to map results form the Remote Model and visualize this together with the remote model using the cee.ug.QueryMapResultOnPoints
. This enables e.g. “cylindrical cutting planes”. Added cee.utils.BoxGenerator
, cee.utils.CylinderGenerator
and cee.utils.SphereGenerator
.
The example Examples/DemoAppUg
have be extended to show how you can create a cutting cylinder by using cee.utils.CylinderGenerator
, cee.ug.QueryMapResultOnPoint
and finally cee.geo.GeometryModel
to show the cylinder with results mapped onto the surface (as show on the left below):
CAE-451 Add setUseFirstOrderElementNodesOnly() to RemoteModel
Added setting to remote model to control if only first order element nodes should be used or not. Default false, which means high order elements (e.g. a 8 node QUAD) will be shown with all element nodes. If set to true, only first order nodes will be transmitted from the server and used for the visualization, causing the 8 node QUAD in the previous example to be shown as a QUAD with 4 nodes.
CAE-1165 Web: Add PartSettings::disableElementSetFiltering
Added new part setting for controlling if a part should use element filtering by sets or not. This is default false
(use filtering), but can be set to true
(no not use filtering) to make so parts visible even if they are not part of the visible sets. See documentation for cee.ug.PartSettings.disableElementSetFiltering
for more informartion.
CAE-1138 Legacy plotting: Add support for old embedded 2d plots
The embedded 2d plots on desktop now supports loading legacy VTFx files with embedded 2D plots.
CAE-197 Doc: Add topic on using multiple views
Added some more information on using multiple views to the documentation: https://docs.techsoft3d.com/ceetron/latest/envision-desktop/topics/visualization/multiple-views.html
CEETRON Envision 1.3.2 - Apr 27, 2023 - SHA: 3977c504
Fixed bugs
CAE-1133 CugComposer requires a desktop license to produce snapshot images
The OSMesa component (used by CugComposer and Envision for Python to produce snapshot images) did require a CEETRON Envision Desktop license. This has been changed so no any CEETRON Envision license will work, both Web and Desktop.
CAE-1148 Handling of undefined vector results as regular grid vectors on cutting planes was in some corner cases wrong
In some very infrequent corner cases parts with undefined vector vector results might in some positions show vectors where they are not defined.
CAE-1149 Creating a result calculator would cause an exception due to changes in CAE-1108
Initializing result calculators with the RemoteModel.createResultCalculator()
method would case an exception when updating the RemoteModel
.
CEETRON Envision 1.3.1 - Apr 19, 2023 - SHA: 565812a6
Fixed bugs
CAE-1129 CugComposer: Crash when exporting models with animations and expanded beams
The was an issue when converting models with animations and expanded beams to Cug using the CugComposer.
CAE-1130 Missing Data Provider Framework examples in Envision Desktop distribution
The new Data provider examples are now properly included in the Envision Desktop (Windows and Linux) distributions.
CEETRON Envision 1.3.0 - Apr 5, 2023 - SHA: 5849c2e4
Fixed bugs
CAE-992 Cannot read DataResultVisibility manually from the data source
The cee::ug::DataResultVisibility is not updated after loading visibility results.
Also added DataStateSpec::setLoadVisibilityResult()
so visibility results now can be loaded with DataSourceInterface::loadState()
.
CAE-1058 Envision Web UgServer C++ redist needs updating
Removed the C++ redist in the server/UgServer/bin/win
folder in the distribution and updated the documentation with the link to the latest C++ redist and info on when to use it.
CAE-1062 Removed cutting plane can still be interacted with
The problem occurs when users hang on to the settings objects that are retrieved from RemoteModel
even after the underlying entities have been deleted. Since the settings objects have parent references to the RemoteModel
internals, these objects keep influencing the RemoteModel
state even after they have been deleted. The customer observes just strange behavior, but this obviously has the potential to cause crashes as well.
The fix involves internal unwiring of the user facing settings objects in RemoteModel
when the underlying entities are deleted.
An added benefit of this fix will probably be that the job of garbage collector will be a little bit easier.
CAE-1101 Data providers: Using notifyResultAdded() might in some cases crash the server/host app
Fixed an issue where in some cases using the ChangeNotifications::notifyResultAdded()
method might crash the server.
CAE-1107 Assert when having a model with a single point
The web client caused a client side assert if the model only contained a single point and thus the extend of the bounding box was zero.
CAE-1111 Setting displacement scale factor to 0 or very small number breaks deformation
Improved handling of scaling of small displacements in Envision Web. Will now use the corresponding vector result if found to do proper scaling when the displacements are very small or when using a very small scale factor.
Adding check for setting zero displacement scale factor. cee.ug.DisplacementSettings.scaleFactor = 0
will now throw on the client, as this is illegal.
CAE-1118 CugComposer: Export of query information for models with expanded beams did not work as expected
Fixed an issue where the export from CugComposer
did not have the valid query information for parts with expanded beams (e.g. responding to picking).
New features
CAE-795 Project vectors on model surfaces, like it is done for cutting planes
PER_NODE
and PER_ELEMENT_NODE
vector results can now be projected onto the model surface. This is done by using the surface normal in the node and projecting the vector in the plane that is defined with the node and the normal. This works in a similar way as cee.ug.CuttingPlane.projectVectorsOnPlane
.
Added cee.ug.VectorSettings.projectOnSurface
and cee::ug::VectorSettings::setProjectOnSurface()
.
CAE-1002 Welding node support for VTK files to allow proper multi-part datasets
Added support for node welding in the VTK readers (Vtu, pvtu, pvd). When opening a .pvd file with multiple partitions the partitions will be combined to one part and the nodes on the interfaces between the parts will be welded. This makes the visualization work as expected (feature lines, transparency, normals, etc).
This feature also works for .pvd files with multple time steps.
Envision Desktop: Added readerSettings().vtk().setWeldNodesForJointParts(true)
Envision Web:
CAE-1097 CaeImport: Add reader for COMSOL section-wise files
Added support for COMSOL section-wise CAE files. Default extension is .txt.
CAE-1098 CaeImport: Add reader for STAR-CCM result files
Added support for STAR-CCM to ImportCAE.
Note: STAR-CCM is only available on Envision Desktop on Windows and you must provide the required DLLs and make them accessible to the application. The two DLLs required are ccmio.dll
and adf.dll
. Please contact Siemens to reach an agreement to redistribute the files.
CAE-1102 Update C# examples in dist with newer .NET
The C# project files for the example apps got some love and have been upgraded to a bit more modern version of .NET.
CAE-1103 New examples for the Data Provider Framework
We have added 3 new examples to the Data Provider Framework to showcase how it can be utilized and highlight the flexibility of the framework:
DynamicDataPlugin: A data provider with changing data using the pollForChanges(). Supports adding and removing states, results and geometry and also starting from an empty model.
SharedServicePlugin: A Plugin that supports getting data from a service that is shared between all instances of the plugin. Can open models with different configurations, then do one call to modify/morph all models. Shows how you can inject a singleton using the plugin factory.
MockupPlugin: Providing a
MPParametricProvider
that has a model generator and can produce meshes of any size to e.g. test performance.
CAE-1104 Allow customization for OffscreenCanvasLabelDrawer.drawOntoCanvas method
Added support for injecting a custom label drawer which gives total flexibility on how to render the labels in the markup model. Added PartLabels.setCustomDrawOntoCanvasCallback()
. Use this callback to override how labels are drawn. This gives you total freedom to draw any type of label. In the callback you need to resize the canvas to a size that suits your needs, and draw any text or other content onto the canvas. The label text is passed as input, but this text can be a custom markup language to control the layout of the label.
See the documentation of CustomDrawOntoCanvasCallback
for more info and an example on how to use this.
CAE-1105 Add more triangle and edge data to QueryFeatureExtractionSurface
Enriched the data returned from the cee.ug.QueryFeatureExtractionSurface
.
Added the following to ueryFeatureExtractionSurface
:
Per triangle (triangleDataArr
) and per edge (edgeDataArr
):
sourceElementIndex
scalarResult
vectorResult
perVertexScalarResults
perVertexVectorResults
Also added elementMeshVertices
The following are removed:
faceTriangleVerticesScalarResults
: UsetriangleDataArr[x].perVertexScalarResults
edgeLineVerticesScalarResults
: UseedgeDataArr[x].perVertexScalarResults
CAE-1108 Support initial empty model and adding/modifying geometries in Data Providers
Data providers now supports starting out (or ending up with) an empty model.
Added support for providing models with no geometry (only one state)
Added
CDPChangeNotifications::notifyTriggerNewGetMetaData()
to notify the host that the meta data (e.g. for a geometry) have changed and a newgetMetaData()
is required.Extending
DynamicDataPlugin
to demonstrate starting without a geometry.Fixed various issues relating to updating/modifying/deleting geometries, results and states when using
pollForChanges
orhandleClientRequest
.
CAE-1110 QueryMinMax - get min/max items for a given frame only
Added QueryResultMinMax.computeMinMaxItemsFromFrameIndex
to specify to only get minimum/maximum items from a given frame (and not all loaded states). Default is -1, which is the old behavior of returning min/max items from all currently referenced states.
CAE-1112 Add support for Symmetric Tensor Results in OpenFOAM Data provider
The OpenFOAM data provider now support symmetric tensor results.
CAE-1115 Add CUG Server documentation
Added information on how to use the server for the ConstantRemoteModel to the documentation.
CAE-1116 Add a root folder with zip file name as the root of the Envision Web archive
The Envision Web .zip file now has a root folder with the same name as the archive, making it easier to extract and keeping it consistent with the rest of the Tech Soft 3D toolkits.
CEETRON Envision 1.2.2 - March 20, 2023 - SHA: 147c9502
New version of Ceetron Access
Updated Ceetron Access (file readers) to patch version 1.0.7
CEETRON Envision 1.2.1 - Feb 16, 2023 - SHA: d026d7a8
Fixed bugs
CAE-1065 Can get null reference on mouse wheel while RemoteModel is loading
Using the mouse wheel early when the model is loading and having mouseWheelZoomAndWalkBehavior
set to other than TO_CENTER
might cause a throw and thus error logs in the console.
CAE-1067 ImportCAE OpenFOAM reader crashes on models with polyhedron elements
The built-in OpenFOAM reader in ImportCAE might cause a crash when opening models with polyhedron elements. This fixes a regression introduced in Envision 1.1
CAE-1071 VTFx component: Exported file can't be opened in the viewer (wrong vendor id)
Files exported with the VTFx components (standalone export) was not signed properly and thus not able to open in the free desktop 3D viewer.
CAE-1072 Simple null vectors would sometimes not be positioned correctly on some hardware platforms
In some rare cases on some hardware platforms the null vectors could be drawn in the wrong position.
CEETRON Envision 1.2.0 - Jan 27, 2023 - SHA: 18704d8b
Fixed bugs
CAE-920 UgModule is missing some exports
DisplacementSettingsProperties, ScalarSettingsProperties, VectorSettingsProperties were missing from the UgModule TypeScript d.ts file.
CAE-921 UgServer is sometimes confused about the current state id after applying a VTFx case
When applying cases from VTFx files, in some cases the current state was not properly synced between client and server, needing an extra update to get in sync.
CAE-925 PVD/VTM/VTU: Displacement vector fields are not interpreted as displacements result unless their name starts with "displacement"
The VTK reader now will use any result with the word “displacement” as part of the result name as a displacement result. See CAE-971 for an option to treat all vector results in VTK files as displacements.
CAE-947 UgServer: Memory is not freed by the c++ heap manager on Linux
Added option to trim heap memory usage on Linux/gcc using malloc_trim()
. The feature can be enabled by setting the environment variable CEW_UG_ENABLE_MEMORY_TRIM
This functionality was added after getting reports of growing memory usage (and eventually crash) when running Linux version of ugServer in a Docker container. When enabled, the feature performs regular calls to malloc_trim()
to manually do "garbage collection" on the c/c++ heap manager. Note that doing this could probably has a negative impact on performance.
CAE-962 Updating a cug model + removing another causes assert error
Fix assert error that occurs on update a CUG model then remove another.
CAE-964 Asset error on update cug part then call getBoundingBoxForPart()
Fix assert error that occurs on update CUG model then call getBoundingBoxForPart()
CAE-984 CugComposer crashes on VTFx files with IndexedFaceSets
The CugComposer did not handle (legacy) VTFx files with Indexed Face Sets
CAE-1019 Reference counting did not work properly from Python
Reference counting is now handled properly in the Python bindings for Envision for Python in the same way as for C# .
CAE-1039 ExportVTFx uses wrong vendor code, can't open in Viewer
The VTFx files exported from Envision for Desktop is now properly signed and can be viewed in the CEETRON 3D Viewer.
CAE-1049 CugComposer cannot pass unicode characters in arguments paths
The CugComposer now handles unicode filenames, both for input VTFx files and output folder/files.
New features
CAE-782 Camera changed callback
Added cee.Camera.setViewChangeHandler()
that sets a handler to be invoked each time the camera view changes.
CAE-802 Enable/disable mirroring per part
Added an option in UnstructGrid PartSettings to control if a part should be mirrored or not.
Added cee::ug::PartSettingsdisableMirroring()
method (desktop) and cee.ug.PartSettings.disableMirroring
property (Web).
CAE-810 Specify a background color for color legends
Desktop: Added support for a background for color legends. This helps making text more readable in some situations. The background color and opacity, as well as border color can be specified.
Added setDrawLegendBackground()
, setLegendBackgroundColor()
, setLegendBackgroundOpacity()
and setLegendBackgroundBorderColor()
to cee::ug::ScalarSettings
CAE-882 Vectors fields visualization: optionally display a vector a a point when length is 0
Desktop: Added an option to draw vectors with zero length (null vectors) as a point or a sphere.
CAE-918 Add visible property to cug.ParticleTraceGroup
The visibility of particle trace groups can now be controlled in the ConstrantRemoteModel.
Added cee.cug.ParticleTraceGroup.visbile
property.
CAE-919 Add method for getting BoundingBox for single part in ConstantRemoteModel
You can now get the bounding box of a part in the ConstantRemoteModel.
Added cee.cug.ConstantRemoteModel.getBoundingBoxForPart()
CAE-926 Add support for computing fit view eye position from a bounding box
Added a new method to Camera to compute the fitView eye position based on a given bounding box.
Added cee.Camera.computeFitViewEyePosition()
CAE-931 Web: Query to get feature extraction data
Added a new query to get the display model of a feature extraction item (cutting plane, isosurface or isovolume). Triangle and lines with the corresponding per vertex scalar result is provided as a result of the query. This is useful for client-side post processing of the feature extraction, as well as to visualize it in various ways.
Added cee.ug.QueryFeatureExtraction
CAE-949 Improve "Assertion failed" reporting mechanism
Added support for specifying an assertion failed handler that is invoked if a code assert fails on the client.
Added cee.setAssertFailedHandler()
.
CAE-953 Add support for custom view layouts
Added support for specifying a custom layout of views within a viewer. This enables using many views in one viewer, and thus working around the limit of only 16 WebGL canvases on one page.
Added cee.View.setViewport()
Here is an example with 28 views with different models on one page (within one viewer):
|
|
---|
CAE-971 VTK: Reader option to provide all vector results as displacements
Added an option for the VTK (vtu/pvtu) reader to treat all results as displacements, and thus making them available as displacements, vectors and individual scalar results.
Added cee::imp::cae::ReaderSettingsVtk& ReaderSettings::vtk()
with setReadVectorsAsDisplacements()
.
Added VTK
setting ALL_VECTORS_AS_DISPLACEMENT
to be used in the cee.ug.RemoteModel.setReaderOptions()
method.
Example:
CAE-988 Add support for supplying license code as environment variable to CugComposer
Added use of the environment variable CEW_TECH_SOFT_LICENSE_CODE
in the CugComposer and the UgServer. There are now 4 ways to provide a license to the CugComposer:
-license
command line optionCEW_TECH_SOFT_LICENSE_CODE
environment variable-licenseFile
command line optionCEW_TECH_SOFT_LICENSE_FILE
environment variable
CAE-1008 Added option to disable spatial partitioning when optimizing parts in UnstructGridModel
Added an option to specify only to merge equal parts based on appearance and not do spatial partitioning into equal sized chunks.
Added new parameter to cee.ug.ModelSettings.setOptimizePartRendering(bool optimize, bool spatiallyPartitionParts = false)
Default is now to only merge parts with equal appearance.
CAE-1035 Added support for CrincleCut cutting planes of 2d elements
Crinkle-cut cutting planes now also work as expected for 2d elements, showing the entire 2d element if intersected by the cutting plane.
CAE-1046 CugServer: Support absolute paths for CONFIGURE_EXPRESS_APP_JS_FILE
The app config file for the CugServer can now be specified with an absolute path.
CEETRON Envision 1.1.0 - Nov 25, 2022 - SHA: 68b113ab
Fixed bugs
CAE-756 VisualizationPartQuery: Crash when computing surface path on nodes connected to null-surface triangles
Fixed a crash when trying to do a surface path query starting on a beam or a point element.
CAE-852 Default value for MODEL_PATH in server/UgServer/Main.js is wrong
Fixed the model path based on the package reorganization for Envision 1.0
CAE-853 CugServer build fails for typescript 3.9
Fixed so you can compile the CugServer with TypeScript 3.9
CAE-868 Web: BuildYourFirstApp/2-Viewer: The initial camera is not set as intended
The callback to the openModel() was not correct in the example so setting the initial camera did not work.
CAE-878 ug.ScalarSettings.scalingConstantTerm and scalingFirstDegreeTerm not applied to legends
The use of unit conversion (setting a linear transformation of the results on the legend) did not always work as intended.
CAE-880 Assertion failed if using continuous legend bar and setting same min and max range values
When using a continuous legend mapping (numLevels = 0) the client would assert if min was set to the same as max.
CAE-892 HitItem returns undefined intersectionPointResult value for cutting plane when having parts without results
The intersectionPointResult value in cee.ug.HitItem was undefined or wrong if a model had some parts without any results defined.
CAE-902 CugServer: CEW_CUGS_CONFIGURE_EXPRESS_APP_JS_FILE should be relative to current dir rather than Main.js
Changed the behavior of the CEW_CUGS_CONFIGURE_EXPRESS_APP_JS_FILE environment.
New features
CAE-848 cee.ug.ScalarSettings: Custom continuous color scheme support
Added support for specifying a custom color mapping for continuous color legends. You can provide an array of colors and the legend will then be interpolated between these colors. If values are provided the legend will have the given color at the given value. If no values are provided the colors will be evenly spaced.
| ||
See cee.ug.ScalarSettings.setCustomContinuousColorArr()
for more info.
Note: Setting cee.ug.ScalarSettings..colorScheme = cee.ug.ColorScheme.CUSTOM
was never intended to be a valid operation and this is now documented and the property will throw if this is tried.
CAE-867 Element edge, face and node DataSets
Added support for element edge, element face and element node sets in Envision Web and VTFx.
CeeVTFx:
Added ELEMENT_FACE, ELEMENT_EDGE, ELEMENT_NODE and NODE as supported item types in
cee::vtfx::SetBlock
.Added itemSubIndex to
cee::vtfx::SetItemGroup
in order to specify a local face, edge, node index for these new set types.Added new example VTFxSets which showcases how to use sets in VTFx.
Envision Web: (cee.ug)
Added
elementFaceIndex
,elementEdgeIndex
andelementNodeIndex
tocee.ug.HitItem
.Added
itemType
tocee.ug.SetInfo
Added new query
QuerySetItems
to get items in a given set. This has an option to also return the tesselation of the set items (triangles for element face sets, lines for element edge sets and points for element node/node sets). This is useful for showing the sets by feeding these tessellations into the Markup or Geometry model.
Updated documentation to show element edge and surface order for Envision Desktop and VTFx:
Note: Full support in Envision Desktop is coming in a later version, as well as support in Data Providers.
CAE-870 Add cug-server to examples docker installation
The Envision distribution demo (http://envision.ceetron.com) now has a CugServer running to the CUG examples should work as intended.
CAE-876 cee.ug.CuttingPlane: Eye-lift support for cutting planes
Added a setting for giving cutting planes a visual priority (eye-lift) to control z-fighting when the cutting plane is competing against other geometry.
See cee.ug.CuttingPlane.eyeLift
for more info.
CAE-879 Added Data Provider Framework documentation to the Envision Desktop documentation
The documentation for the Data Provider Framework is now a part of the CEETRON Envision Documentation.
CAE-881 The web ugServer is now built with CentOS7 and only requires glibc 2.17
The server for RemoteModel (server/UgServer) is now built with CentOS7 and requires only glibc 2.17. The previous requirement was Ubuntu16 (glibc 2.23).
CAE-885 Add support for serving web apps through CUG server
Add support to CUG server for serving web apps over same port
Add CEW_CUGS_PUBLIC_DIR env var for specifying dir to be served statically
Add CEW_CUGS_CONFIGURE_EXPRESS_APP_JS_FILE env var for providing extra routes required by the app
Move status route to /status
Rename docker container models dir from "TestModels" to more generic name "Models"
CAE-888 Add DataProviderFramework/ResultCalculatorFramework to Envision Desktop distribution
Added the Data Provider Framework and the Result Calculator Framework distribution to Envision Desktop.
CAE-895 Add interface name to SimulationInfo
Added name of interface (file reader / data provider) currently used by RemoteModel to SimulationInfo (e.g. NASTRAN, ABAQUS, OpenFOAM, etc)
See cee.ug.SimulationInfo.interfaceName
for more info.
CAE-904 cee.ug.CuttingPlane: Support for turning the light on/off
Add support for disabling lighting of cutting planes. This can be useful to see the colors on the cutting plane without shading effects.
See cee.ug.CuttingPlane.lighting
for more info.
CAE-907 Add OpenFOAM data provider to Envision Desktop distribution
The OpenFOAM data provider is now distributed as a part of CEETRON Envision for Desktop.
CAE-910 Upgrade Envision Desktop and Web to use CEETRON SAM 1.0.1
CEETRON Envision 1.0.0 - Sep 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.
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.
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.
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-test.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.
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:
For more information, please see the documentation here.
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 (https://semver.org/ ).
For Envision Desktop there have been some changes to the CeeCore/Version.h
file with its macros:
Old Define | New Define |
---|---|
|
|
|
|
|
|
|
|
|
|
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 | Desktop |
---|---|
|
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.
Feature
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.
For previous releases, please see https://techsoft3d.atlassian.net/wiki/spaces/KC/pages/1517748975 or https://techsoft3d.atlassian.net/wiki/spaces/KC/pages/1521549335