您所在的位置:e-works首页 > 产品创新数字化(PLM) > EDA

<连载>Protel二次开发从入门到精通

--正文篇——第十二章第1-2节

发表时间:2007-11-29  特约撰稿人: 张浩 白二平 来源:e-works
关键字:EDA Protel 二次开发
PCB编辑器的应用程序开发接口提供了在设计资源管理器99中控制PCB编辑器的功能,因而使用PCB编辑器API,允许服务器访问PCB编辑器提供的服务。本章节是PCB编辑器API所提供功能的说明,对其中一些PCB API函数和类,提供了一些例子。作者邮箱:bullzhanghao@yahoo.com.cn 如有疑问,可直接与作者联系!
第十二章印制板API参考
1. 前言

PCB编辑器的应用程序开发接口提供了在设计资源管理器99中控制PCB编辑器的功能,因而使用PCB编辑器API,允许服务器访问PCB编辑器提供的服务,例如,PCB的BOM和PCB向导服务。

本章节是PCB编辑器API所提供功能的说明,对其中一些PCB API函数和类,提供了一些例子。

PCB编辑器API被制作放在三个PCB的API单元中, PCBTypes、PCBProcs和PCBClass。PCBTypes文件是PCB API的基本单元,在PCB编辑器和外部数据之间提供类型兼容性。PCBProcs单元得到所有PCB编辑器通过使用指针地址和类型转换包装的过程和函数所暴露的的地址。PCBClass单元使用面向对象技术,来帮助隐藏和封装许多PCBAPI底层函数和长参数列表到类中。

PCB编辑器运行时间库分成以下几个部分:

·常量。

·消息常量。

·类型。

·PCBAPI函数。

·实用函数。

·常规的方法。

·类。

一个常量本质上是一个变量,其包含一个不能被改变的值。一个类型定义了一组数据值的可能的范围。一个类是一种结构,包括固定数量的构件,类的可能的构件是字段、方法和属性。实用函数是单独的函数,能转换数据、比较数据和格式化数据。“常规的字段”章节部分描述被PCB API类使用的常规字段。“常规的方法”章节部分描述被原理图API类使用的常规函数和过程。“类”部份描述类和它们的详细的字段。

在此参考中,函数和过程被组织起来,让您能快速地访问有关印制板的API,每一个函数和过程从API名称开始,其后是常量、类型、函数或类的描述,接下来是声明和出处,然后完整地描述API的定义,包括参数和参数的类型,再下来是描述,对此API进行详细阐述,如果此API比较复杂或重要,有可能给出一些代码例子,最后“参见其它”部份列出与此API有关的过程或函数。请见下面的一个典型的过程例子。

PcbApi_DestroyObject function

声明(来自PCBProcs单元):

Function PcbApi_DestroyObject(ObjectHandle : TObjectHandle ) : TObjectHandle;

描述:

PcbApi_DestroyObject函数销毁特定的PCB对象。

参见其它:

TObjectHandle类型

PcbApi_CreateRuleObject函数

当您想要使用一个特定的常量或类时,您需要增加相关的单元到您的服务器工程代码的Uses子句中,例如,如果使用SPCBAPI_DestroyObject过程,您需要增加PCBProcs单元到Uses子句中,否则编译器将抱怨说此过程找不到在哪里被定义。

有关位掩码和位操作注意事项:

在很多情况下,一个参数可能规定它能包含来自一些表的一个或多个值,这些值能够被定义为常量,并且它们被使用逻辑或(OR)操作组合,实际的值被传递到函数,通常特征为一个位掩码,规定每一个位对函数来说有一些重要意义,这就是为什么常量能被使用逻辑操作组合的原因。按位运算使您能一位一位地修改给定变量的位,一般的按位操作使您能对两个数目左移或右移或执行AND、NOT、OR和异或操作。

为传递超过一个以上的常量到函数,您能用一个参数,其接受许多用逻辑OR操作的常量的组合,当一个函数规定它返回超过一个以上的值时,它们被定义为特殊的常量,如果常量被包含在返回值中,返回值能被与常量中的一个进行组合,使用逻辑与(AND)操作来定义。

例子:

Result := Result Or Bitmask;

//设置一个位掩码常量到Result参数。

If(Result AND BitMask) = Bitmask Then

//测试一个位掩码常量是否包含在返回参数中。

2. 常量
2.1 AllLayers常量

声明(来自PCBTypes单元):

AllLayers : TSetOfLayers = [MinLayer..MaxLayer];

描述:

AllLayers常量定义一组层。

参见其它:

MinLayer常量

MaxLayer常量

IgnoreLayers常量

2.2 AllObjects常量

声明(来自PCBTypes单元):

AllObjects : TSetOfObjects = [MinObject .. MaxObject];

描述:

AllObjects常量定义要被使用的一组PCB对象。

参见其它:

AllPrimitives常量

2.3 AllPrimitives常量

声明(来自PCBTypes单元):

AllPrimitives : TSetOfObjects = [eTrackObject,eArcObject,eViaObject,

ePadObject,eFillObject, eTextObject];

描述:

AllPrimitives常量定义要被使用的一组图元对象。

参见其它:

AllObjects常量

2.4 BottomLayerPermitted_Bitmask常量

声明(来自PCBTypes单元):

BottomLayerPermitted_BitMask= $02;

描述:

BottomLayerPermitted_Bitmask常量被布局设计规则的许可层规则使用。

参见其它:

PcbApi_QueryRulePermittedLayersRule函数

参见按位算符

2.5 cDefault_CopperLayerHeight常量

声明(来自PCBTypes单元):

cDefault_CopperLayerHeight = 14000;

描述:

cDefault_CopperLayerHeight常量为TlayerObject对象定义默认的高度。

参见其它:

TlayerObject类

2.6 cDefault_DielectricConstant常量

声明(来自PCBTypes单元):

cDefault_DielectricConstant = 4.8;

描述:

cDefault_DielectricConstant常量为TLayerObject对象定义默认的介电常数。

参见其它:

TlayerObject类

2.7 cDefault_DielectricHeight常量

声明(来自PCBTypes单元):

cDefault_DielectricHeight = 126000;

描述:

cDefault_DielectricHeight常量为TlayerObject对象定义默认的电介质的高度。

参见其它:

TlayerObject类

2.8 cDefault_DielectricType常量

声明(来自PCBTypes单元):

cDefault_DielectricType = eCore;

描述:

cDefault_DielectricType常量为TlayerObject对象定义默认的电介质的类型。

参见其它:

TlayerObject类

本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。

责任编辑:王阳
2
相关专题