Views:

Until Advance Steel 2011 we have used the following method to customize AutoCAD:
The Advance Steel CUI files were loaded out as partial CUI files in ACAD.cui(x).
While loading a partial CUI file AutoCAD, unfortunately, modifies the "main" CUI file.
This lead to many problems:

- Main CUI file corruption
- Problems working with 2 versions of Advance Steel (e.g., Advance Steel 2009 and Advance Steel 2010)
- Problems working with AutoCAD standalone and Advance Steel.

Knowing all these problems we decide to implement a new mechanism.
The mechanism is implemented as follows:

- An Advance Steel startup component is always loaded in AutoCAD (via the AutoCAD registry settings) regardless if an Advance Steel version is loaded or AutoCAD is alone.
- It determines the Advance Steel version loaded (if any) and the AutoCAD version that was started.
- If Advance Steel is not loaded then ACAD.cui(x) will be set as the main CUI file for AutoCAD.
- If Advance Steel is loaded then it determines which file must be the main CUI file. The file name will be a combination between the Advance Steel version and the AutoCAD version and also the Advance Steel Language Code. This way, the CUI will be unique per Advance Steel Version + Advance Steel Language + AutoCAD version combination.
(Example: For Advance Steel 2011 English Europe + AutoCAD 2011 we will have AS11_9_ACAD2011.cui(x) and it will be located in the corresponding AS version's support folder.)
- If the CUI file with the determined name exists then the startup component sets it as the main CUI file for AutoCAD.
- If the CUI file does not exist then the startup component creates it by copying the originally installed ACAD.cui(x), and then it loads this newly created CUI file as the main CUI file for AutoCAD.
- Next, Advance Steel loads its own customization files as partials in this CUI file and not in the ACAD.cui(x) file.

This new mechanism affects all Advance Steel versions installed on a machine where Advance Steel 2011 is installed (the startup component is a common component between Advance Steel installations and its version is always the newest version of installed Advance Steel).

How is the Advance Steel CUI managed

Note:

There is one small weak point that may occur in a scenario like the one in the following example:

- Run Advance Steel 2011 in AutoCAD 2011.
- Uninstall Advance Steel 2011.
- Delete the "data" folders that remain on the hard disk after uninstall.
- After running AutoCAD 2011 you will get an error (warning) message that the Advance Steel CUI file is missing.

Despite this message, everything still works. This problem occurs because AutoCAD activates the last used main cui file before loading our startup components and gives Advance Steel a chance to inform it that it needs to load another cui file instead of the uninstalled/deleted one.

How is the Advance Steel CUI managed