EDA365电子工程师网

标题: [新手求教]Skill中移动器件的实现方法 [打印本页]

作者: Coolouba    时间: 2014-7-11 22:58
标题: [新手求教]Skill中移动器件的实现方法
        想做个简单的Skill,功能中包含了移动器件。查阅帮助文档和编程实践,已经可以获取某个DBID并且读出坐标属性。简单想法是把该DBID的xy属性修改,然后刷新DBID,既然求教,自然是没成功。看了下align.il的源码,作者是获取DBID后读取多个信息,然后删除原对象重画一个。有没有其他方法,各位大大指教。
作者: Coolouba    时间: 2014-7-12 19:54
貌似只能自娱自乐鸟
作者: Coolouba    时间: 2014-7-12 23:07
顶顶才健康。
实现了功能,很多细化的工作还可以做。
采用axlTransformObject就可以移动器件了,还有多种操作方式可以选择,镜像等等,具体可以参考帮助文档。

;移动器件  第一次选中symbol,第二次选中figure,symbol将移动到该figure  xy处。
;可考虑增加光标显示、提示等等。
axlClearSelSet()
axlSetFindFilter(
?enabled        (list "symbols" "text")
?onButtons (list "all"))

while(
        axlSelect(?prompt "Pick a symbol.")
        list_obj = axlGetSelSet()
        oldobj = car(list_obj)
       
        oldx = xCoord(oldobj->xy)
        oldy = yCoord(oldobj->xy)
        println(oldobj->xy)
        println(oldx)
        println(oldy)       
       
        axlSelect(?prompt "Pick a new figure.")
        list_obj = axlGetSelSet()
        newobj = car(list_obj)
       
        newx = xCoord(newobj->xy)
        newy = yCoord(newobj->xy)
        println(oldobj->xy)
        println(newx)
        println(newy)
        deltax = newx-oldx
        deltay = newy-oldy
        delta_point = deltax:deltay
        println(delta_point)
        axlTransformObject(oldobj ?move delta_point)
)
作者: Coolouba    时间: 2014-7-15 20:17
亚麻得  终于有个人来评论了。今天想做一个新的东西,加强版Swap pins,还没搞出来。




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