找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 703|回复: 15
打印 上一主题 下一主题

高手帮忙写个简单的Skill,或者教下我也行,谢谢啦!

[复制链接]

35

主题

356

帖子

1958

积分

四级会员(40)

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

积分
1958
跳转到指定楼层
1#
发表于 2015-1-21 17:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10E币
  大神你好,我需要将allegro里的位号第一个数字前加一个字符(如R123,FB123 修改后:R-123,FB-123),其它字符都不变,然后可以反标到原理图,不知道是否能实现,在这先谢谢啦! 如果可以愿意出RMB。

最佳答案

查看完整内容

临时写了一个,请下载附件中的Skill使用,执行命令为EDA365_APP001,另外Rename的同时会在当前目录下生成一个file.swp文件,用于在OrCAD中进行反标,PS:OrCAD下未测试。欢迎反馈意见。 代码如下:
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏3 支持!支持! 反对!反对!

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

2#
发表于 2015-1-21 17:03 | 只看该作者
临时写了一个,请下载附件中的Skill使用,执行命令为EDA365_APP001,另外Rename的同时会在当前目录下生成一个file.swp文件,用于在OrCAD中进行反标,PS:OrCAD下未测试。欢迎反馈意见。
代码如下:
  1. ;*********************************************************************
  2. ;Function:                                EDA365_APP001
  3. ;Description:                            Rename Refdes
  4. ;Company:                              EDA365.COM
  5. ;E-Mail:                                     myeda@qq.com
  6. ;Release Date :                         2015-01-22
  7. ;*********************************************************************
  8. axlCmdRegister( "EDA365_APP001" 'EDA365_APP001 ?cmdType "interactive");general/interactive
  9. defun( EDA365_APP001 ()
  10. prog(()
  11.         sFile = "./File.swp"
  12.         pFile = axlDMOpenFile("TEMP" sFile "w")
  13.         rexCompile("\\([a-zA-Z]+\\)\\([0-9]+\\)")
  14.         fprintf(pFile ".Section1 GateAndPinSwap\n")
  15.         foreach(dbComp axlDBGetDesign()->components
  16.                 sRefDes = dbComp->name
  17.                 when(rexExecute(sRefDes) && (sNewRefDes = rexSubstitute("\\1-\\2")) && axlRenameRefdes(sRefDes sNewRefDes)
  18.                         fprintf(pFile "CHANGEREF %s %s\n" sRefDes sNewRefDes)
  19.                 )
  20.         )
  21.         fprintf(pFile ".End\n")
  22.         axlDMClose(pFile)
  23.         axlUIWExpose(axlUIViewFileCreate(sFile "Swap File" nil list(56 32)))
  24. )
  25. )
复制代码


本帖子中包含更多资源

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

x

点评

有个问题想请教一下版主大人,我写了一个修改位号的程序,分别在板A和B中使用,A和B是相同的,只是在不同的时间修改了原理图后导出的不同版本,几乎没什么区别,但是程序的运行时间相差巨大。基本上A板每秒可以修改  详情 回复 发表于 2015-8-22 12:00

评分

参与人数 1威望 +2 收起 理由
yangmingen + 2 很给力!

查看全部评分

谁画出这天地 又画下我和你

4

主题

157

帖子

5779

积分

五级会员(50)

Rank: 5

积分
5779
3#
发表于 2015-1-21 17:15 | 只看该作者
用正则表达式分离出字符和数字,然后再加上你需要的字符就可以了

35

主题

356

帖子

1958

积分

四级会员(40)

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

积分
1958
4#
 楼主| 发表于 2015-1-21 19:12 | 只看该作者

RE: 高手帮忙写个简单的Skill,或者教下我也行,谢谢啦!

hoo 发表于 2015-1-21 17:15
用正则表达式分离出字符和数字,然后再加上你需要的字符就可以了

你好,还是不会,能帮我写下吗?谢谢啦

4

主题

157

帖子

5779

积分

五级会员(50)

Rank: 5

积分
5779
5#
发表于 2015-1-22 09:42 | 只看该作者
本帖最后由 hoo 于 2015-1-22 09:45 编辑

关键函数:rexCompile rexExecute rexSubstitute,会一点编程,有了关键的思路和函数,多试一试肯定可以的。

评分

参与人数 1威望 +2 收起 理由
yangmingen + 2 支持!

查看全部评分

1

主题

33

帖子

372

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
372
6#
发表于 2015-1-22 14:01 | 只看该作者
之前看过附件里的修改位号的办法,还是蛮好用的,至于批量修改,你可以先用excel实现替换,最后按照pdf的步骤去实现。至于skill么我也不会写~~
有人写了的话求分享

本帖子中包含更多资源

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

x

35

主题

356

帖子

1958

积分

四级会员(40)

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

积分
1958
7#
 楼主| 发表于 2015-1-22 14:27 | 只看该作者
hoo 发表于 2015-1-22 09:42
关键函数:rexCompile rexExecute rexSubstitute,会一点编程,有了关键的思路和函数,多试一试肯定可以的 ...

谢谢啦,还是比较难实现的

68

主题

613

帖子

4089

积分

五级会员(50)

Rank: 5

积分
4089
8#
发表于 2015-1-22 15:56 | 只看该作者
不需要和原理图中的位号保持一致么?
無極生太極 太極生兩儀 兩儀生四象 四象生八卦 八卦生六十四卦 六十四卦生宇宙萬物

68

主题

613

帖子

4089

积分

五级会员(50)

Rank: 5

积分
4089
9#
发表于 2015-1-22 15:57 | 只看该作者
以后不方便检查啊,如果这是必须的操作的话,直接在原理图里面处理好不就行了么?
再说了,如果添加了这么一个符号,那么在调整丝印的时候,这个不是特别必要的字符就会额外占用一个字节,增加长度,反而会增加调整丝印的难度。
無極生太極 太極生兩儀 兩儀生四象 四象生八卦 八卦生六十四卦 六十四卦生宇宙萬物

35

主题

356

帖子

1958

积分

四级会员(40)

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

积分
1958
10#
 楼主| 发表于 2015-1-22 16:51 | 只看该作者
霹雳风雷 发表于 2015-1-22 15:57
以后不方便检查啊,如果这是必须的操作的话,直接在原理图里面处理好不就行了么?
再说了,如果添加了这么 ...

对我来说是有帮助的,加好后需要反标到原理图里去。

35

主题

356

帖子

1958

积分

四级会员(40)

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

积分
1958
11#
 楼主| 发表于 2015-1-23 17:57 | 只看该作者
deargds 发表于 2015-1-21 17:03
临时写了一个,请下载附件中的Skill使用,执行命令为EDA365_APP001,另外Rename的同时会在当前目录下生成一 ...

版主,非常感谢,太好用啦 !   牛!!!

41

主题

234

帖子

1569

积分

四级会员(40)

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

积分
1569
12#
发表于 2015-1-27 21:43 | 只看该作者
怎样反标到原理图中去呢,求指导?

点评

通过OrCAD中的Back annotate来进行反标  详情 回复 发表于 2015-1-28 13:00

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

13#
发表于 2015-1-28 13:00 | 只看该作者
墨客的秋天 发表于 2015-1-27 21:43
怎样反标到原理图中去呢,求指导?

通过OrCAD中的Back annotate来进行反标
谁画出这天地 又画下我和你

1

主题

209

帖子

173

积分

二级会员(20)

Rank: 2Rank: 2

积分
173
14#
发表于 2015-8-20 15:21 | 只看该作者
好东西!谢谢分享!

23

主题

173

帖子

1599

积分

四级会员(40)

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

积分
1599
15#
发表于 2015-8-22 12:00 | 只看该作者
本帖最后由 scc_yangy 于 2015-8-22 12:05 编辑
deargds 发表于 2015-1-21 17:03
临时写了一个,请下载附件中的Skill使用,执行命令为EDA365_APP001,另外Rename的同时会在当前目录下生成一 ...

有个问题想请教一下版主大人,我写了一个修改位号的程序,分别在板A和B中使用,A和B是相同的,只是在不同的时间修改了原理图后导出的不同版本,几乎没什么区别,但是程序的运行时间相差巨大。基本上A板每秒可以修改几十上百个器件,而B板只能修改几个;如果把B板中的器件完全删除,再运行这个程序,运行时间就会很快,或者把B板中所有器件的位号重排以后换个前缀再重排一次,运行也很快。始终想不明白为什么会出现这种情况,请版主指点一下,非常感谢。下面附上程序代码:
  1. axlCmdRegister("test",'RenameRef ?cmdType "general")
  2. (defun RenameRef ()
  3. (prog () allComp = axlDBGetDesign()->components
  4.             n_comp = length(allComp)
  5.             i = 1
  6.             foreach( comp allComp
  7.                         refdes = sprintf(nil "SYM%d" i)
  8.                         axlRenameRefdes( comp refdes)
  9.                         axlUIWPrint(nil "%d / %d complete..." i n_comp)
  10.                         i++                                 
  11.             );foreach                 
  12. );prog
  13. );defun
复制代码




点评

这个可能需要A B板的文件来做调试分析  详情 回复 发表于 2015-8-22 13:50
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-11 03:13 , Processed in 0.076646 second(s), 42 queries , Gzip On.

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

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

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