还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
利用增强功能Addins在设计软件如中,二次开发的一个重要方面是利用(插件)PC Altium Designer Addins来增强软件的功能可以扩展的功能,使其更加符合特定的Addins Altium Designer设计需求本节将详细介绍如何创建和使用包括其原理、步骤和具体示例Addins,的原理Addins是的一种扩展机制,通过编写自定义的脚本或程序,可以在Addins Altium Designer不修改软件原有代码的情况下,为软件增加新的功能或改进现有功能通常使用语言编写,因为的开发环境是基于的Addins DelphiAltium DesignerDelphi此外,也可以使用等其他语言,通过接口进行开发C#COM的工作原理是通过注册到的扩展管理器中,当Addins Altium Designer Altium Designer启动或特定事件触发时,会被加载并执行可以访问Addins Addins Altium Designer的从而实现对设计文件的读取、修改和生成等操作API,的开发步骤Addins环境准备
1.在开始编写之前,需要准备好开发环境以下是一些常见的环境准备步骤Addins•安装确保你已经安装了最新版本的Altium DesignerAltium Designero•安装推荐使用因为的开发环Delphi EmbarcaderoDelphi,Altium Designer境是基于的Delphi•获取提供了开发所需的文档和示例代Altium DesignerSDK SDKAddins API码创建项
2.Addins在中创建一个新的项目Delphi VCL Forms Applicationpublic{Public declarations}end;TGenerateBOMAddin=classTAddinprivateFForm:TForm;publicconstructor CreateAOwner:TComponent;override;destructor Destroy;override;function Initialize:Boolean;override;function Execute:Boolean;override;end;varGenerateBOMForm:TGenerateBOMForm;implementation{$R*.dfm}{TGenerateBOMForm}procedure TGenerateBOMForm.GenerateBOMButtonClickSender:TObject;varPCBServer:IPCB_Server;Board:IPCB Board;Iterator:IPCB_Boardlterator;Component:IPCB_Component;BOMText:string;beginBOMText:=Component Name,Value,Package+sLineBreak;//获取实例PCB ServerPCBServer:=GetPCBServer;if AssignedPCBServerthenbegin〃获取当前文档PCBBoard:=PCBServer.GetCurrentPCBBoard;if AssignedBoardthenbegin〃创建元器件迭代器Iterator:=Board.Boardlterator_Create;if Assignedlteratorthenbegin//设置迭代器查找所有元器件lterator.AddFilterToPCBObjectSetIPCB_Component;while Iterator.NextPCBObjectComponent dobeginif AssignedComponent thenbegin〃获取元器件属性BOMText:=BOMText+Component.Name++Component.GetValueValue++Component.GetValuePackage+sLineBreak;end;end;//释放迭代器Board.Boardlterator__Destroylterator;〃显示表内容BOMBOMMemo.Text:=BOMText;end;end;end;end;{TGenerateBOMAddin}constructor TGenerateBOMAddin.CreateAOwner:TComponent;begininherited;FForm:=TGenerateBOMForm.Createnil;end;destructor TGenerateBOMAddin.Destroy;beginFForm.Free;inherited;end;function TGenerateBOMAddin.Initialize:Boolean;begin〃初始化AddinsResult:=True;end;function TGenerateBOMAddin.Execute:Boolean;begin〃执行AddinsFForm.Show;Result:=True;end;initialization生成表,,RegisterAddinCGenerateBOMAddiM BOMCreateGenerateBOMAddin;end.测试和验证
3.编译项目,生成文件
1.DLL将生成的文件复制到的目录中
2.DLL Altium Designer Addins重启加载你的
3.Altium Designer,Addinso在中打开一个文档,运行点击“生成表”按
4.Altium DesignerPCB Addins,BOM钮,验证表内容是否被正确生成并显示在控件中BOM Memo结论通过可以极大地扩展的功能,满足特定的设计需求Addins,Altium Designer本节详细介绍了的原理、开发步骤和具体示例,包括如何添加预定义的元Addins器件、批量修改元器件属性和生成表希望这些内容能够帮助你在实际工作BOM中更好地利用进行二次开发Addins打开
1.Delphi IDE选择
2.“File-“New-VCLFormsApplication-Delphi”保存项目,命名为你的名称
3.Addins引入必要的单元
3.在项目中引入必要的单元,以便访问的例如,引入单AltiumDesignerAPL ADServer元usesADServer;注册
4.Addins为了让识别并加载你的需要在项目中注册通常在项AltiumDesigner Addins,Addins目的主模块中添加以下代码initialization其中,是RegisterAddinCMyAddinName,MyAddinDescription,CreateMyAddin;CreateMyAddin一个函数,用于创建的实例Addins实现功能
5.Addins的功能实现通常在主窗体或自定义类中完成以下是一个简单的示例,展示Addins如何创建一个实现一个简单的功能在设计中添加一个预定义的元器Addins,PCB件示例添加预定义元器件创建一个新的窗体或类,命名为
1.TMyAddinForm在窗体中添加必要的控件,例如按钮
2.编写按钮点击事件的处理代码,实现添加元器件的功能
3.unit MyAddinUnit;interfaceusesSystem.Syslltils,System.Classes,Vcl.Controls,Vcl.Forms,Vcl.StdCtrls,ADServer;typeTMyAddinForm=classTForm AddComponentButton:TButton;procedure AddComponentButtonClickSender:TObject;private{Private declarations}public{Public declarations}end;TMyAddin=classTAddinprivateFForm:TForm;publicconstructor CreateAOwner:TComponent;override;destructor Destroy;override;function Initialize:Boolean;override;function Execute:Boolean;override;end;varMyAddinForm:TMyAddinForm;implementation{$R*.dfm}{TMyAddinForm}procedure TMyAddinForm.AddComponentButtonClickSender:TObject;varPCBServer:IPCB_Server;Board:IPCB_Board;Component:IPCB_Component;Location:TPoint;begin//获取实例PCB ServerPCBServer:=GetPCBServer;if AssignedPCBServerthen begin〃获取当前文档PCBBoard:=PCBServer.GetCurrentPCBBoard;if AssignedBoardthenbegin〃创建新的元器件Component:=Board.AddNewPCBComponentMyComponentName;if AssignedComponentthenbegin//设置元器件位置为Location.X:=10000;//10000lOOmilLocation.Y:=10000;Component.SetPositionLocation;〃刷新视图PCBServer.RefreshView;end;end;end;end;{TMyAddin}constructor TMyAddin.CreateAOwner:TComponent;begininherited;FForm:=TMyAddinForm.Createnil;end;destructor TMyAddin.Destroy;beginFForm.Free;inherited;end;function TMyAddin.Initialize:Boolean;begin〃初始化AddinsResult:=True;end;function TMyAddin.Execute:Boolean;begin〃执行AddinsFForm.Show;Result:=True;end;initializationRegisterAddinCMyAddinName,MyAddinDescription,CreateMyAddin;end.编译和测试
6.编译项目,生成文件
1.DLL将生成的文件复制到的目录中
2.DLL AltiumDesigner Addins重启加载你的
3.AltiumDesigner,Addinso在中测试的功能
4.AltiumDesignerAddins.发布和分发7完成开发和测试后,可以将发布至的社区或内部使用通常AddinsAltiumDesigner需要提供以下内容文件编译生成的文件•DLL Addins文档使用说明和功能介绍•示例项目展示功能的示例项目•Addins具体示例批量修改元器件属性在设计中,有时需要批量修改多个元器件的属性,例如修改所有电阻的值以PCB下是一个示例,展示如何通过实现批量修改元器件属性的功能Addins创建新的窗体
1.创建一个新的窗体,命名为并在窗体中添加以下控件:TBatchModifyForm,用于提示用户输入属性名称和新值•Label用于输入属性名称•Edit用于输入新值•Edit用于执行修改操作•Button.编写窗体代码2在窗体中编写按钮点击事件的处理代码,实现批量修改元器件属性的功能unit BatchModifyllnit;interfaceusesSystem.Syslltils,System.Classes,Vcl.Controls,Vcl.Forms,Vcl.StdCtrls,ADServer,PCBObjShl;typeTBatchModifyForm=classTFormPropertyNameLabel:TLabel;PropertyValueLabel:TLabel;PropertyNameEdit:TEdit;PropertyValueEdit:TEdit;ModifyButton:TButton;procedure ModifyButtonClickSender:TObject;private{Private declarations}public{Public declarations}end;TBatchModifyAddin=classTAddinprivateFForm:TForm;publicconstructor CreateAOwner:TComponent;override;destructor Destroy;override;function Initialize:Boolean;override;function Execute:Boolean;override;end;varBatchModifyForm:TBatchModifyForm;implementation{$R*.dfm}{TBatchModifyForm}procedure TBatchModifyForm.ModifyButtonClickSender:TObject;varPCBServer:IPCB_Server;Board:IPCB_Board;Iterator:IPCB_Boardlterator;Component:IPCB_Component;PropertyName,PropertyValue:string;begin//获取用户输入的属性名称和新值PropertyName:=PropertyNameEdit.Text;PropertyValue:=PropertyValueEdit.Text;//获取实例PCB ServerPCBServer:=GetPCBServer;if AssignedPCBServerthenbegin〃获取当前文档PCBBoard:=PCBServer.GetCurrentPCBBoard;if AssignedBoardthenbegin〃创建元器件迭代器Iterator:=Board.Boardlterator_Create;if Assignedlteratorthenbegin〃设置迭代器查找所有元器件lterator.AddFilterToPCBObjectSetIPCB_Component;while Iterator.NextPCBObjectComponent dobegin只修改名为的元器件ifAssignedComponentand Component.Name=R*then//R’begin〃修改元器件属性Component.SetPropertyValuePropertyName,PropertyValue;end;end;//释放迭代器Board.Boardlterator_Destroylterator;〃刷新视图PCBServer.RefreshView;end;end;end;end;{TBatchModifyAddin}constructor TBatchModifyAddin.CreateAOwner:TComponent;begininherited;FForm:=TBatchModifyForm.Createnil;end;destructor TBatchModifyAddin.Destroy;beginFForm.Free;inherited;end;function TBatchModifyAddin.Initialize:Boolean;begin//初始化AddinsResult:=True;end;function TBatchModifyAddin.Execute:Boolean;begin〃执行AddinsFForm.Show;Result:=True;end;initialization,批量修改元器件属性、RegisterAddinBatchModifyAddinCreateBatchModifyAddin;end.测试和验证
3.编译项目,生成文件
1.DLL将生成的文件复制到的目录中
2.DLL AltiumDesignerAddins重启加载你的
3.AltiumDesigner,Addinso在中打开一个文档,运行输入属性名称和
4.AltiumDesignerPCB Addins,新值,点击“修改”按钮,验证元器件属性是否被正确修改其他高级功能除了基本的元器件操作,还可以实现更复杂的功能,例如Addins•生成报表根据设计文件生成详细的报表,例如表BOM•自动化布局实现自动化布局和布线,提高设计效率•自定义规则检查添加自定义的规则,确保设计符合特定标准DRC示例生成表BOM以下是一个示例,展示如何通过生成表Addins BOM创建新的窗体
1.创建一个新的窗体,命名为并在窗体中添加以下控件:TGenerateBOMForm,用于生成表•Button BOM用于显示生成的表内容•Memo BOM在窗体中编写按钮点击事件的处理代码,实现生成表的功能BOMunit GenerateBOMUnit;interfaceusesSystem.SysUtils,System.Classes,Vcl.Controls,VcLForms,VcLStdCtrls,VcI.ExtCtrls,ADServer,PCBObjShl,PCBServer;typeTGenerateBOMForm=classTFormGenerateBOMButton:TButton;BOMMemo:TMemo;procedure GenerateBOMButtonClickSender:TObject;private{Private declarations}。
个人认证
优秀文档
获得点赞 0