第三章原理图API
1. 前言
原理图编辑器是一个为原理图设计而研发的、完整的,有很多吸引人的特征设计平台环境。原理图编辑器服务器运行在设计资源管理器平台上,支持开放的构架,以作为软件开发者的一个工具。在原理图编辑器的开放的构架中,应用程序接口(API)技术是主要的驱动力,API的开放性允许供应商、用户和第三方程序开发者,无需依赖任何唯一的供应商就可直接来管理工具集成。
原理图编辑器的开放构架在电子设计自动化软件市场上是唯一的,其它EDA软件应用程序是封闭的构架,结果是导致开发者很难开发在这些封闭的构架内请求服务的应用程序,开发者也许会为某些功能特征不得不向EDA供应商请求帮助。现在,使用开放的API,就不存在这个问题,开发者可以使用API来增强服务器的特征,如扩展加载或保存格式的范围(加载/保存非Protel格式文件)或提升编辑器编辑多种多样的原理图对象的能力。
原理图的开放构架允许从设计资源管理器内部扩展服务器,来访问和处理数据,为了提供一个开放的构架,使用了动态连接库的技术,来从原理图编辑器中暴露服务。

图3-1 原理图编辑器
原理图API在原理图编辑器和其它服务器之间实现信息的交换。DLL接口允许客户化的服务器来从原理图编辑器中提取必需的数据,执行相关的操作。输入/输出向导和原理图物料清单(BOM)向导是原理图编辑器的智能向导的例子,输入/输出向导允许您输出原理图电子表格的原理图对象的属性到一个电子制表软件服务器,您也能从电子制表软件服务器输出编辑器属性回到原理图电子表格。这些向导使用原理图的API,来抽取所选择的原理图对象数据到一个电子制表软件服务器。BOM向导按它们的流水号产生一个组件报表。可使用三个BOM格式,ASCII文本列表格式的Protel格式、CSV格式(逗号分隔值)报表、客户端电子制表软件格式。
2. 原理图编辑器系统
原理图编辑器是多系统同时工作的强大的应用程序,数据库系统是原理图编辑器的心脏,数据库中存储所有的有关原理图文档的信息。在原理图编辑器数据库系统中,迭代(Iterators)和原理图消息交互作用。原理图编辑器已暴露到外部的系统,通过API来简短地略述它们的功能和它们与第三方开发者之间的关联。原理图编辑器系统与原理图编辑器数据库系统相互作用,在数据库系统中要素是一个直接的原理图文档对象。
2.1 原理图编辑器数据库系统

图3-2 原理图主数据库
图3-2显示原理图编辑器的主要数据库。原理图编辑器使用一个32位数据库系统,并且有两种不同的数据库结构可利用。每一个原理图文档都存放在一个数据库系统中,数据库有关于原理图文档的所有信息。原理图编辑器数据库系统存储两类对象,绘制对象和电子对象。
原理图编辑器数据库系统有两类不同的数据结构,数据结构的类型依赖于需求的原理图编辑器而被自动地选择。两类可用的数据结构分别为扁平的数据库和空间数据库。在图3-2中左边主数据库是扁平的数据结构,由原理图对象线性列表组成。在图3-2中右边的第二个数据库在性能是优选,在第二个数据库系统内,每一个容器保存相同的对象类型,例如,公共项目容器由一个公共项目对象的线性列表组成,按它们的坐标进行组织。
2.2 迭代程序系统

图3-3 原理图API