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

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

--正文篇——第七章第10节

发表时间:2007-9-10  特约撰稿人: 张浩 白二平 来源:e-works
此单元中整个服务器的核心单元,其中定义了TConnective类、TDesign类、TName类、TSheetEntry类、TNet 类、TPart 类、TPin 类、TSheet 类、TSheetSymbol 、TListOptions类、TNetFormatter类、TNetListOptions类。作者邮箱:bullzhanghao@yahoo.com.cn 如有疑问,可直接与作者联系!

1.类的定义

TNetFormatter = Class

Global Net List Options : TNetListOptions;//网络连线表选项对象。

Generated File Names : TStringList;//存储产生的文件列表。

Design : TDesign;//存放原理图的两个列表。

CurrentSheet : TSheet;//当前原理图。

UseXRef : TBoolean;

UseNodeNames : TBoolean;

PinListStyle : TPinListStyle; //元件的列表类型。

FileName : TString;//文件名称。

CurrentSheetName : TString; //当前原理图名称。

DesignName : TString;

NetFile : Text;

ProcessOrder : TProcessOrder;

ProcessStyle : TProcessStyle; //处理类型,有按组件和按网络两种类型。

AllowSingleNode : TBoolean;//是否允许单节点。

AllowZeroNode : TBoolean;//是否允许零节点。

AppendSheetNoToNets : TBoolean;

UseNetFile : TBoolean; //是否允许使用网络文件。

NetCount : TShortInt;

UnconnectedNetCount : TShortInt;

ShouldRemoveRedundentParts : TBoolean;

ShouldRemoveRedundentNetNames : TBoolean;

ShouldRemoveRedundentSheetSymbols : TBoolean;

GeneratedFilesCount : TShortInt;//产生的文件数量。

MaximumNetNameLength : Word;//最长的网络名称长度。

MaximumPinNumberLength : Word;//最长的引脚号码长度。

MaximumPinNameLength : Word;//最长的引脚名称长度。

MaximumDesignatorLength : Word;//最长的流水号长度。

MaximumPartTypeLength : Word; //最长的元件类型长度。

MaximumFootPrintLength : Word;//最长的封装形式长度。

ParameterList : PChar; //用户在定制服务器的进程时所输入的参数。

Constructor Create;

DestructorDestroy;

Function CurrentPartList : TListOptions;//元件列表

Function CurrentPortList : TListOptions;//端口列表。

Function CurrentSheetSymbolList : TListOptions;//图表符号列表。

Function CurrentNetList : TListOptions; //当前的网络列表。

Function CurrentTextFrameList : TListOptions;//得到当前文本框列表。

Function CurrentBusNameList : TListOptions;//得到当前BUS列表。

Function GetState_NetFileExtension : TString; Virtual ;//得到连线表的扩展名称。

Procedure OpenFile(Var F : Text; S : TString);

//把要产生的文件名称插入到GeneratedFileNames列表中,并在DDB数据库中或硬盘上创建产生的文件。

Procedure OpenNetFile; Virtual ;//打开网络连线表文件。

Procedure CloseNetFile; Virtual ; //关闭网络连线表文件。

Procedure SetState_AllowSingleNode; //设定允许单节点。

Procedure SetState_DontAllowSingleNode;//设定不允许单节点。

Procedure SetState_AllowZeroNode; //设定允许零节点。

Procedure SetState_DontAllowZeroNode;//对一个TNetFormatter类实例对象不允许零节点。

Procedure SetState_UseNetFile;//设置使用网络文件。

Procedure SetState_DontUseNetFile;//设置不使用网络文件。

Procedure SetState_ProcessNetsFirst;//网络先处理。

Procedure SetState_ProcessByNet; //设置按网络处理。

Procedure SetState_ProcessByComponent;//组件先处理。

Procedure SetState_ProcessComponentsFirst;//对TNetFormatter类的实例对象设置处理次序来先处理组件。

Function RunSetupOptions : TBoolean; Virtual ;//运行设置选项。

Procedure WriteComponentListHeader; Virtual ; //写组件列表标题。

Procedure WriteComponentListTrailer; Virtual ;//写组件列表结尾。

Procedure WriteComponent (Part : TPart); Virtual ;//把元件对象的属性写出文件。

Procedure WriteSheetSymbol (SheetSymbol: TSheetSymbol ); Virtual ; //写图表符号。

Procedure WriteNetNames (Net : TNet ); Virtual ;

Procedure WriteNetListHeader;Virtual ; //写网络列表标题,没有具体实现功能,您可以增加功能。

Procedure WriteNetListTrailer; Virtual ; //写网络列表结尾,没有具体实现功能,您可以增加功能。

Procedure WriteFileHeader; Virtual ;//输出文件标题。

Procedure WriteFileTrailer; Virtual ;//输出文件结尾。

Procedure WriteSheetHeader (IndentLevel : TShortInt); Virtual ;//写图表标题。

Procedure WriteSheetTrailer(IndentLevel : TShortInt); Virtual ;//一个图表处理完成后,写结尾。

Procedure WriteAllComponents; Virtual ; //把元件的引脚和图表符号写到文件。

Function GetState_PinArray (Part : TPart) : TListOptions; Virtual;

//得到TNetFormatter类实例对象的引脚数组。

Procedure WriteToStatucBar (S : TString); //写信息到状态条。

Procedure WriteNodesByComponent; Virtual ; //按组件写节点。

Procedure WritePin (Pin : TPin ); Virtual ;//写其它引脚。

Procedure WriteLastPin (Pin : TPin ); Virtual ;//写最后一个引脚。

Procedure WriteStartComponent(Part : TPart); Virtual ;//写组件的开始信息。

Procedure WriteEndComponent (Part : TPart); Virtual ; //写组件的结束信息。

Procedure WriteStartNet (Net : TNet ); Virtual ;

Procedure WriteEndNet (Net : TNet ); Virtual ;

Procedure WriteNet (Net : TNet ); Virtual ;//输出网络到文件。

Procedure WriteAllNets; Virtual ;//写所有的网络到文件。

Function IsHierarchical : TBoolean; Virtual ;

//判断输出是否是Hierarchical格式,此类被子孙类PProtel_H重载。

Procedure RunFlat; Virtual ;//输出Flat格式文件。

Procedure RunHierarchical; Virtual ;//输出Hierarchical格式文件。

Procedure BuildFileNamesArrayToBeGenerated (Parameters : PChar);

//从用户在参数中输入的参数块中检索文件名称,并增加到列表GeneratedFileNames中,形成产生的文件名称列表。

Procedure RebuildParametersFromFileNamesArray(Parameters : PChar); //从文件名称数组重构参数。

Procedure LoadGeneratedFiles (ABinder : TObjectHandle);//加载文件。

Function GetDisplayName (DDBFileName : TString) : TString;//得到显示名称。

Function SetNetListOptionsForSchematic (GlobalNetListOptions : TNetListOptions) : TInitializeDataStructure;

//把网络选项对象即TNetListOptions类的实例对象中的数据设置到记录Flags。

Procedure Run (NetListOptions : TNetListOptions; Parameters : PChar); Virtual; //建立网络列表,服务器的核心过程。

End;

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

责任编辑:王阳