Next Up Previous Contents Index
Next: Implementation Notes Up: Caustic Moment Previous: A Brief History

Goals and Strategy

There's little doubt that IGES can be implemented as an ADS application. ADS in Let It Be, with the advent of ads_entmake(), provides essentially the same access to the AutoCAD database as exists within the core. The only major disadvantage an ADS program faces is the inability to create AutoCAD symbol table entries (for blocks, layers, line types, etc.) with a mechanism like ads_entmake(), but carefully chosen commands submitted with ads_command() can circumvent this shortcoming.

However, code written as an ADS application looks nothing like AutoCAD core code. The means used to access the database, to look up information from symbol tables, to inquire system variable settings, and to create entities are entirely different. Consequently, extracting a chunk of AutoCAD and turning it into an ADS application consists not just of the usual operation of severing connections and tying off bleeders, but virtually reimplementing all the portions of the code that access the database. In the case of IGES, that's about all there is. Although dwarfed alongside the AutoCAD core, IGES is a huge program in its own right; as of Z.0.64 the IGES complex totals 14,103 lines of code. This is larger than all of AutoCAD 1.0: core, drivers, the works! Another purportedly arcane part of the core, the hidden line complex, is about a third the size of IGES.

Whatever the benefits of extracting IGES from the core, the prospect of what amounts to re-implementing 14,000 lines of code from scratch is not one that excites this programmer. After my earlier experiences with ADS suggested that ADS would support IGES, I began to investigate ways that IGES could be piecewise migrated from the present implementation within the core to a totally separate ADS version without disrupting the product development and release cycle, never requiring a total rewrite with attendant hiatus in IGES releases, one which would deliver the benefits of an ADS IGES as soon as possible with the minimum effort. This project is the fruit of that investigation; what I have at this point is very much a work in progress which will require substantial additional labours before the cutover from the current built-in IGES. However, the nature of the implementation allows this work to be done in parallel with the close-out of Let It Be, without disrupting that process in any way, and should permit shipment of an ADS extended IGES product well before the shipment of Release 12.


Next Up Previous Contents Index
Next: Implementation Notes Up: Caustic Moment Previous: A Brief History

Editor: John Walker