EDA365电子论坛网

标题: 求Assign RefDes的skill [打印本页]

作者: longzhiming99    时间: 2015-12-3 14:59
标题: 求Assign RefDes的skill
一块LED显示板,板上有4096颗IC,位置固定不能变,所以采用先复制一次性放LED再导放网表再Assign RefDes,发现只能一个一个去点,那要点什么时候,我发现点一行都很累, 为什么不能拖选一行或一列呢?求能拖选一行和列的skill,谢谢,谢谢!


作者: XYX365    时间: 2015-12-3 16:42
請問你的零件編號是從左上角往右排多少個LED?

我的想法是已知零件放的位置,再使用skill寫一個迴路,並擺放好.

作者: longzhiming99    时间: 2015-12-3 19:21
XYX365 发表于 2015-12-3 16:42
請問你的零件編號是從左上角往右排多少個LED?

我的想法是已知零件放的位置,再使用skill寫一個迴路,並擺 ...

从左到右,从上到下,间距列5mm, 行2.5mm ;是32行X128列,谢谢

作者: XYX365    时间: 2015-12-4 08:29
本帖最后由 XYX365 于 2015-12-4 08:34 编辑
longzhiming99 发表于 2015-12-3 19:21
从左到右,从上到下,间距列5mm, 行2.5mm ;是32行X128列,谢谢

你試試看下列代碼

  1. ;Place LED symbols
  2. ;load("fPlaceLEDSymbols.il")
  3. ;Command>pls

  4. axlCmdRegister("pls" 'fnPlaceLEDSymbols)

  5. procedure(fnPlaceLEDSymbols()
  6.         prog(()
  7.                 nOrginX = 0.0
  8.                 nOrginY = 0.0
  9.                 xRow = 32
  10.                 xColumn = 128
  11.                 nRowSpace = 2.5
  12.                 nColumnSpace = 5.0
  13.                 lRefdes = nil
  14.                 ;lComps 存放所有沒有擺放的零件編號
  15.                 lComps = setof(x axlDBGetDesign()->components !(x->symbol))
  16.                 foreach(dComp lComps ;dComp = nth(0 lComps)
  17.                         lRefdes = cons(list(dComp->name dComp->package) lRefdes)
  18.                 )
  19.                 lRefdes = sortcar(lRefdes 'axlStrcmpAlpNum)
  20.                 xIndex = 1
  21.                 nSymX = nOrginX
  22.                 nSymY = nOrginY
  23.                 for(xY 0 xColumn-1
  24.                         nSymX = nOrginX
  25.                         nSymY =  nOrginY - (xY * nColumnSpace)
  26.                         for(xX 0 xRow-1
  27.                                 tRefdes = car(nthelem(xIndex lRefdes))
  28.                                 tPackage = cadr(nthelem(xIndex lRefdes))
  29.                                 nSymX = nSymX + nRowSpace
  30.                                 ;printf("tRefdes=%L,X=%L,Y=%L\n" tRefdes nSymX nSymY)
  31.                                 axlDBCreateSymbol(list(tPackage "package" tRefdes) nSymX:nSymY)
  32.                                 ;axlDBCreateSymbol(tRefdes nSymX:nSymY)
  33.                                 xIndex++
  34.                         )
  35.                 )
  36.         )
  37. )
复制代码



作者: longzhiming99    时间: 2015-12-4 09:20
XYX365 发表于 2015-12-4 08:29
你試試看下列代碼

感谢大大,我本身没学过skill代码,是存为.il文件然后加载,命令是pls对吧,我试试,摸索摸索,谢谢。

作者: XYX365    时间: 2015-12-4 09:28
longzhiming99 发表于 2015-12-4 09:20
感谢大大,我本身没学过skill代码,是存为.il文件然后加载,命令是pls对吧,我试试,摸索摸索,谢谢。

是存為fPlaceLEDSymbols.il檔案




作者: longzhiming99    时间: 2015-12-4 09:32
XYX365 发表于 2015-12-4 09:28
是存為fPlaceLEDSymbols.il檔案

哦,好的。我刚才存不了il,还是txt。我再试试

作者: longzhiming99    时间: 2015-12-4 09:50
XYX365 发表于 2015-12-4 08:29
你試試看下列代碼

感谢,已经加载成功,但还请大大再帮修改: 我习惯长方形的板是如下图所示,现在这个skill方向和我的板不一致



作者: longzhiming99    时间: 2015-12-4 09:56
XYX365 发表于 2015-12-4 08:29
你試試看下列代碼

还有,我需求的是 行128,这时序号是LED1~LED128, 下一行才再从LED129……这样。不知是否已经是这样,因为现在方向一致我有点看不出来

作者: longzhiming99    时间: 2015-12-4 09:58
XYX365 发表于 2015-12-4 08:29
你試試看下列代碼

如果你忙,我先试着自己改改,谢谢

作者: XYX365    时间: 2015-12-4 09:58
longzhiming99 发表于 2015-12-4 09:50
感谢,已经加载成功,但还请大大再帮修改: 我习惯长方形的板是如下图所示,现在这个skill方向和我的板不 ...

你只要修改第11和12行,的數字32和128互換就好


作者: longzhiming99    时间: 2015-12-4 10:00
XYX365 发表于 2015-12-4 09:58
你只要修改第11和12行,的數字32和128互換就好
  •                 xRow = 32  ---> 改為 128

  • 好的

    作者: longzhiming99    时间: 2015-12-4 12:28
    XYX365 发表于 2015-12-4 09:58
    你只要修改第11和12行,的數字32和128互換就好
  •                 xRow = 32  ---> 改為 128

  • 已经成功使用,感谢,比手工点好上4096倍

    作者: longzhiming99    时间: 2015-12-5 14:52
    XYX365 发表于 2015-12-4 09:28
    是存為fPlaceLEDSymbols.il檔案

    已使用,如果能设定自动摆在Bottom层还是top层就更完美了。不过摆完mirror一下也还算不是难事





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