<连载>Protel二次开发从入门到精通
--正文篇——第七章第10节
10.2.5 P rotel单元
此单元中定义了三个类,并为每一个类实现了一些方法。
TProtel2 = Class(TNetFormatter)
TProtel = Class(TProtel2)
TProtel_H = Class(TProtel2)
我们可以看出,TProtel2是TProtel和TProte_H的父类,TProtel2是从TNetFormatter继承。TProtel是用于创建flat格式的网络连线表, TProtel_H类创建一个Hierachical格式的网络连线表。
让我们先来分析TProtel_H类
1.TProtel_H类
TProtel_H类定义:
//TProtel_H类创建一个hierachical格式的网络连线表。TProtel_H从TProtel2继承,TProtel2从TNetFormatter继承。
PProtel_H = ^TProtel_H;
TProtel_H = Class(TProtel2)
Function IsHierarchical : TBoolean;Override ;//对Hierachical格式,设置IsHierarchical字段为true。
Procedure WriteFileHeader;Override ;//对Hierachical格式,写文件的标题。
Procedure WriteFileTrailer;Override ;//对Hierachical格式,写文件的结尾。
Procedure WriteAllNets;Override ;//对Hierachical格式,写所有的网络属性到文件中。
Procedure WriteNet(Net : TNet);Override ;//对Hierachical格式,写网络属性到文件中。
Procedure WriteSheetHeader(IndentLevel : TShortInt);Override ;//对Hierachical格式,写图表的标题到文件。
Procedure WriteSheetSymbol(SpatialSheetSymbol : TSheetSymbol);Override ; //对Hierachical格式,写图表的符号到文件。
Procedure WriteSheetTrailer(IndentLevel : TShortInt);Override ;//对Hierachical格式,写图表的结尾。
End;
类方法说明:
此类和其父类相比,重载了WriteFileHeader(输出文件中写标题)和WriteNet(写一个网络到文件)过程,也就是说,如果用户选择的输出格式是Hierachical,就会调用这两个方法,而不是其基类中实现的方法。另外,还定义了其它的一些方法和函数,如IsHierarchical函数,对Hierachical格式,设置IsHierarchical字段为true。过程WriteSheetSymbol(SpatialSheetSymbol : TSheetSymbol)写图表的符号到文件等等。
请注意,TProtel_H类和TProtel类及其父类TProtel2都没有重载Create方法,也就是说,在NetForms单元中创建TProtel_H类或TProtel类实例时,实际上是执行其父类TNetFormatter的Create方法。
2.TProtel类
类定义:
PProtel = ^TProtel;
TProtel = Class(TProtel2)
Procedure WriteFileHeader;Override ;//对flat格式,写文件的标题,没有实现。
Procedure PreProcess;//定义各类字符串长度。
Procedure WriteComponent(SpatialPart : TPart);Override ;//对flat格式,写元件的属性到文件。
Procedure WritePin(SpatialPin : TPin);Override ;//对flat格式,写引脚属性到文件
End;
类方法说明:
此类和其父类TProtel2相比,重载了WriteFileHeader(写文件标题)过程,WriteComponent(写文件属性)过程,WritePin(写元件的引脚到文件)过程。
3.TProtel2类
类定义:
//TProtel2是TProtel和TProte_H的父类,TProtel2是从TNetformatter继承。
PProtel2 = ^TProtel2;
TProtel2 = Class(TNetFormatter)
Procedure WriteFileHeader;Override ; //在输出文件中写标题"PROTEL NETLIST 2.0"。
Procedure WriteComponent(SpatialPart : TPart); Override ;//把元件对象的属性写出文件。
Procedure WriteNet(Net : TNet);Override ; //写一个网络到文件。
Procedure WriteStartNet(Net : TNet);Override;//写把一个左括号和网络名称写到到文件中。
Procedure WriteEndNet(Net : TNet);Override ; //写一个右括号到文件中。
Procedure WritePin(SpatialPin : TPin);Override ;//写一个引脚到文件。
End;
类方法说明:
重载了以下几个过程,这些过程在父类TNetFormatter中此方法未实现。
WriteFileHeader来写文件标题。WriteComponent写元件属性内容到文件。WriteNet写一个网络到文件。WriteStartNet写一个网络前输出内容。WriteEndNet写一个网络后输出内容。WritePin写一个引脚到文件。
这些过程在具体使用时,我们再分析之。
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。
- 上一篇文章:<连载>Protel二次开发从入门到精通
- 下一篇文章:EDA工具最好理念:端到端流程优化
