cm.abstract.k2.library

Empty function removed since ´public bool addSchemeLimb()´ makes sure the function never gets called.

cm.abstract.k2.xp

Global dimension functions removed and replaced with methods in XpShape.

cm.abstract.kitchen

To prepare for a full implementation of AutoElevations in 16.5 Minor, interface changes around AutoMeasure has been done.

cm.abstract.kitchen.design

Parents clientbound changes are no longer passed to parentClientBoundChanged method.

cm.core

cm.core.calc

articleView.cm

The behaviour of the additional adjustments have been changed to allow for standardization of the main article view. New interfaces have been added and others modified to manipulate adjustments instead.

cm.core.collabG3

The overall stability and performance of CollabPro has been improved:

  • A facelift to simplify user experience
  • Cleanup and simplification of window resizing logic
  • Improvements to logging and error handling
  • CollabPro now attempts to synchronize realtime project data with server on load, before applying appropriate load world or space hooks, to ensure data consistency.
  • RTInvalidate calls that were invoked before the RT runtime is initialized are now deferred and will be invoked when the runtime is ready.

See also related changes in cm.network.cbb.

For a developer's introduction to supporting CollabPro (G3), refer to this document.

cm.core.dwg

The DWG dialog (commonly known as "CAD Settings") have received a large update to allow selecting and editing multiple DWGs at the same time. As a result, many interfaces have been updated to accommodate the new functionality.

cm.core.geometry2D.advanced

Apath2D would sometimes return incorrect or inconsistent results when asking whether it contains a point or not.

It has been updated to have fewer errors and more consistent behavior when the point lies on the edge of it. This may in rare cases cause issues in code that relied on the incorrect behavior. Fixing these issues should lead to CET having fewer unexpected issues overall.

cm.format.dwg

Cleanup of Dwg entity classes, removing redundant constructors. In preparation for upcomming improved DWG export.

cm.network.cbb

CBBClient is the networking client used by CollabPro to exchange data with the cloud. We have improved the connection stability and reliability through better error handling and clearer status information.

cm.win

DIB Images

The handling of DIB (Device Independent Bitmap) images by CET Core has been improved, and it can now draw DibImage that have transparency.

As DIB images are regular memory allocated objects, it does not consume Windows GDI handles, resulting in reduced system resource usage, improving performance and stability.

MessageWindow

MessageWindow was originally made only to show in toolbox libraries. But now that there are more cases of it being used generally for UI, changes are made to easily use and size this outside of toolbox libraries. It sizes itself according to the text along with 3 sizing modes:

  • No width is provided : Size itself without text wrapping. (Use setWidth passing a 0 value)
  • Width is provided : Attempts to wrap the text if it crosses the width provided. (Use setWidth)
  • Calling extendRight : Attempts to wrap text according to how far it can extend right. (Use extendRight)

cm.win.advanced

As CET manufacturers grow in scale regarding products, we also need to keep that in mind of GDI Ojects from Windows having a limited amount for use in showing each image. While using any ExploreDialog in CET, the amount of GDI Objects use can soar if the folder being navigated is full of products being shown. Hence changes are made to use DibImage instead of MemoryImage for that very purpose. It is strongly recommended to look through your code base and determine whether to migrate into using DibImage wherever large amounts of images are being shown. Here are some suggestions on how to migrate.

Read as DibImage from a source.

If the image is loaded from a source, it is best to save the image as a DibImage from the start. Utilizing the functions inside cm/win/DibImage.cm, which takes in either Url, RawImageData, MagickWand, Stream.

MemoryImage as a transient.

If beginning with from DibImage is too difficult, you can instead opt to convert MemoryImage to DibImage, then destroy it, else it depends on the garbage collector to clean up the GDI Object. You can utilize memToDibImg(MemoryImage) in cm/win/DibImage.cm