找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
楼主: XYX365
打印 上一主题 下一主题

【分享源代碼】批量重命名PIN NUMBER/Rename Pin Number

  [复制链接]

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
16#
 楼主| 发表于 2016-1-20 12:42 | 只看该作者
redeveryday 发表于 2016-1-20 12:18
不固定的,下一个就是A1-2,A2-1,A3-2,以此类推。前面其实是和单个BGA命名差不多的。就是后面要区分一 ...

我還是有點搞不懂?

我目前的想法是忽略後綴字串,如圖
A1-1, A2-1, A3-1......


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点评

楼主,我按你的要求折腾一番搞定之后,发现在用的时候有问题哦。好像忽略部分去起作用,如图。  详情 回复 发表于 2016-1-20 17:52
就这个意思,你是加了一项忽略的部分是吧。这个可以有,很给了啊。楼主,谢谢啦!  详情 回复 发表于 2016-1-20 12:52

66

主题

910

帖子

3062

积分

五级会员(50)

Rank: 5

积分
3062
17#
发表于 2016-1-20 12:52 | 只看该作者
XYX365 发表于 2016-1-20 12:42
我還是有點搞不懂?

我目前的想法是忽略後綴字串,如圖

就这个意思,你是加了一项忽略的部分是吧。这个可以有,很给了啊。楼主,谢谢啦!

点评

再確任一下,是要我目前加入的忽略後綴字串功能嗎? 還是你有另外的想法?  详情 回复 发表于 2016-1-20 13:07

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
18#
 楼主| 发表于 2016-1-20 13:07 | 只看该作者
redeveryday 发表于 2016-1-20 12:52
就这个意思,你是加了一项忽略的部分是吧。这个可以有,很给了啊。楼主,谢谢啦!

再確任一下,是要我目前加入的忽略後綴字串功能嗎?

還是你有另外的想法?

点评

是的,另外我问一下,后面忽略部分如果改成下划线应该不受影响吧。  详情 回复 发表于 2016-1-20 13:18

66

主题

910

帖子

3062

积分

五级会员(50)

Rank: 5

积分
3062
19#
发表于 2016-1-20 13:18 | 只看该作者
XYX365 发表于 2016-1-20 13:07
再確任一下,是要我目前加入的忽略後綴字串功能嗎?

還是你有另外的想法?

是的,另外我问一下,后面忽略部分如果改成下划线应该不受影响吧。

点评

你只要修改下面兩個函數就可以, 請自行複製並覆蓋原來的程式碼  详情 回复 发表于 2016-1-20 13:51
例如: Pin Number: A1_1 Step: 1 Ignore Suffix: _1 這幾項都是你要自行輸入,其結果會變成 A1_1, A2_1, A2_1, A4_1........  详情 回复 发表于 2016-1-20 13:42

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
20#
 楼主| 发表于 2016-1-20 13:42 | 只看该作者
redeveryday 发表于 2016-1-20 13:18
是的,另外我问一下,后面忽略部分如果改成下划线应该不受影响吧。

例如:
Pin Number: A1_1
Step: 1
Ignore Suffix: _1

這幾項都是你要自行輸入,其結果會變成 A1_1, A2_1, A2_1, A4_1........

点评

明白了。谢谢啦。  详情 回复 发表于 2016-1-20 15:01

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
21#
 楼主| 发表于 2016-1-20 13:51 | 只看该作者
本帖最后由 XYX365 于 2016-1-20 13:53 编辑
redeveryday 发表于 2016-1-20 13:18
是的,另外我问一下,后面忽略部分如果改成下划线应该不受影响吧。

你只要修改下面兩個函數就可以,
請自行複製並覆蓋原來的程式碼



  1. procedure(fnRPNBuildForm()
  2.         let((tFile pPort frmRPN)
  3.                 drain()
  4.                 tFile = axlTempFile()
  5.                 pPort = outfile(tFile)
  6.                 fprintf(pPort "FILE_TYPE=FORM_DEFN VERSION=2\nFORM\nFIXED\nPORT 1 1\n\n")
  7.                 fprintf(pPort "HEADER \"\"\n")
  8.                 fprintf(pPort "TILE\n\n")
  9.                
  10.                 fprintf(pPort "TEXT\n")
  11.                 fprintf(pPort "FLOC 1 0\n")
  12.                 fprintf(pPort "INFO ProgName 1\n")
  13.                 fprintf(pPort "FSIZE 25 2\n")
  14.                 fprintf(pPort "OPTIONS BOLD\n")
  15.                 fprintf(pPort "ENDTEXT\n")
  16.                
  17.                 fprintf(pPort "GROUP \"Option\"\n")
  18.                 fprintf(pPort "GLOC 1 2\n")
  19.                 fprintf(pPort "GSIZE 25 11\n")
  20.                 fprintf(pPort "ENDGROUP\n")
  21.                                 
  22.                 fprintf(pPort "TEXT \"Pin Number\"\n")
  23.                 fprintf(pPort "TLOC 2 4\n")
  24.                 fprintf(pPort "OPTIONS BOLD\n")
  25.                 fprintf(pPort "ENDTEXT\n")
  26.                
  27.                 fprintf(pPort "FIELD pinNumber\n")
  28.                 fprintf(pPort "FLOC 13 4\n")
  29.                 fprintf(pPort "STRFILLIN 8 12\n")
  30.                 fprintf(pPort "ENDFIELD\n\n")
  31.                
  32.                 fprintf(pPort "TEXT \"Step\"\n")
  33.                 fprintf(pPort "TLOC 2 6\n")
  34.                 fprintf(pPort "OPTIONS BOLD\n")
  35.                 fprintf(pPort "ENDTEXT\n")
  36.                
  37.                 fprintf(pPort "FIELD step\n")
  38.                 fprintf(pPort "FLOC 13 6\n")
  39.                 fprintf(pPort "STRFILLIN 8 12\n")
  40.                 fprintf(pPort "ENDFIELD\n\n")
  41.                
  42.                 ;2016/01/20 新增
  43.                 fprintf(pPort "TEXT \"Ignore Suffix\"\n")
  44.                 fprintf(pPort "TLOC 2 8\n")
  45.                 fprintf(pPort "OPTIONS BOLD\n")
  46.                 fprintf(pPort "ENDTEXT\n")
  47.                 ;@@@@@ 2016/01/20 新增
  48.                 fprintf(pPort "FIELD ignoreSuffix\n")
  49.                 fprintf(pPort "FLOC 13 8\n")
  50.                 fprintf(pPort "STRFILLIN 8 12\n")
  51.                 fprintf(pPort "ENDFIELD\n\n")
  52.                
  53.                 fprintf(pPort "TEXT \"Text Blk\"\n")
  54.                 fprintf(pPort "TLOC 2 10\n")
  55.                 fprintf(pPort "OPTIONS BOLD\n")
  56.                 fprintf(pPort "ENDTEXT\n")
  57.                
  58.                 fprintf(pPort "FIELD textBlock\n")
  59.                 fprintf(pPort "FLOC 13 10\n")
  60.                 fprintf(pPort "INTSLIDEBAR 2 25\n")
  61.                 fprintf(pPort "MIN 1\n")
  62.                 fprintf(pPort "MAX %d\n" axlDBControl('maxTextBlock))
  63.                 fprintf(pPort "ENDFIELD\n")
  64.                
  65.                 fprintf(pPort "GROUP \"Direction\"\n")
  66.                 fprintf(pPort "GLOC 1 13\n")
  67.                 fprintf(pPort "GSIZE 25 16\n")
  68.                 fprintf(pPort "ENDGROUP\n")
  69.                
  70.                 fprintf(pPort "TEXT \"Horizontal\"\n")
  71.                 fprintf(pPort "TLOC 2 15\n")
  72.                 fprintf(pPort "OPTIONS BOLD\n")
  73.                 fprintf(pPort "ENDTEXT\n")
  74.                
  75.                 fprintf(pPort "FIELD leftToRight\n")
  76.                 fprintf(pPort "FLOC 4 17\n")
  77.                 fprintf(pPort "CHECKLIST \"Left To Right\" \"Dir\"\n")
  78.                 fprintf(pPort "ENDFIELD\n")
  79.                
  80.                 fprintf(pPort "FIELD rightToLeft\n")
  81.                 fprintf(pPort "FLOC 4 19\n")
  82.                 fprintf(pPort "CHECKLIST \"Right To Left\" \"Dir\"\n")
  83.                 fprintf(pPort "ENDFIELD\n")
  84.                
  85.                 fprintf(pPort "TEXT \"Vertical\"\n")
  86.                 fprintf(pPort "TLOC 2 21\n")
  87.                 fprintf(pPort "OPTIONS BOLD\n")
  88.                 fprintf(pPort "ENDTEXT\n")
  89.                
  90.                 fprintf(pPort "FIELD upToDown\n")
  91.                 fprintf(pPort "FLOC 4 23\n")
  92.                 fprintf(pPort "CHECKLIST \"Up To Down\" \"Dir\"\n")
  93.                 fprintf(pPort "ENDFIELD\n")
  94.                
  95.                 fprintf(pPort "FIELD downToUp\n")
  96.                 fprintf(pPort "FLOC 4 25\n")
  97.                 fprintf(pPort "CHECKLIST \"Down To Up\" \"Dir\"\n")
  98.                 fprintf(pPort "ENDFIELD\n")
  99.                
  100.                 fprintf(pPort "ENDTILE\n")
  101.                 fprintf(pPort "ENDFORM\n")
  102.                 close(pPort)
  103.                 axlControlRaise('options)
  104.                 frmRPN = axlMiniStatusLoad(gensym() tFile 'fnRPNCallback t)
  105.                 frmRPN
  106.         )
  107. )



  108. procedure(fnRPNProcess(frmRPN lSelects)
  109.         prog((tPinNumber tStep xStep tTextBlk lPinX lPinX lPNSplit tPNChar xPNNumber xNumber tNextPN lPNText
  110.                 tLastPN rPinText tIgnoreSuffix)
  111.                 ;取Option 上的設定值
  112.                 tPinNumber = axlFormGetField(frmRPN "pinNumber")
  113.                 tStep = axlFormGetField(frmRPN "step")
  114.                 xStep = atoi(tStep)
  115.                 tTextBlk = axlFormGetField(frmRPN "textBlock")
  116.                 tIgnoreSuffix = axlFormGetField(frmRPN "ignoreSuffix")
  117.                
  118.                 lPinX = mapcar(lambda((dObj) list(xCoord(dObj->xy) dObj)) lSelects)
  119.                 lPinY = mapcar(lambda((dObj) list(yCoord(dObj->xy) dObj)) lSelects)
  120.                 lPinX = sortcar(lPinX 'lessp)
  121.                 lPinY = sortcar(lPinY 'lessp)
  122.                 ;處裡Pin Number的英文字母和數字
  123.                
  124.                 ;忽略後綴字串
  125.                 rexCompile(strcat(tIgnoreSuffix "$"))
  126.                 tPinNumber = rexReplace(tPinNumber "" 0)
  127.                
  128.                 lPNSplit = fnRPNSplitCharInt(tPinNumber)
  129.                 unless(lPNSplit && fixp(cadr(lPNSplit))
  130.                         return(nil)
  131.                 )
  132.                 tPNChar = car(lPNSplit)
  133.                 xPNNumber = cadr(lPNSplit)
  134.                 xNumber = xPNNumber
  135.                 for(xCount xPNNumber ((xPNNumber + length(lSelects)) - 1)
  136.                         tNextPN = strcat(tPNChar sprintf(nil "%d%s" xNumber tIgnoreSuffix))
  137.                         lPNText = cons(tNextPN lPNText)
  138.                         xNumber = xNumber + xStep
  139.                         tLastPN = strcat(tPNChar sprintf(nil "%d%s" xNumber tIgnoreSuffix))
  140.                 )
  141.                 lPNText = reverse(lPNText)
  142.                 axlFormSetField(frmRPN "pinNumber" tLastPN)
  143.                 rPinText = make_axlTextOrientation(?textBlock tTextBlk ?rotation 0.0 ?mirrored nil ?justify "center")
  144.                 caseq(frmRPN->sDir
  145.                         (hl || hr
  146.                                 when(frmRPN->sDir == 'hr
  147.                                         lPNText = reverse(lPNText)
  148.                                 )
  149.                                 fnRPNRenameText(lPinX lPNText rPinText)
  150.                         )
  151.                         (vu || vd
  152.                                 when(frmRPN->sDir == 'vu
  153.                                         lPNText = reverse(lPNText)
  154.                                 )
  155.                                 fnRPNRenameText(lPinY lPNText rPinText)
  156.                         )
  157.                 )
  158.         )
  159. )
复制代码



102

主题

377

帖子

1158

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1158
22#
发表于 2016-1-20 14:56 | 只看该作者
学习学习!!!

66

主题

910

帖子

3062

积分

五级会员(50)

Rank: 5

积分
3062
23#
发表于 2016-1-20 15:01 | 只看该作者
XYX365 发表于 2016-1-20 13:42
例如:
Pin Number: A1_1
Step: 1

明白了。谢谢啦。

66

主题

910

帖子

3062

积分

五级会员(50)

Rank: 5

积分
3062
24#
发表于 2016-1-20 15:06 | 只看该作者
XYX365 发表于 2016-1-20 13:51
你只要修改下面兩個函數就可以,
請自行複製並覆蓋原來的程式碼

楼主,我刚试了一下,好像不好覆盖,只能增加进去,楼主能辛苦一下,帮忙整理好后再更新一个出来给大家。我相信应该不只我一个人需要这个功能的,非常感谢!!

29

主题

2646

帖子

2805

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2805
25#
发表于 2016-1-20 15:41 | 只看该作者
感谢分享,新年快乐

66

主题

910

帖子

3062

积分

五级会员(50)

Rank: 5

积分
3062
26#
发表于 2016-1-20 17:26 | 只看该作者
XYX365 发表于 2016-1-20 13:51
你只要修改下面兩個函數就可以,
請自行複製並覆蓋原來的程式碼

楼主,帮忙整一下吧。感谢。

点评

明天再更新檔案.  详情 回复 发表于 2016-1-20 17:51

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
27#
 楼主| 发表于 2016-1-20 17:51 | 只看该作者
redeveryday 发表于 2016-1-20 17:26
楼主,帮忙整一下吧。感谢。

明天再更新檔案.

66

主题

910

帖子

3062

积分

五级会员(50)

Rank: 5

积分
3062
28#
发表于 2016-1-20 17:52 | 只看该作者
XYX365 发表于 2016-1-20 12:42
我還是有點搞不懂?

我目前的想法是忽略後綴字串,如圖

楼主,我按你的要求折腾一番搞定之后,发现在用的时候有问题哦。好像忽略部分去起作用,如图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点评

忽略的部分在递增,而需要递增的A1部分反而不递增了。另外,我还发现用的时候点击DONE之后相应的对话框就没了。我需要在操作时需在执行以下命令。还有一点对话框中rename按钮能做上去吗。这样我需要在操作时只要在点  详情 回复 发表于 2016-1-20 17:58

66

主题

910

帖子

3062

积分

五级会员(50)

Rank: 5

积分
3062
29#
发表于 2016-1-20 17:58 | 只看该作者
redeveryday 发表于 2016-1-20 17:52
楼主,我按你的要求折腾一番搞定之后,发现在用的时候有问题哦。好像忽略部分去起作用,如图。

忽略的部分在递增,而需要递增的A1部分反而不递增了。另外,我还发现用的时候点击DONE之后相应的对话框就没了。我需要在操作时需在执行以下命令。还有一点对话框中rename按钮能做上去吗。这样我需要在操作时只要在点一下rename按钮就可以了。不知道这样好不好实现。哈哈。谢谢。

点评

我知道你的操作問題在哪裡, 1.忽略後綴字串是Pin Number: A1-11, 其後綴必須是-11,而你輸入-1當然是會有問題. 2.程式使用說明,我應該寫的很清楚,如下 ; 3.滑鼠右鍵功能選單: ; Done => 結  详情 回复 发表于 2016-1-21 07:30

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
30#
 楼主| 发表于 2016-1-21 07:30 | 只看该作者
redeveryday 发表于 2016-1-20 17:58
忽略的部分在递增,而需要递增的A1部分反而不递增了。另外,我还发现用的时候点击DONE之后相应的对话框就 ...

我知道你的操作問題在哪裡,
1.忽略後綴字串是Pin Number: A1-11, 其後綴必須是-11,而你輸入-1當然是會有問題.
2.程式使用說明,我應該寫的很清楚,如下
;        3.滑鼠右鍵功能選單:
;                Done => 結束程式,
;                Oops => 恢復上一次的動作,
;                Cancel => 取消程式.




还有一点对话框中rename按钮能做上去吗。这样我需要在操作时只要在点一下rename按钮就可以了。不知道这样好不好实现。
=> 操作方式是一每個人習慣不同,所以我才開放源代碼,讓大家能自行更改自己的使用習慣,


程式 rpn 一執行就是要更改pin名稱,再多加一個"rename"按鈕是多餘的.







附件是我整理好,其效果如圖





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-9-20 08:58 , Processed in 0.081933 second(s), 39 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表