These clever men, how diligent!
Here's another brand-new portent,
Beyond the ordinary man's capacity;
If told I'd doubt the teller's veracity
And scorn the simpleton's naïveté.
One benefit of developing ADS applications in-house is that the process helps to identify and remedy shortcomings of the ADS mechanisms before third party developers encounter them. IGES is very demanding, yet so far only one new ADS facility appears to be required. (I say ``appears'' because, as should be apparent from the many parts of this project cited in the text as still undone, more may lurk as consequences of emulation functions not yet written.)
The one unambiguous extension needed by IGES is an ads_textbox() function. This would parallel the txtbox() function within AutoCAD; given a text string, its height, style name, X stretch factor, obliquing, and mode flags, it would calculate and return (perhaps as two ads_points with Z co-ordinates presently zero) the extents of the box enclosing that text string. IGES expresses text positions in that form, and I can't think of any way to obtain it other than reimplementing all of AutoCAD's text generation pipeline within the IGES application.
A ``would be nice'' feature that's not essential and may be provided for already in the ongoing development of ADS would be a signal to an ADS application at the first opportunity within each drawing editor session (including that which loaded it, if not by acad.ads) when AutoCAD was quiescent and the application could submit commands. ADS programs such as GRAVITY and Eagle get around this with a little piece of code that's triggered when the first command they implement is entered, and that suffices for matters such as creating layers, blocks, and suchlike needed by the application. What I'd like to do with IGES is have the application, if loaded, UNDEFINE the standard IGESIN and IGESOUT commands, replacing them with those it implements (the built-in commands would remain accessible through their ``true names''). I expect the ability for applications to transparently replace AutoCAD core commands will be a much-requested feature after ADS is shipped.
Also convenient, as additional AutoCAD commands are removed to ADS applications, would be a facility, perhaps implemented through the ACAD.PGP file, which could trigger the automatic xloading of an ADS application when one of the commands it implements was entered. Any automatically-loaded applications would be automatically unloaded at the end of the drawing editor session that caused them to be loaded.
Editor: John Walker