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

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

--正文篇——第十一章第5-7节

发表时间:2007-11-25  特约撰稿人: 张浩 白二平 来源:e-works
用Protel的原理图API,您开发的服务器可以访问原理图编辑器服务器,例如,可以使用原理图API开发原理图BOM和原理图Spread服务器。此章节是一个原理图编辑器API所提供功能的简明摘要,另外有一些原理图API函数和类的例子。作者邮箱:bullzhanghao@yahoo.com.cn 如有疑问,可直接与作者联系!
5. 公共的字段
5.1 Angle字段

描述:

StartAngle角度表示一个TSchArc、TSchEllipticalArc、TSchPie对象的开始角度,EndAngle角度表示一个TSchArc、TSchEllipticalArc、TSchPie对象的结束角度。两个角度类型被用度数模式表达。

例子:

Arc.StartAngle := 45.5;Arc.EndAngle := 270.1;

5.2 Color字段

被应用到:

TSchSystemOptions类的SelectionColor字段。

TSchSystemOptions类的VisibleGridColor 字段。

TSchSheetOptions、TSchLibraryOptions类的BorderColor字段。

TSchSheetOptions类的SheetColor字段。

TSchLibraryOptions类的WorkspaceColor字段。

TSchEllipse、TSchTextFrame、TSchPart、TSchPie、TSchPolygon、TSchPort、TSchRectangle、TSchRoundRectangle、TSchSheetSymbol、TSheetEntry、TSchProcessContainer 类的AreaColor字段。

TSchTextFrame、TSchPort、TSheetEntry类的TextColor字段。

TSchPart类的PinColor字段。

TSchPart类的Local Color字段。

TSchProcessContainer类的NameColor字段。

声明(来自SchClass单元):

Color : LongInt;

描述:

Color变量指定一个从6位的十进制数转换过来的RGB值,例如,蓝颜色为RGB:0,0,255,Hex:FF0000因此被转换为十进制常数16711680。下列的公式将被用来计算待定的值,R+256*(G+(256*B)),例如,Color=0是黑色,Color=255是红色,Color=65289是绿色,Color=16711680 是蓝色,Color=16777215是白色。

然而,为了简化此事,Color变量能被通过在Borland Delphi编译程序包的Windows单元的RGB函数来分配,RGB函数接受三个字节类型的参数,其转换三个间隔的参数到一个Longint类型,第一个特定的参数是红颜色的光亮度,第二个特定的参数是绿颜色的光亮度,第三个特定的参数是蓝颜色的光亮度。

例子:

Rectangle.Color := RGB(255,255,255)

//此矩形的背景将是白色的。

5.3 FontID字段

被应用到:

TSchTextField、TSchSheetOptions、TSchAnnotation、TSchTextFrame和TSchNetLabel类。

声明(来自SchClass单元):

FontID : Integer;

描述:

FontID值表示哪一个字体被使用。FontID是到原理图编辑器字体表的一个入口字体的索引,每一个被使用在原理图编辑器中的字体有它的FontID。通过一个更改对象的更改字体对话框,把一个新的FontID被增加到原理图编辑器的字体表中,从而使一个新的字体被使用。FontID值能被从下列原理图对象提取(TextField、Sheet、Annotation、TextFrame和NetLabel),但是,我们不可能通过使用SchAPI来创建新的字符,而此,为了更改一个原理图对象的字体,需要在原理图编辑器中从一个更改对象对话框中点击更改字体对话框,来更改字体。

5.4 Radius字段

被应用到:

TSchArc、TSchEllipse、TSchElliptical弧、TSchPie类。

TSchRoundedRectangle类的CornerXRadius和CornerYRadius字段

声明(来自SchClass单元):

Radius : Integer;

SecondaryRadius : Integer;

CornerXRadius : Integer;

CornerYRadius : Integer;

描述:

Radius值表示Arc、Ellipse、Elliptical弧和Pie对象的弧的尺寸,CornerXRadius 和CornerYRadius值表示圆角矩形边的弧的尺寸,通过把CornerXRadius和CornerYRadius设置成足够大的值,就可以把一个圆角矩形变成一个椭圆,这是完全有可能的。

5.5 X, Y字段

被应用到:

TSchObject类的LocationX、LocationY字段。

TSchBusEntry、TSchImage、TSchTextFrame、TSchLine、TSchProcessContainer、TSchRectangle、 TSchRoundRectangle类的CornerX、CornerY字段。

TSchSheetSymbol类的XSize、YSize字段。

声明(来自SchClass单元):

LocationX : Integer;

LocationY : Integer;

CornerX : Integer;

CornerY : Integer;

XSize : Integer;

YSize : Integer;

描述:

LocationX和LocationY字段描述一个原理图对象的初始X、Y坐标,规定坐标的单位为0.01英寸,范围为0-6500。

CornerX和CornerY字段描述一个原理图对象的最末X、Y坐标,规定坐标的单位为0.01英寸,范围为0-6500。

XSize和YSize字段描述图表符号对象的尺寸,规定坐标的单位为0.01英寸,范围为0-6500。

例子:

Rectangle.LocationX:= 100;

Rectangle.LocationY:= 100;

Rectangle.CornerX:= 500;

Rectangle.CornerY:= 500;

参见其它:

TSchObject类

6. 公共的方法
6.1 Create方法

声明(来自SchClass单元):

Constructor Create(AHandle : TObjectHandle);

描述:

Create方法使用给定的对象句柄创建一个原理图对象。

例子:

PortHandle := SchAPI_CreateObjectEx(ePort);

Port.Create(PortHandle);

参见其它:

Destroy方法

6.2 Destroy方法

声明(来自SchClass单元):

Destructor Destroy;

描述

Destroy方法销毁一个对象并且释放已分配给它的内存。

参见其它:

Create方法

6.3 QueryDatabase函数

声明(来自SchClass单元):

Function QueryDatabase(Mode : TQueryMode) : Integer

描述:

Querydatabase方法要么从原理图编辑器数据库中检索一个对象的信息,要么为原理图编辑器数据库中一个原理图对象分配值,具体执行的是哪一种操作依赖于TQueryMode模式,eGetState模式初始化一个原理图对象的字段,eSetState模式为一个原理图对象分配新的值。为了向原理图编辑器数据库中注册更新了的值,每一个原理图对象必须有一个唯一的句柄,此点是强制性的。

例子:

Junction.QueryDatabase(eGetState);

Junction.Size := eLarge;

Junction.Locked := False;

Junction.QueryDatabase(eSetState)

参见其它:

TQueryMode类型

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

责任编辑:王阳
4