Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 33636|回复: 36

[原创] 自动导出封装焊盘、DEVICE、SYMBOL的SKILL

[复制链接]
发表于 2013-11-13 22:58:31 | 显示全部楼层 |阅读模式
当在allegro中调入第三方网表的时候,需要指定器件的封装、焊盘、device。方可调入到PCB EDITOR中。
该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。
导出方法:
执行命令:create_device
可导出当前器件封装的焊盘、DEVICE、SYMBOL

执行命令:create_device_batch
可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL

以下是SKILL源码,仅供各位参考:
  1. /********************************************************/
  2. /*               Title :  Create Device                        */
  3. /*     Execute Command :  create_device                 */
  4. /*                        create_device_batch           */
  5. /*              Author :  VivienLuo                     */
  6. /*       Creation Date :  2013-07-16                    */
  7. /*              Update :                                */
  8. /********************************************************/

  9. axlCmdRegister("create_device" 'add_value_device ?cmdType "general")
  10. axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")

  11. defun( create_device_batch ()
  12.         libFiles = getDirFiles("./")
  13.         draFiles = nil
  14.         foreach(libFile libFiles
  15.                 when(car(last(parseString(libFile ".")))== "dra"
  16.                         draFiles = cons(libFile draFiles)
  17.                 )
  18.         )
  19.         foreach(draFile draFiles
  20.                 axlOpenDesign(?design draFile ?mode "wf")
  21.                 add_value_device()
  22.         );end foreach       
  23.         axlShell("unset noconfirm")
  24. );end defun

  25. defun( add_value_device ()
  26.         axlShell("set noconfirm")
  27.         designType = axlDesignType(t)
  28.         case(designType
  29.                 ("PACKAGE"
  30.                         crete_device_run(strcat(axlCurrentDesign() ".psm"))
  31.                         axlPadstackToDisk()
  32.                 )
  33.                 ("MECHANICAL"
  34.                         crete_device_run(strcat(axlCurrentDesign() ".bsm"))
  35.                 )
  36.                 ("FORMAT"
  37.                         crete_device_run(strcat(axlCurrentDesign() ".osm"))
  38.                 )
  39.                 ("SHAPE"
  40.                         crete_device_run(strcat(axlCurrentDesign() ".ssm"))
  41.                 )
  42.                 ("FLASH"
  43.                         crete_device_run(strcat(axlCurrentDesign() ".fsm"))
  44.                 )
  45.         )               
  46.         axlShell("replay "./create_device.scr"")               
  47.         axlSaveDesign(?design axlCurrentDesign())       
  48.         axlShell("unset noconfirm")
  49. );end defun

  50. defun( crete_device_run (fileName)
  51.         saveScript = outfile("./create_device.scr")
  52.         fprintf(saveScript "scriptmode +i +n\n")
  53.         fprintf(saveScript "version 15.51\n")
  54.         fprintf(saveScript "setwindow pcb\n")
  55.         fprintf(saveScript "trapsize 666\n")
  56.         fprintf(saveScript "create device\n")
  57.         fprintf(saveScript "setwindow form.crdevice\n")
  58.         fprintf(saveScript "FORM crdevice done\n")
  59.         fprintf(saveScript "create symbol\n")
  60.         fprintf(saveScript "fillin %s\n" fileName)
  61.         close(saveScript)
  62. );end defun

复制代码
create_device.il (2.01 KB, 下载次数: 275)
发表于 2016-8-3 10:02:34 | 显示全部楼层
chuchiwolong 发表于 2014-6-27 16:00
请问这个错误怎么解决?

E- Cannot open script file; 'E:/pcb01/create_device.scr' does not exist.

同问            
发表于 2013-11-22 13:49:57 | 显示全部楼层
为啥我的找不到create_device命令,座求大虾指点谢谢
发表于 2013-11-22 16:04:32 | 显示全部楼层
allegro自带的好像也可以
发表于 2013-11-22 16:39:24 | 显示全部楼层
allegro自带的不能单独到处一个封装
 楼主| 发表于 2013-11-22 18:36:39 | 显示全部楼层
375259768 发表于 2013-11-22 16:04
allegro自带的好像也可以

是不是因为你没加载成功的原因?
 楼主| 发表于 2013-11-22 18:37:14 | 显示全部楼层
375259768 发表于 2013-11-22 16:04
allegro自带的好像也可以

allegro 本身就可以创建DEVICE,这个功能只是方便一次性创建出来。不用手动去创建。
发表于 2014-4-13 17:46:42 | 显示全部楼层
不错、感谢分享···
发表于 2014-6-27 16:00:49 | 显示全部楼层
请问这个错误怎么解决?

E- Cannot open script file; 'E:/pcb01/create_device.scr' does not exist.
Performing a partial database check before saving.
Writing database to disk.
发表于 2015-12-23 14:04:17 | 显示全部楼层
allegro自带的好像也可以
发表于 2016-1-8 23:18:50 | 显示全部楼层
很好用,比我公司更好用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号 )

GMT+8, 2024-11-23 17:05 , Processed in 0.155933 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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