查看: 43231
回复: 30
【原创分享】 Altium Designer 一键导出坐标和BOM脚本,V0.9
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2017-11-06 09:16:17 | 只看该作者
1# 电梯直达

这个自定义导出坐标脚本有这些"特点":

0: 没有复杂的设置, 几乎可以一键完成.  

1: 脚本自动算出元件的中心点,没找到AD那个API可以使用,于是就自己写了.
2: 焊盘个数大于1 才输出坐标, 那种LOGO之类的元件将会过滤掉,不再会输出坐标.    如果您要导出Mark坐标,那么这个脚本无法导出一个焊盘的坐标,可以将两个焊盘重叠放置.
3: 层信息优先依照焊盘来决定.  有些人画的电阻: 丝印,焊盘都在顶层, 但是元件属性在底层....这个脚本被逼的不得已了,脚本强制纠正....
4: Descriptor属性为空时刻不输出坐标文件. 不好意思,位号都没有,我认为坐标也不用输出了.
5: 输出坐标的时候不看Type属性. 不管你设置成什么都将输出坐标.
6: 1号引脚,输出引脚名为1的坐标.   有些人第1引脚实际上是2或别的...  这与AD自带的有所不同.

7: 如果焊盘不在顶层或底层, 且元件不在  顶层或底层,  则不输出坐标.


项目地址:
https://gitee.com/JLC_SMT/PnPcustom

点击下载最新版脚本:  PnPcustom.zip   //需要注意这是离线文件,我们无法做到有更新通知您.

//V0.9 2021-07-03
增加是否SMD元器件功能

V0.8 2019-9-03

//增加功能:  导出BOM时,使相同元器件位号个数不超过200.  超过200则再另起一行.

V0.7.1 2019-6-10

//修复BUG, 个别时候元件会使用三点算圆心.改为引脚数等于3,才尝试算圆心

V0.7 2019-5-13

//修改中心点算法,不对称引脚准了一些(三点算圆心,多点算矩形化中心.).

V0.6 2018-6-16 

//添加 导出错误信息

//添加 了一些常见的错误字符检查, 例如位号中包含空格. 并直接替换字符

V0.51 2018-5-26

//添加了一些错误说明.  例如疑似元件的层信息不对

//导出BOM的时候相同元件,忽略重复位号, BOM简洁

V0.4   2018-5-11 17:30 

//添加导出BOM功能.    BOM和坐标一键完成

V0.3  2018-5-04 19:21

//添加了些"自动纠正的" 功能

//如果焊盘不在顶层或底层, 且元件也不在  顶层或底层,  则不输出坐标.

V0.2    2017-11-06 21:25  更新了一个版本,  .  到此版本导出功能基本与AD16以下自带的导出样式一致了, 基本可以作为测试版使用了

//修复BUG,  居然触发了一个数据溢出,当某个坐标累积后会溢出.

//添加 Comment列导出.


V0.1

借鉴了github的开源作品,没学过 delphi 语言,  IF语句都还还不熟,    一边看一边改, 基本上完成了我需要的功能. 所以将版本号写成V0.1


使用方法: 

先打开  PCB  和 脚本项目.  然后在PCB界面下运行脚本



 




解决问题举例 (其实这些都是设计问题,  写这个脚本也是不得已为之.):


层信息优先依照焊盘来决定, 举例, 这个脚本将尝试优先使用焊盘的图层信息

 



这个脚本将尝试找焊盘个数大于1 才输出坐标, 下图种LOGO之类的元件将会过滤掉,不再会输出坐标。

 



这个脚本输出坐标的时候不看Type属性. 不管你设置成什么都将输出坐标.

 






深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
xzbb
2
主题
5
回复
发表于2017-11-06 14:20:04   |  只看该作者
2#
牛逼呀 不然每次手动改
遮天夜凌云
0
主题
1
回复
发表于2017-11-06 16:50:51   |  只看该作者
3#
大佬,怎么用啊这个脚本,麻烦详细说一下,谢谢
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2017-11-06 17:05:26   |  只看该作者
4#
遮天夜凌云 发表于2017-11-06 16:50:51  3# 大佬,怎么用啊这个脚本,麻烦详细说一下,谢谢

先打开  PCB  和 脚本项目.  然后在PCB界面下运行脚本



 



深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
bazheng
0
主题
2
回复
发表于2017-11-23 13:34:57   |  只看该作者
5#

 点击查看大图

请教,为什么会出现这种提示?

JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2017-11-23 14:25:49   |  只看该作者
6#
bazheng 发表于2017-11-23 13:34:57  5# 请教,为什么会出现这种提示?
从压缩包 打开PCB文件!
深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2018-05-04 16:15:36   |  只看该作者
7#
更新了一个版本
深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2018-05-11 17:35:14   |  只看该作者
8#
添加导出BOM功能
深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2018-05-26 16:33:54   |  只看该作者
9#

V0.5 2015-5-26

//添加了一些错误说明.  例如疑似元件的层信息不对

//导出BOM的时候相同元件,忽略重复位号, BOM简洁


例如输出这种提示信息:

 点击查看大图

深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2018-06-16 11:44:27   |  只看该作者
10#

V0.6 2015-6-16

//添加 导出错误信息

//添加 了一些常见的错误字符检查, 例如位号中包含空格. 并直接替换字符

深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
DMA4ME
103
主题
163
回复
发表于2018-11-15 04:30:09   |  只看该作者
11#
不规范封装的旋转角度能自动计算吗?
呼啦啦
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2018-11-15 09:15:03   |  只看该作者
12#
DMA4ME 发表于2018-11-15 04:30:09  11# 不规范封装的旋转角度能自动计算吗?
不能. 
深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2019-05-13 20:54:11   |  只看该作者
13#

V0.7 2019-5-13

//修改中心点算法,不对称引脚准了一些(三点算圆心,多点算矩形化中心.).

深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
辣辣白菜
0
主题
1
回复
发表于2019-05-15 13:50:31   |  只看该作者
14#

在网上找到一个脚本,可以把丝印定位到元件中心,并调整尺寸,用了半年很好用!

强烈建议把这个对其丝印的脚本集成进去,同时脚本设置为按钮的形式(调用Run_Script要点好几下,影响效率)

AD_Script.zip 

Evan12
0
主题
1
回复
发表于2019-06-06 16:34:38   |  只看该作者
15#

 点击查看大图

你好,为什么会出现这样的错误提示?

JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2019-06-10 14:59:47   |  只看该作者
16#
Evan12 发表于2019-06-06 16:34:38  15# 你好,为什么会出现这样的错误提示?

AD 版本是?  脚本版本是?   能否提供PCB文件复现?

深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
Frankamani
0
主题
1
回复
发表于2019-07-11 17:04:56   |  只看该作者
17#
"有些人画的电阻: 丝印,焊盘都在顶层, 但是元件属性在底层...",就如图片里所示,请问这是怎么导致的呀,怎样才能将丝印、焊盘、元件属性修改成一致的呢?
XCDZ
0
主题
1
回复
发表于2019-07-23 11:50:40   |  只看该作者
18#
为什么用你们的脚本生成的坐标文件在嘉立创SMT还是不行
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2019-07-25 09:24:21   |  只看该作者
19#
XCDZ 发表于2019-07-23 11:50:40  18# 为什么用你们的脚本生成的坐标文件在嘉立创SMT还是不行
描述一下你遇到的错误.     并贴上PCB文件.   

上面这一句 没人 能猜到你遇到什么问题.
深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
YGGTechHJC
0
主题
1
回复
发表于2019-08-07 20:37:59   |  只看该作者
20#

 

导出来什么都没有,是什么问题?

AD13,器件封装不是嘉立创的标准封装不行吗?


JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2019-08-08 09:56:01   |  只看该作者
21#
YGGTechHJC 发表于2019-08-07 20:37:59  20# 导出来什么都没有,是什么问题?AD13,器件封装不是嘉立创的标准封装不行吗?

你这个幸亏是 使用这个脚本导出了坐标.   自带功能都检查不出问题的. 


问题1:  上面这个  D7,D8,D9 元器件层都是有问题的.

问题2:  位号内包含空格, 下一步自动解析是可能会拆分成    [Y]   [Moduli]  两个位号.   这种习惯最好不要有,容易出问题.



D7,D8,D9 元器件层都是有问题的. 看这段描述:

 



深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
才哥
4
主题
13
回复
发表于2019-09-12 12:55:31   |  只看该作者
22#

一些辅助性的元件,比如下载口,跳线啥的, 不需要SMT的。设置元件属性TYPE 为 Standard(No BOM) 时,貌似 BOM 和元件列表不应该出现的,AD自带的都不会输出,这个脚本提示了警告,但会强制输出。

 

 

JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2019-09-12 13:33:50   |  只看该作者
23#
才哥 发表于2019-09-12 12:55:31  22# 一些辅助性的元件,比如下载口,跳线啥的,不需要SMT的。设置元件属性TYPE为Standard(NoBOM)时,貌似BO...
你已经是AD的高手了, 非常熟悉这些属性, 有导出问题也不是特别大,到时也可以自己删掉.        这个属性就怕不小心设置了,自带的功能是连个提示也没有的.
深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
whwenxin
0
主题
1
回复
发表于2019-12-06 18:27:38   |  只看该作者
24#

               SuppliersPartNumber_text :='';

//Designator

   IteratorSch := CurrentSchDoc.SchIterator_Create;

   IteratorSch.AddFilter_ObjectSet(MkSet(eSchComponent));


   Try

       AComponent := IteratorSch.FirstSchObject;

       While AComponent <> Nil Do

       Begin

   if Designator_text=AComponent.Designator.Text Then

   begin

           Try

               PIterator := AComponent.SchIterator_Create;

               PIterator.AddFilter_ObjectSet(MkSet(eParameter));


               Parameter := PIterator.FirstSchObject;

               While Parameter <> Nil Do

               Begin

   if Parameter.Name='SuppliersPartNumber' Then

   SuppliersPartNumber_text:= Parameter.Text;

break;

                   Parameter := PIterator.NextSchObject;

               End;

           Finally

               AComponent.SchIterator_Destroy(PIterator);

           End;

end;


           AComponent := IteratorSch.NextSchObject;

       End;

   Finally

       CurrentSchDoc.SchIterator_Destroy(IteratorSch);

   End;


增加了一节从原理图上找SuppliersPartNumber的,不优化但可以实现功能。不能上传文件,把这节代码贴这。

skyrim
0
主题
1
回复
发表于2020-01-14 06:53:33   |  只看该作者
25#

 用该脚本在AD20.0.10下生成的坐标在SMT订单里面所有元件都是不对齐的,请问是什么原因呢?

用AD自己生成的在SMT系统里也是差不多这样,但是电阻有一半是对齐的。

98老古董
0
主题
1
回复
发表于2020-07-04 10:03:41   |  只看该作者
26#
 请问我这是什么情况,我用另外一个PCB文件运行脚本就没问题
sjh00213
0
主题
1
回复
发表于2020-09-10 16:27:54   |  只看该作者
27#

 

我的每个PCB打开运行脚本后都是出现这个提示,怎么解决?

黄世杰HSJ
0
主题
1
回复
发表于2021-06-02 10:58:28   |  只看该作者
28#
3脚圆心算法依旧不准,有没有办法修复
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2021-07-03 11:59:06   |  只看该作者
29#

//V0.9 2021-07-03

增加是否SMD元器件功能

深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com
我为板狂我为板忙
0
主题
8
回复
发表于2021-12-15 11:19:58   |  只看该作者
30#
这个脚本能否增加装配变量的功能。通过设置不同的装配变量,可以自由的选取焊接哪些材料,而不是一股脑的全部焊接了。
JLCSMT
【官方工作人员】
197
主题
1110
回复
发表于2021-12-15 11:40:20   |  只看该作者
31#
我为板狂我为板忙 发表于2021-12-15 11:19:58  30# 这个脚本能否增加装配变量的功能。通过设置不同的装配变量,可以自由的选取焊接哪些材料,而不是一股脑的全部焊接了。
上面这个脚本根据以往的一些投诉和较容易出错的位置做了一些自动化的处理, 脚本并不能适用于所有人,  你已经摸索的很深了, 完全有能力自己输出BOM, 没必要用脚本输出BOM了
深圳市嘉立创科技发展有限公司 SMT事业部:http://www.sz-jlc.com

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部