SmartCAM v2020 Macro Language
SmartCAM v2020 Macro Language

As is usual in a SmartCAM release, the SmartCAM Macro System again benefits from a number of enhancements.

New Math Functions

As technical people, we just love Math functions. There is something so simply satisfying when such functions are used in customization. Or is that just us. Anyhow, here is the set of new functions for v2020:

  • D=CEIL(N) - a round-up function. Numbers 2.3 and 2.9 both become 3.0.
  • D=FLOOR(N) - a round-down function. Numbers 2.3 and 2.9 both become 2.0.
  • D=MAX(N,N) - returns the larger of two values.
  • D=MIN(N,N) - returns the smaller of two values.

Selection Filter Status Function

A bit of technical. A new SEL_FILTER_ON() system status macro function can be used to record the filter status at the start of a macro so that, if on, it can be turned off in order to not interfere with operations performed by the macro, and then its original condition restored when the macro is complete.

New Surface Entity Bounding Box Calculation Mode

The Customization ToolKit contains functions to determine the 'bounding box' extent of elements within a macro, which is a frequent requirement by customization creators.

The previous functions were written for speed of execution, sometimes to the detriment of accuracy. A new option enables an 'exact' setting so that the returned bounding box is made infinitely more precise.

The CTK has been enabled with new functions that can be used to interrogate, set and use the improved functionality:

  • GET_SURF_ENV_MODE() - reads the Surface Entity Bounding Box Mode setting and returns 0 if set to Default, or 1 if set to Exact.
  • SURF_ENV_MODE_SET[MD=I] - sets the Surface Entity Bounding Box Mode to either 0=Default, or 1=Exact.
  • GRP_DIAG() - calculates longest diagonal measurement of a bounding box oriented parallel the XY_PLANE axes, and surrounding the active group.

Selection Filter Status Function

A new SUBNAME_FRM_IDX() function has been added that returns the sub name for a given sub index.

Check if plane index is for a wrapped plane

A new WKPLN_WRAPPED() function has been added that returns whether the supplied plane index is for a wrapped plane.