Interfacing a Constraint Programming Language with an Existing Electronics CAD Package Marc van Dongen, Barry O’Sullivan, James Bowen, Alex Ferguson {dongen|osullb|J.Bowen|abf}@cs.ucc.ie, Computer Science Department, National University of Ireland, Cork, College Road, Cork, Ireland September 1997 Abstract In this note, we report on an ESPRIT-funded project in which we are integrating the Galileo6 constraint language with an electronics design CAD package called Visula. We describe some aspects of the integration and show the functionality of the system, and conclude by discussing our findings. 1 Introduction Increasingly, it is being realised that success in manufacturing requires integration between the various phases of the product life cycle [Ulrich and Eppinger, 1995]. One of the key aspects of this integration is that, during the design of an artifact, due consideration should be given to facilitating the down-stream phases of the life-cycle. This is frequently known as “Design for X” (or DFX), where the X ranges over such issues as manufacturability, servicability and so on. Vendors of leading CAD software have started to incorporate DFX features into their packages. In addition, vendors have discovered from customer feedback that engineering companies require flexibility as well as functionality: companies which use CAD packages want to specify their own DFX guidelines as well as, or even instead of, relying on standard DFX guidelines supplied by the CAD vendors. If engineers from user companies are to augment CAD packages with company-specific guide- lines, it is important that a language be provided which simplifies this task as much as possible. We are developing a language for this purpose, based on the computational paradigm of con- straints. The language, called Galileo6, is intended to be generic in two senses: it can be used to encode guidelines from any product domain and guidelines expressed in it can be applied to designs encoded in a variety of CAD formats. We report on some aspects of an ESPRIT-funded project in which we are linking the Galileo6 language to an electronics design CAD package called Visula. In Section 2 we briefly describe the Galileo6 constraint language. In Section 3 we describe the integration of Galileo6 and Visula. In Section 4, we illustrate how the system can be used to specify company specific guidelines and critique designs with them. In Section 5, we provide a concluding discussion. 2 An Overview of the Galileo6 Constraint Language Galileo6 is the latest in a series of constraint programming languages for Concurrent Engineering that one of the authors (Bowen) has been developing since the mid 1980s [Bowen and Bahler, 1992; Bahler et al., 1994]. The main difference between Galileo6 and its predecessors is that Galileo6 comes with a programmable mechanism for accessing CAD databases. 1