|
本帖最后由 SkyGz 于 2015-2-27 17:31 编辑
这不领了个商城红包嘛
这回头疼了, 还得想办法花了, 还得花得实在
就想着做个板子吧, 把运费省了, 这样红包至少还买多几样东西
可这没合适要做, 只好在坛里翻了一圈, 找了个坛友分享的JLINKV2 PCB, 这板子小还得 拼起来, 不浪费
拼着拼着,拼好了, 这回一看, 晕了, 标号名称 变了, 后面 全加了_1字样(就是粘贴时忘了把 保持原名选项打钩了),
如图1, 这要是一个个改那不累死, 可要是 重新拼一遍, 也麻烦....
就想着 用脚本改了, 花了一点时间, 就整出了个脚本, 鼠标轻轻一点, 任务就完成了........代码见后面
===============================================================
晕, 拼出来的板 101.4MM*87MM, 就是有一边多了1.4MM, 审核 就要多收31元.........
板子再重新缩啊缩啊......终于审核通过了,
这20元红包终于花出去了, 可结果是 还贴了50去做板子+买些配件15元... 唉, 原本这些 都可做可不做, 可实在无聊,整点来玩玩
在AD里面 新建DELPHI 脚本工程, 再新建脚本单元文件, 将以下代码粘粘, 保存
打开你的PCB文件, AD左上角DXP菜单->运行脚本, 选择这个脚本工程, 运行, 即完成了..........
Procedure RunScript;
Var
gvBoard : IPCB_Board;
Component : IPCB_Component;
ComponentIteratorHandle : IPCB_BoardIterator;
S : TPCBString;
Begin
gvBoard := PCBServer.GetCurrentPCBBoard; //取当前文件
If gvBoard = Nil Then
Begin
ShowMessage('The Current Document is not a Protel PCB Document.');
Exit;
End;
ComponentIteratorHandle := gvBoard.BoardIterator_Create;
ComponentIteratorHandle.AddFilter_ObjectSet(MkSet(eComponentObject)); //进行过滤,只选器件
ComponentIteratorHandle.AddFilter_LayerSet(AllLayers); //所有层
ComponentIteratorHandle.AddFilter_Method(eProcessAll);
//遍历整板所有器件
Component := ComponentIteratorHandle.FirstPCBObject;
While (Component <> Nil) Do
Begin
If Pos('_', Component.Name.Text) > 0 Then //如果器件名称中包含下划线
Begin
Component.BeginModify; //开始修改
Component.Name.Text := Copy(Component.Name.Text, 1, Pos('_', Component.Name.Text) - 1); //只取下划线前面部份
Component.EndModify; //结束修改
End;
Component := ComponentIteratorHandle.NextPCBObject; //操作下一下器件
End;
gvBoard.BoardIterator_Destroy(ComponentIteratorHandle); //释放
End;
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|