EDA365电子论坛网

标题: 请教下,place一个库文件里的某个器件是用那个函数? [打印本页]

作者: yneda    时间: 2012-11-22 11:35
标题: 请教下,place一个库文件里的某个器件是用那个函数?
        我想通过skill在PCB上放置一个器件,这个器件不是通过原理图导进来的,是库里面的某个器件,目前的做法是通过宏,但屏幕会显示比较多的信息,想做到通过某个函数,输入器件的封装名,然后只需点下屏幕即可完成放置,不知道Allegro有没有这样的函数,希望知道的人指点下,谢谢!
作者: betamelody    时间: 2012-11-22 11:43
本帖最后由 betamelody 于 2012-11-22 11:45 编辑

从db中放置零件参考axlDBCreateSymbol
放置只需axlEnterPoint取点即可

如果需要预览放置效果需要悬在鼠标上
器件悬在鼠标上是一个比较复杂的过程
参考函数:
axlClearDynamics
axlEraseObject
axlDynamicsObject
axlAddSimpleMoveDynamics
axlTransformObject
作者: yneda    时间: 2012-11-27 15:55
版主好!
我用这个函数:axlDBCreateSymbol,
参考帮助文件,代码是这样的:
axlDBCreateSymbol(list("A4" "package"), 0:0)
错误提示:
E-(SPMHA1-161):Cannot open the design database file... run standalone dboctor on the file
换成:
axlDBCreateSymbol(list("0402" "package"), 0:0)
却能place进去。
这两个唯一的区别是,一个是Mechanical symbol ,一个是package symbol
其中Mechanical symbol 的库路径排在package symbol后面
不知道为何?

作者: betamelody    时间: 2012-11-27 17:12
直接axlDBCreateSymbol("A4" 0:0) 就好,如果是零件档案损坏或者找不到路径,那么allegro的Place->Manually也无法place出该零件
作者: wxmcumtb    时间: 2012-11-29 10:47
学习了。。。。
作者: qianfengsjtu    时间: 2012-11-29 13:08
betamelody 发表于 2012-11-22 11:43
从db中放置零件参考axlDBCreateSymbol
放置只需axlEnterPoint取点即可

这些axl函数就是派这个用场的!!
我始终认为思路比下载重要!
作者: qianfengsjtu    时间: 2012-11-29 13:24
虽然我没有写过这种类型的skill
但是本质上可以用script完成的都可以用skill完成
录下一个scirpt文件
把其中关键的部分,比如器件名,用变量代替
用form提取变量,用fprintf写下每一行进一个.scr
然后replay
最后删掉
表面上代码会比较长
但实际上还好
不是很复杂
有几个要注意的
第一个是scriptmode要用
直接加在script文件的头部
可以去掉满屏幕杂七杂八的景象,比如+invisible
也可以去掉声音,比如+beep
具体可以查help
第二是如果代码中需要调用script
则命令注册函数axlCmdRegister需声明类型参数cmdType为general

作者: jackleipm    时间: 2019-6-25 11:45
我用了axlDBCreateSymbol方法,也是提示E-(SPMHA1-161):Cannot open the design database file... run standalone dboctor on the file,不知道是什么原因?




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