EDA365电子论坛网

标题: [SKILL分享]:根据原理图页码和相对位置放置器件(支持Capture CIS和HDL) [打印本页]

作者: db-_-    时间: 2022-3-4 17:48
标题: [SKILL分享]:根据原理图页码和相对位置放置器件(支持Capture CIS和HDL)
本帖最后由 db-_- 于 2022-3-11 10:11 编辑

2022.3.9 v1.6 修正没有画OUTLINE导致的报错。见一楼附件。
2022.3.8 v1.5 修正HDL page坐标问题,旋转角度问题,并加快HDL速度。见一楼附件
2022.3.7 v1.4 加快放置速度。修正选择EXP会切换当前目录的BUG。

使用方法:

1、附件解压到任意skill目录中。在allegro.ilinit中输入load("place_by_sch.ile" "db")
2、在CIS(Capture CIS)中右键DSN,选择Report,选择Export Properties,然后点击YES以及OK,生成EXP文件。

3、对于CIS,在控制台中输入命令plcbysch,然后选择EXP文件即可。如果EXP文件和BRD是在同目录且同名(与DNS或者与BRD),会自动识别。
4、对于HDL,在控制台中输入命令plcbysch,然后选择sch_1目录即可。如果BRD是在physical目录下,会自动识别。

5000个器件放完大概需要14秒。


注意:BRD的Extents太小可能会导致放不下来,需要先改大后再重试~

有任何问题请留言反馈。
如果你觉得好用,也欢迎跟帖鼓励一下,谢谢~~!!!

使用效果:


请注意:
本人分享的所有SKILL皆为自己原创,没有时间限制。欢迎分享,但请勿用于商业目的。谢谢!

附件:v1.6
place_by_sch.rar (12.86 KB, 下载次数: 200)




补充内容 (2022-3-24 10:25):
v1.7 更新获取不到page的bug。见78楼。

补充内容 (2022-4-12 13:36):
v1.8 修正extent太小导致器件重叠的问题。见116楼。

补充内容 (2022-8-10 09:24):
V1.9更新 修正了出现strlen或者atoi报错的问题。见170楼
作者: ggfhkl45    时间: 2022-3-5 09:45
很实用,我之前一直找这方便的资料
作者: 蚂蚁乱舞    时间: 2022-3-5 14:40
很好,谢谢分享
作者: 不要忘记了    时间: 2022-3-5 17:50
感谢分享
作者: 1621142761    时间: 2022-3-5 21:14
试了一下,HDL的不知为何报这种错误
作者: 1621142761    时间: 2022-3-5 21:21
1621142761 发表于 2022-3-5 21:14
试了一下,HDL的不知为何报这种错误

补充图片

作者: db-_-    时间: 2022-3-5 22:54
1621142761 发表于 2022-03-05 21:21:00
[quote]1621142761 发表于 2022-3-5 21:14
试了一下,HDL的不知为何报这种错误

补充图片
[/quote]

等周一我看看 :-(


作者: db-_-    时间: 2022-3-6 14:24
1621142761 发表于 2022-03-05 21:14:50
试了一下,HDL的不知为何报这种错误


请提供一下使用的HDL的版本号。


作者: 1621142761    时间: 2022-3-6 14:48
db-_- 发表于 2022-3-6 14:24
请提供一下使用的HDL的版本号。

是这样的

作者: koncc    时间: 2022-3-7 09:25
感謝分享
作者: db-_-    时间: 2022-3-7 09:49
1621142761 发表于 2022-3-5 21:14
试了一下,HDL的不知为何报这种错误

知道什么原因了。

现在的版本会获取边框的坐标,然后计算每个元件到边框的相对值。我用的默认的边框“B SIZE PAGE”,在这里做了一个字符串匹配。
你那边用的不是这个名,所以没有匹配到。

你可以把你的边框名给我发过来 我单独给你生成一个。

如果不着急,我就过几天更新一个自动识别边框的版本出来。

作者: 1621142761    时间: 2022-3-7 10:06
db-_- 发表于 2022-03-07 09:49:09
[quote]1621142761 发表于 2022-3-5 21:14
试了一下,HDL的不知为何报这种错误

知道什么原因了。

现在的版本会获取边框的坐标,然后计算每个元件到边框的相对值。我用的默认的边框“B SIZE PAGE”,在这里做了一个字符串匹配。
你那边用的不是这个名,所以没有匹配到。

你可以把你的边框名给我发过来 我单独给你生成一个。

如果不着急,我就过几天更新一个自动识别边框的版本出来。
[/quote]

楼主辛苦了,不着急用,待楼主更新,感谢楼主!

作者: hjseek    时间: 2022-3-7 10:56
我靠,你把我在写的Skill写完了,那我的还要不要继续写呢
作者: db-_-    时间: 2022-3-7 11:19
hjseek 发表于 2022-3-7 10:56
我靠,你把我在写的Skill写完了,那我的还要不要继续写呢

写吧。每个人思路不一样。而且后期优化、修复BUG或者更新功能,肯定还是改自己的最方便。

作者: leilei4908    时间: 2022-3-7 12:19
hjseek 发表于 2022-3-7 10:56
我靠,你把我在写的Skill写完了,那我的还要不要继续写呢

我也是啊,今年准备写的

作者: leilei4908    时间: 2022-3-7 12:24
axlDBControl('drcEnable nil)        ;On-line DRC Off
axlDBControl('dynamicFillMode nil)        ;Dynamic fill Disabled

axlDBCloak(cmd 'shape)

这三个功能不知道你是否有用上
能提高效率


作者: db-_-    时间: 2022-3-7 12:42
leilei4908 发表于 2022-3-7 12:24
axlDBControl('drcEnable nil)        ;On-line DRC Off
axlDBControl('dynamicFillMode nil)        ;Dynamic fill Disa ...

只用了第三个。前两个没有。谢谢哈。我测试测试。
据说关掉smooth,也会快一些。

作者: db-_-    时间: 2022-3-7 13:36
leilei4908 发表于 2022-3-7 12:24
axlDBControl('drcEnable nil)        ;On-line DRC Off
axlDBControl('dynamicFillMode nil)        ;Dynamic fill Disa ...

再次谢谢,加上后时间缩短了75%

作者: leilei4908    时间: 2022-3-7 13:52
db-_- 发表于 2022-3-7 13:36
再次谢谢,加上后时间缩短了75%

顺便向你请教下是否会 Capture 的 tcl/tk
有什么学习的建议么

作者: db-_-    时间: 2022-3-7 14:20
leilei4908 发表于 2022-3-7 13:52
顺便向你请教下是否会 Capture 的 tcl/tk
有什么学习的建议么

很抱歉,我没用过Capture =。=|
只用过HDL。

作者: cm_PCB    时间: 2022-3-7 17:46
厉害!!!!!!

作者: EDAstudent365    时间: 2022-3-7 17:57
Thanks
作者: gdm0121    时间: 2022-3-8 07:52
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
作者: hyper311    时间: 2022-3-8 10:19
谢谢分享
作者: ccwwbb2013    时间: 2022-3-8 19:52
cis和hdl都测试了,不行。
作者: db-_-    时间: 2022-3-8 21:11
1621142761 发表于 2022-3-5 21:14
试了一下,HDL的不知为何报这种错误

HDL问题已修正,请再帮忙测试,谢谢。避免重复下载可以留个邮箱。

作者: db-_-    时间: 2022-3-8 21:13
ccwwbb2013 发表于 2022-3-8 19:52
cis和hdl都测试了,不行。

请把HDL以及CIS控制台的错误打印发我。我看看是什么问题。

作者: 1621142761    时间: 2022-3-8 22:33
db-_- 发表于 2022-3-8 21:11
HDL问题已修正,请再帮忙测试,谢谢。避免重复下载可以留个邮箱。

1621142761@qq.com,楼主辛苦,刚刚已下载试了下,可以跑出来了,不过有的件会跑到框上去

作者: db-_-    时间: 2022-3-9 00:56
1621142761 发表于 2022-03-08 22:33:25
[quote]db-_- 发表于 2022-3-8 21:11
HDL问题已修正,请再帮忙测试,谢谢。避免重复下载可以留个邮箱。

1621142761@qq.com,楼主辛苦,刚刚已下载试了下,可以跑出来了,不过有的件会跑到框上去
[/quote]

可能是放器件放的离边框太近了。我后续加大留白余量试试。
还有可能是封装太大,就很有可能出去,但看图片不太像是这种。
还有可能是封装的原点不在中心,而在1脚上也有可能会出界。
如果方便能否发我一份器件全部放下来的空brd以及对应的exp文件,我可以调试一下看看如何改进。


作者: 1621142761    时间: 2022-3-9 08:53
db-_- 发表于 2022-03-09 00:56:08
[quote]1621142761 发表于 2022-03-08 22:33:25
[quote]db-_- 发表于 2022-3-8 21:11
HDL问题已修正,请再帮忙测试,谢谢。避免重复下载可以留个邮箱。

1621142761@qq.com,楼主辛苦,刚刚已下载试了下,可以跑出来了,不过有的件会跑到框上去
[/quote]

可能是放器件放的离边框太近了。我后续加大留白余量试试。
还有可能是封装太大,就很有可能出去,但看图片不太像是这种。
还有可能是封装的原点不在中心,而在1脚上也有可能会出界。
如果方便能否发我一份器件全部放下来的空brd以及对应的exp文件,我可以调试一下看看如何改进。

[/quote]

额,,真是不好意思,这是客户的图,不方便外发,望请见谅


作者: Newroomantics    时间: 2022-3-9 11:43
谢谢分享 很实用
作者: ivytang91    时间: 2022-3-9 13:31
有人测试过该skill确实可用吗?
作者: 枯木雨生花    时间: 2022-3-9 13:49
学习学习
作者: 敢敢    时间: 2022-3-9 14:29
有谁可以给不够积分的孩子发一份吗邮箱1820907504@qq.com
作者: mofise007    时间: 2022-3-9 15:25
qqq1111111
作者: Jeffrey6501    时间: 2022-3-9 16:34
Please select the EXP file!
*Error* range: argument #1 should be a number (type template = "n") - nil
作者: db-_-    时间: 2022-3-9 17:53
Jeffrey6501 发表于 2022-03-09 16:34:40
Please select the EXP file!
*Error* range: argument #1 should be a number (type template = "n") - nil


您好 能提供一下allegro版本,以及exp文件吗。只需要exp文件即可。如果是什么特定的操作才出问题,也可以描述一下。谢谢。



作者: db-_-    时间: 2022-3-9 17:54
本帖最后由 db-_- 于 2022-3-9 19:16 编辑
Jeffrey6501 发表于 2022-03-09 16:34:40
Please select the EXP file!
*Error* range: argument #1 should be a number (type template = "n") - nil

问题可能已修正,请用最新版再次尝试。


作者: db-_-    时间: 2022-3-9 19:16
Jeffrey6501 发表于 2022-3-9 16:34
Please select the EXP file!
*Error* range: argument #1 should be a number (type template = "n") - n ...

可能找到原因了。你应该是没有画outline吧。我更新了V1.6版本,为了避免重复下载,欢迎留下邮箱,可以发送最新版过去。

作者: ccwwbb2013    时间: 2022-3-9 21:16
db-_- 发表于 2022-3-8 21:13
请把HDL以及CIS控制台的错误打印发我。我看看是什么问题。

可以正常运行,就是元件窝在一起,互相叠在一起。我是win7,64位系统 cadence 16.6

作者: db-_-    时间: 2022-3-9 21:54
ccwwbb2013 发表于 2022-03-09 21:16:19
[quote]db-_- 发表于 2022-3-8 21:13
请把HDL以及CIS控制台的错误打印发我。我看看是什么问题。

可以正常运行,就是元件窝在一起,互相叠在一起。我是win7,64位系统 cadence 16.6
[/quote]

有图片吗


作者: barry_chen    时间: 2022-3-10 00:56
谢谢哈。              
作者: joe987086    时间: 2022-3-10 13:49
谢谢分享 !
下載過V1.5可否寄發V1.6
joe078@hotmail.com


作者: bashao    时间: 2022-3-10 13:53
哇哦   太巴适哦 效率是越来越高了
作者: barry_chen    时间: 2022-3-10 15:26
谢谢分享 很实用
作者: db-_-    时间: 2022-3-10 15:30
joe987086 发表于 2022-3-10 13:49

已发。请查收。

作者: joe987086    时间: 2022-3-10 15:54
joe987086 发表于 2022-3-10 13:49

謝謝~已收到...
作者: bingshuihuo    时间: 2022-3-10 23:25
这个不错
作者: Pkron    时间: 2022-3-11 09:48
有dsn的嗎?
作者: northji    时间: 2022-3-13 20:24
唉,没有权限下载
作者: northji    时间: 2022-3-13 20:25
唉,不够威望值,无法下载
作者: northji    时间: 2022-3-13 20:30
好东西,但无法下

作者: f126054488    时间: 2022-3-14 07:21
谢谢分享 !
下載過V1.5可否寄發V1.6
p.peng0609@gmail.com
作者: db-_-    时间: 2022-3-14 09:54
f126054488 发表于 2022-3-14 07:21
谢谢分享 !
下載過V1.5可否寄發V1.6

已发送。有问题或意见请反馈。

作者: db-_-    时间: 2022-3-14 13:58
Pkron 发表于 2022-3-11 09:48
有dsn的嗎?

DSN不就是Capture CIS?
作者: gonumc    时间: 2022-3-15 10:54
感谢分享感谢分享
作者: barry_chen    时间: 2022-3-15 12:01
谢谢      
作者: penny190    时间: 2022-3-17 13:29

感覺很給力 ~~  非常謝謝分享
作者: penny190    时间: 2022-3-17 14:29
本帖最后由 penny190 于 2022-3-17 14:55 编辑

不好意思,已經設定完畢allegro.ilinit,可是卻執行失敗 ~~  不知道問題在哪?麻煩各位大大可否指導一下
執行步驟如下:
1 . Orcad capture (DSN) 先netin to allegro
2 . 在Orcad capture中選DSN 右鍵 Reports \ Exprot Properties... 產生 ***.EXP 檔案
3 . 在Allegro中 畫出outline  
    (想請問是畫一個outline? 還是dsn中有幾頁就畫幾個outline? )
4 . 在allegro command 下輸入plcbysch
可是卻出現下列訊息 ~~ 不知何解?
E- *Error* parseString: argument #1 should be either a string or a symbol (type template = "SS") at line 8 of file "C:\SPB_Data\pcbenv\skill\place_by_sch.ile" - nil
後來發現先netin 的話不會出現選擇EXP的對話框
所以 後來 就選擇一個空版,畫了一個outlin,在command 輸入 plcbysch , 出現了選擇EXP的對話框 ~~ 選擇EXP檔案後 ~~ 還是失敗
出現了下列訊息
Command > plcbysch
Please select the EXP file!
E- *Error* parseString: argument #1 should be either a string or a symbol (type template = "SS") at line 8 of file "C:\SPB_Data\pcbenv\skill\place_by_sch.ile" - nil
Command >

01.jpg (13.37 KB, 下载次数: 23)

01.jpg

作者: db-_-    时间: 2022-3-17 15:31
penny190 发表于 2022-3-17 14:29
不好意思,已經設定完畢allegro.ilinit,可是卻執行失敗 ~~  不知道問題在哪?麻煩各位大大可否指導一下
...

方便发个EXP和BRD过来我看看吗。BRD需要把器件全部放下来。如果敏感,把走线布局全都删掉即可,但器件要全部放下来。
我的邮箱kittledeng@126.com ,如果文件发不出来,EXP拍个照片传上来也可以先看看。

作者: penny190    时间: 2022-3-18 09:02
db-_- 发表于 2022-3-17 15:31
方便发个EXP和BRD过来我看看吗。BRD需要把器件全部放下来。如果敏感,把走线布局全都删掉即可,但器件要 ...

以經寄到您的信箱了喔
麻煩您了

謝謝

作者: 136259909QY    时间: 2022-3-18 09:20
好东西,威望不够66666
作者: db-_-    时间: 2022-3-18 10:25
penny190 发表于 2022-3-18 09:02
以經寄到您的信箱了喔
麻煩您了

输出EXP时要采用默认配置,不要选择Export Occurrence Properties噢

作者: db-_-    时间: 2022-3-18 10:34
136259909QY 发表于 2022-3-18 09:20
好东西,威望不够66666

贡献挺多 威望竟然不够。多回帖就有了。

作者: jujuplay    时间: 2022-3-19 06:20
好东西,支持一下
作者: y1014730    时间: 2022-3-19 22:32
谢谢分享
作者: 380409165    时间: 2022-3-20 21:08
怎么啥都下载不了
作者: db-_-    时间: 2022-3-20 21:32
380409165 发表于 2022-3-20 21:08
怎么啥都下载不了

你贡献和威望值太少。

作者: marschiu2000    时间: 2022-3-21 10:19
感谢分享
作者: Eric0921    时间: 2022-3-21 20:14
感谢分享:):):):)
作者: candy_ren    时间: 2022-3-22 01:23
可以发一份到476234524@qq.com吗
作者: zhengy    时间: 2022-3-22 23:58
dddddddddddddddddddddddddddd
作者: zhengy    时间: 2022-3-23 00:00
dddddddddddddddd
作者: GT2046    时间: 2022-3-23 10:19
所有版本的都通用吗
作者: db-_-    时间: 2022-3-23 13:42
GT2046 发表于 2022-03-23 10:19:48
所有版本的都通用吗


只测试166和172的HDL和capture CIS


作者: candy_ren    时间: 2022-3-24 09:22
*Error* strlen: argument #1 should be a string (type template = "t") - nil
作者: db-_-    时间: 2022-3-24 10:23

v1.7更新:
更新找不到page的bug。

place_by_sch.rar (12.72 KB, 下载次数: 23)


作者: db-_-    时间: 2022-3-24 10:24
candy_ren 发表于 2022-3-24 09:22
*Error* strlen: argument #1 should be a string (type template = "t") - nil

用78楼的最新版本测试一下试试。

作者: candy_ren    时间: 2022-3-24 10:50
db-_- 发表于 2022-03-24 10:24:41
[quote]candy_ren 发表于 2022-3-24 09:22
*Error* strlen: argument #1 should be a string (type template = "t") - nil

用78楼的最新版本测试一下试试。
[/quote]

没有积分了,可以发一份到476234524@qq.com给我吗


作者: lvlj    时间: 2022-3-24 10:53
太厉害了,可惜贡献不够下不了
作者: candy_ren    时间: 2022-3-24 13:21
可以用了,感谢
作者: 136259909QY    时间: 2022-3-24 16:08
很好,谢谢分享
作者: purnedy    时间: 2022-3-26 23:31
非常感谢楼主的分享,楼主的有大爱呀,愿意分享新的skill
作者: wang7940q    时间: 2022-3-28 22:24
楼主  更新了没
作者: db-_-    时间: 2022-3-29 00:40
wang7940q 发表于 2022-03-28 22:24:15
楼主  更新了没


更新什么?


作者: wang7940q    时间: 2022-3-29 19:52
db-_- 发表于 2022-03-29 00:40:35
[quote]wang7940q 发表于 2022-03-28 22:24:15
楼主  更新了没


更新什么?

[/quote]

skill怎么安装呀  大佬

作者: db-_-    时间: 2022-3-29 20:06
wang7940q 发表于 2022-3-29 19:52
更新什么?

[/quote]

正文里面写了。附件解压到任意skill目录中。在allegro.ilinit中输入load("place_by_sch.ile" "db")

如果不知道什么是SKILL目录,就放到env同目录。
如果不知道allegro.ilinit在哪,一般是在env同目录。如果没有这个文件,就自己新建一个文件。
如果不知道env在哪?就去看环境变量,env在在$HOME/pcbenv下面。
如果不知道环境变量怎么看?那就点开我的电脑右键——属性——高级系统设置——环境变量。

如果还不知道,建议你去看别人安装SKILL的帖子吧。

作者: hayatokoc    时间: 2022-3-30 00:56
好,谢谢分享
作者: 再来一次cc    时间: 2022-3-30 10:18
学习学习嘻嘻嘻
作者: lvlj    时间: 2022-3-30 10:28
标题: 我这装不上,请大家指教下什么原因啊
我这装不上,请大家指教下什么原因啊

E- (setSkillPath"C:/Users/beiyong1/AppData/Roaming/SPB_Data/pcbenv/otherskill")E- SYNTAX ERROR found at line 1 column 75 of file allegro.ilinit
E- *Error* lineread/read: syntax error encountered in input
E- *Error* load: can't access file - "place_by_sch.ile"


作者: 3号仓库    时间: 2022-3-30 10:34
CIS报这个错,是什么原因,楼主帮看下
Command > plcbysch
E- *Error* strcat: argument #1 should be either a string or a symbol (type template = "S") - nil
作者: 3号仓库    时间: 2022-3-30 10:48
3号仓库 发表于 2022-3-30 10:34
CIS报这个错,是什么原因,楼主帮看下
Command > plcbysch
E- *Error* strcat: argument #1 should be ei ...

用的1.7的新版本,allegro17.2

作者: 3号仓库    时间: 2022-3-30 11:19
本帖最后由 3号仓库 于 2022-3-30 11:27 编辑
3号仓库 发表于 2022-3-30 10:48
用的1.7的新版本,allegro17.2

问题原因是没有把器件place。放下来后可以了。

新的问题:页数是对的,但器件不能按页数分开,还是place后的状态堆在一起。
Command > plcbysch
Please select the EXP file!
Pick 1st corner of the new window.
last pick:  -66.2900 -4.1400
Pick to complete the window.
last pick:  850.9040 747.2400
0 devices are placed!
W- 0 devices are not placed!

作者: db-_-    时间: 2022-3-30 14:14
lvlj 发表于 2022-3-30 10:28
我这装不上,请大家指教下什么原因啊

E- (setSkillPath"C:/Users/beiyong1/AppData/Roaming/SPB_Data/pc ...

这是你自身的allegro.ilinit文件语法有问题。
关于环境问题,建议去查看其他专门的帖子。

顺便说一下。你的allegro.ilinit文件setSkillPath"C:/Users/beiyong1/AppData/Roaming/这一行的setSkillPath和"C:/Users/bei中间要加一个空格。




作者: db-_-    时间: 2022-3-30 14:20
3号仓库 发表于 2022-3-30 11:19
问题原因是没有把器件place。放下来后可以了。

新的问题:页数是对的,但器件不能按页数分开,还是pla ...

你的器件都放下来了,当然不会重新放了。

SKILL程序只会处理还未放下来的器件(即PlacementList中的器件),见下图。

如果cadence自带的PlacementList是空的,表示你的器件已经都放下来了。想分页放的话,需要把symbol全都删掉。



作者: lvlj    时间: 2022-3-30 14:31
db-_- 发表于 2022-3-30 14:14
这是你自身的allegro.ilinit文件语法有问题。
关于环境问题,建议去查看其他专门的帖子。

好的,谢谢解答!

作者: lvlj    时间: 2022-3-30 14:57
lvlj 发表于 2022-3-30 14:31
好的,谢谢解答!

感谢,加了空格就可以了

作者: lvlj    时间: 2022-3-30 15:11
感谢楼主!挺好用的,节约了很多时间!
作者: 3号仓库    时间: 2022-3-30 17:15
db-_- 发表于 2022-3-30 14:20
你的器件都放下来了,当然不会重新放了。

SKILL程序只会处理还未放下来的器件(即PlacementList中的器 ...

嗯,可以了,感谢解答

作者: lvlj    时间: 2022-3-31 11:18
candy_ren 发表于 2022-3-24 13:21
可以用了,感谢

请问怎么解决的呢?我也碰到同样的问题





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2