找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

如何获得一个零件的坐标,是在TOP还是BOTTOm层,并移动到这个零件?

[复制链接]

3

主题

10

帖子

-1万

积分

未知游客(0)

积分
-12016
跳转到指定楼层
1#
发表于 2010-9-19 22:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x
如题,想编写一个skill,输入零件的名称时,能自动定位到这个零件!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

3

主题

33

帖子

-8952

积分

未知游客(0)

积分
-8952
2#
发表于 2010-9-20 11:06 | 只看该作者
你如果想要通过输入零件的名称就能定位到这个零件,Allegro自带的查找功能就有,你要获得一个零件的坐标,器件的xy属性就是,判断器件是在TOP还是BOTTOM层,如果器件的isMirrored属性为t,说明器件在Bottom层。。。

3

主题

10

帖子

-1万

积分

未知游客(0)

积分
-12016
3#
 楼主| 发表于 2010-9-20 17:52 | 只看该作者
谢谢oday,我知道了坐标,如何移动到这颗零件的位置?我用axlZoomToDbid是可以,但是会放的很大,比如zoomin一颗电阻,会将电阻放大到整个屏幕,我想要的效果是,不改屏幕的放大,缩小,只是将零件定位到屏幕的中心,就像show elements再点零件的坐标得效果一样

20

主题

158

帖子

1422

积分

四级会员(40)

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

积分
1422
4#
发表于 2010-9-21 08:53 | 只看该作者
比如元件的坐标是:4310.00 3195.00
axlShell("zoom center 4310.00 3195.00")

3

主题

33

帖子

-8952

积分

未知游客(0)

积分
-8952
5#
发表于 2010-9-21 13:55 | 只看该作者
比如pop_xy就是你取得的器件坐标,那么通过axlWindowBoxSet重新设置窗口的box,就可以将窗口定位到这个器件                       
                        pop_x = xCoord( pop_xy)                                                                                       
                        pop_y = yCoord( pop_xy)                                                                       
                                llx = pop_x - 500                                                                               
                                lly = pop_y - 400
                                urx = pop_x + 500
                                ury = pop_y + 400
                                window_bbox = list( llx:lly urx:ury)
                                axlWindowBoxSet( window_bbox)

3

主题

10

帖子

-1万

积分

未知游客(0)

积分
-12016
6#
 楼主| 发表于 2010-9-21 15:31 | 只看该作者
回复 5# oday

非常感谢!下面的是我查找symbol的代码.最开始的时候总是不知道各种dbid对应的属性有哪些,还有没弄清楚axlSelectByName函数的返回值是什么,结果

怎样都得不到symbo的属性,后来仔细看了algroskill.pdf才知道.
我最开始的时候是这样用的:
SymbolId= axlSelectByName("REFDES"  sSymbolName)
然后判断SymbolId->isMirrored 是否为t,结果总是nil,后来才发现axlSelectByName返回的是list,要用car函数取出里面的dbid才可以.

之后我会再修改zoom部分的代码.
  procedure( ex_FindSymbol(bHighMode sSymbolName)

if(sSymbolName == "" then

printf("Please type the symbol name")

return(nil))



SymbolList = axlSelectByName("REFDES"  sSymbolName)

SymbolId = car(SymbolList)



if(SymbolId != nil then

if(SymbolId->isMirrored then

ex_layer_bot()

else

ex_layer_top())



printf("Find Symbol %s\n" sSymbolName)

axlZoomToDbid(SymbolId  t)

axlHighlightObject(SymbolId bHighMode)

else

printf("%s is not found" sSymbolName)

);if

);procedure  

defun( ex_layer_top ()
    ;layerlist=axlGetParam("paramLayerGroup:etch")->groupMembers

;CurrentSel = axlGetSelSet()



axlVisibleDesign(nil)



axlVisibleLayer("board geometry/outline" t)

axlVisibleLayer("package keepin/all" t)

axlVisibleLayer("package geometry/silkscreen_top" t)



sTemp = strcat("pin/" axlConductorTopLayer())

axlVisibleLayer(sTemp t)

sTemp = strcat("etch/" axlConductorTopLayer())

axlVisibleLayer(sTemp t)

sTemp = strcat("via class/" axlConductorTopLayer())

axlVisibleLayer(sTemp t)

axlVisibleUpdate(t)



;axlHighlightObject(CurrentSel nil)
)

defun( ex_layer_bot ()


axlVisibleDesign(nil)



axlVisibleLayer("board geometry/outline" t)

axlVisibleLayer("package keepin/all" t)

axlVisibleLayer("package geometry/silkscreen_bottom" t)



sTemp = strcat("pin/" axlConductorBottomLayer())

axlVisibleLayer(sTemp t)

sTemp = strcat("etch/" axlConductorBottomLayer())

axlVisibleLayer(sTemp t)

sTemp = strcat("via class/" axlConductorBottomLayer())

axlVisibleLayer(sTemp t)



axlVisibleUpdate(t)
)


贴一下symbol的所有属性

Table 2-17 Symbol Attributes
Attribute Name   Type             Description

children            l_dbid/nil         List of figures other than pins making up symbol
component       dbid                Component owner of symbol
definition          dbid                Symbol definition
isMirrored         t/nil                t = symbol is mirrored
mirrorType       string             Type of mirror.
name               string             Symbol name
objType           string             Type of object, in this case "symbol"
parent             dbid               Design (no other parent possible for symbols)
pins                l_dbid/nil         List of pins
refdes             string/nil         Reference designator
rotation          float Symbol     rotation

0

主题

14

帖子

3

积分

初级新手(9)

Rank: 1

积分
3
7#
发表于 2012-4-6 14:00 | 只看该作者
谢谢楼主分享哦,加油啊 bjbdf466zgl
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-25 01:56 , Processed in 0.056298 second(s), 33 queries , Gzip On.

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

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

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