ADG cairo canvas

Software library for automatic drawing generation

The ADG library (acronym for Automatic Drawing Generation) is a set of functions focused on automating the drawing of mechanical parts. It is not a CAD system; it is a software library providing a non-interactive canvas where a custom application can put common CAD entities such as paths, hatches and dimensions, to automatically create technical drawings.

The use of ad-hoc applications for generating technical drawings (and, more in general, to manage the mechanical data of the parts database in manufacturing centers) dramatically cuts down production times in the technical office. This in turn means a big lowering of setup times, at least on the software side of the production, allowing the production of "goods and services to meet individual customer's needs with near mass production efficiency" (definition of Mass customization by Tseng and Jiao in 2001).

ADG based applications are typically integrated with some sort of database layer to store and retrieve the data, making the connection with other administrative tools much easier (and less error prone) than extracting numbers from a bunch of CAD files. Furthermore the fact the data is inside a database opens the door to a whole serie of use cases, such as integrating your own institutional website with the database of your products with relevant technical sketches attached.

The ADG code is released under an open source license. This basically means everyone can download, modify and use that code, even in proprietary applications, without any license fees or arbitrary imposed restrictions, apart from keeping intact the original license and publish any code modification made to the ADG codebase itself, to avoid turning it into a proprietary fork. In other terms everyone is free to develop its own application based on the ADG without having to owe anything to anyone.

This allows different ways of approaching the problem of developing an application that automatically generates drawings:

  1. you are free to develop the application on your own;
  2. you are free to let third party developers develop your application;
  3. you can let the eNTiDi develop a skeleton application and further extend and improve it by yourself;
  4. you can let the eNTiDi develop, extend and maintain the whole application.