EDA365电子工程师网

标题: [求助]请问怎么获取到零件的BodyCenter? [打印本页]

作者: 361553894    时间: 2015-10-22 16:08
标题: [求助]请问怎么获取到零件的BodyCenter?
使用Move指令的时候可以选择Sym Origin、Body Center等
在skill中怎么获取到symbol的BodyCenter呢?
center = symdbid->xy   ;这种是获取Sym Origin
center = BoxCenter(symdbid->bBox)   ;BoxCenter是我自己写的,用来获取bBox的中心
这两种都不对,有什么方法可以获取到Body Center么???

作者: chrysalis    时间: 2015-10-22 16:13
axlDBAltOrigin
作者: 361553894    时间: 2015-10-22 16:18
本帖最后由 361553894 于 2015-10-22 16:41 编辑
chrysalis 发表于 2015-10-22 16:13
axlDBAltOrigin


非常感谢
另外一个问题,为什么使用
center = axlDBAltOrigin('center sym)
axlShell(sprintf(nil "zoom center %n %n" car(center) cadr(center)))
之后,sym不能高亮了??
是不是因为使用axlShell(sprintf(nil "zoom center %n %n" car(center) cadr(center)))
这个指令之后,dbid被removed了??
实在想不通为什么把
axlZoomToDbid(sym nil)
改成
center = axlDBAltOrigin('center sym)
axlShell(sprintf(nil "zoom center %n %n" car(center) cadr(center)))
后就无法高亮零件了,这个情况还只针对有refdes的零件。。。
有什么方法能让屏幕中心移动到零件中心并且不会取消高亮么?



作者: 361553894    时间: 2015-10-22 17:00
chrysalis 发表于 2015-10-22 16:13
axlDBAltOrigin

好吧。。研究出来了。。。
sym = car(axlSelectByName("REFDES" curValue))
center = axlDBAltOrigin('center sym)
axlShell(sprintf(nil "zoom center %n %n" car(XY) cadr(XY)))
第一句和第三句相互作用下,生成的symdbid由于axlShell被removed,所以之前高亮的sym被取消高亮,
并且axlHighlightObject(sym)由于dbid被removed,所以不能继续高亮

作者: chrysalis    时间: 2015-10-22 17:09
361553894 发表于 2015-10-22 17:00
好吧。。研究出来了。。。
sym = car(axlSelectByName("REFDES" curValue))
center = axlDBAltOrigin(' ...

你有试过axlZoomToDbid吗?我之前有个skill也需要把窗口切到指定的object,但是我没有用这个函数而是用了更麻烦的方法,而我已经忘了当时为什么要这么处理了。

作者: 361553894    时间: 2015-10-22 17:34
chrysalis 发表于 2015-10-22 17:09
你有试过axlZoomToDbid吗?我之前有个skill也需要把窗口切到指定的object,但是我没有用这个函数而是用了 ...

axlZoomToDBid我试过,它会包括零件所有的内容,所以如果文字离零件很远的话,放大倍数会很小,而且中心偏离比较严重
作者: Projectaker    时间: 2016-1-5 13:39
学习了~




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2