27.5. Using SyncFloat to Reduce System Load

When creating parameter connections between ML modules and Inventor modules, system load may increase considerably. This is due to the delay queue handling of Open Inventor modules that may cause notification loops. To avoid this, the SyncFloat or SyncVector modules can be used.

SyncFloat is a macro module offering an input parameter Float1, an output parameter Float2 and an Epsilon parameter. As long as the difference between the floating point fields Float1 and Float2 is smaller than Epsilon, SyncFloat filters the notifications. Only when the difference between Float1 and Float2 is larger than Epsilon, notifications are sent. For vectors, the similar module SyncVector is available.

In the following paragraphs, the two basic situations in which SyncFloat reduces load are described.

27.5.1. Case 1: Two Inventor and One ML Module Connected in a Circle

If a circular parameter connection between two Inventor modules and one ML module is created, the system load will increase because of a constant notification of the fields. To avoid this, the SyncFloat module needs to be inserted, either between the Inventor modules or the ML and an Inventor module.

Figure 27.6. SyncFloat Example — ML and Inventor Modules

SyncFloat Example — ML and Inventor Modules

27.5.2. Case 2: A Macro Module (Including an Inventor Module) and Another Inventor Module Connected in a Circle

If a macro module encapsulates an Inventor module of which some fields can be connected through, and a circular parameter connection is established between the Inventor field of the macro and another Inventor module, this also increases the system load. To avoid this, the SyncFloat module needs to be inserted between the macro module and the inventor module.

Figure 27.7. SyncFloat Example — Macro and Inventor Modules

SyncFloat Example — Macro and Inventor Modules