找回密码
 注册
关于网站域名变更的通知

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

查看数: 7625 | 评论数: 55 | 收藏 11
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-1-20 07:51

正文摘要:

本帖最后由 XYX365 于 2016-1-20 11:22 编辑 【分享源代碼】批量重命名PIN NUMBER/Rename Pin Number ; ;FileName:        fRPN.il ;Load:      & ...

回复

XYX365 发表于 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. )
复制代码



点评

楼主,帮忙整一下吧。感谢。  详情 回复 发表于 2016-1-20 17:26
楼主,我刚试了一下,好像不好覆盖,只能增加进去,楼主能辛苦一下,帮忙整理好后再更新一个出来给大家。我相信应该不只我一个人需要这个功能的,非常感谢!!  详情 回复 发表于 2016-1-20 15:06
XYX365 发表于 2016-1-20 10:29
jcheapon 发表于 2016-1-20 10:22
非常需要学习源码呢

程式基本架構都差不多,差在處理的問題,你可以比較我最近所發表的三個程式,就會了解

【分享源代碼】自动创建板边的Anti Etch
https://www.eda365.com/forum.php? ... =1&&_dsign=16273882

【分享源代碼】更改选定VIA的NET属性/更改VIA的网络
https://www.eda365.com/forum.php?mod=viewthread&tid=116956&extra=page%3D1&page=1&&_dsign=cd145709






点评

XYX365的代码,都是精品。太棒了。  发表于 2017-9-6 14:11
koncc 发表于 2018-11-27 14:24
感謝分享
jet2001 发表于 2016-12-28 09:36
謝謝XYX365  剛剛已COPY源代碼 很好用
zx2010 发表于 2016-12-27 23:38
非常感谢楼主
eagle20132013 发表于 2016-12-26 15:24
学习下技巧
s4709110 发表于 2016-12-22 14:28
Thank youThank you
EDALee 发表于 2016-12-21 22:02
感谢
pzt648485640 发表于 2016-12-19 06:39
我觉得应该加入pin number 自动剧中焊盘;侧边不进行自动旋转
mentorkk 发表于 2016-11-14 15:11
学习 了解
fanxinyun 发表于 2016-11-2 16:26
这个skill很给力,谢谢,收藏了!
fanxinyun 发表于 2016-11-2 15:55
太有用了,感谢分享!
fenghaili 发表于 2016-10-25 22:56
高质量代码!
hy20060614 发表于 2016-7-11 11:31
谢谢分享
wu55 发表于 2016-7-7 14:51
Thanks
hayatokoc 发表于 2016-7-3 19:04
感谢大師分享精品程式
关闭

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

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 19:54 , Processed in 0.187500 second(s), 32 queries , Gzip On.

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

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

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