EDA365电子工程师网

标题: 为什么axlDBFindByName和axlSelectByName获取到的不是同一个? [打印本页]

作者: 361553894    时间: 2015-10-22 09:13
标题: 为什么axlDBFindByName和axlSelectByName获取到的不是同一个?
symbol = axlDBFindByName('refdes symName)
symbol = car(axlSelectByName("REFDES" symName))
这两种获取到的零件竟然不是同一个??
有谁知道是为什么么?

作者: betamelody    时间: 2015-10-22 09:21
axlDBFindByName 返回的是 "component" 对象
axlSelectByName 返回 symbol 对象  所以肯定是不一样的

作者: 361553894    时间: 2015-10-22 09:26
本帖最后由 361553894 于 2015-10-22 09:58 编辑
betamelody 发表于 2015-10-22 09:21
axlDBFindByName 返回的是 "component" 对象
axlSelectByName 返回 symbol 对象  所以肯定是不一样的


非常感谢


作者: betamelody    时间: 2015-10-22 09:40
本帖最后由 betamelody 于 2015-10-22 09:45 编辑
361553894 发表于 2015-10-22 09:26
非常感谢
顺便问下,如果我对板子上的零件有修改,比如删除了部分丝印,我怎么获取到原始的零件?能不 ...

你需要的应该是symbol对象 用selectbyname,代码的意图我没有看懂

作者: 361553894    时间: 2015-10-22 09:47
betamelody 发表于 2015-10-22 09:40
你需要的应该是symbol对象 用selectbyname

之前那个问题已经解决了
现在想问的是怎么快速获取到没有修改过的原始零件
我要判断板子上的某个零件是否缺失丝印
肯定要当前的零件和原始的零件进行比对,但是目前我用的方法效率很低

作者: 361553894    时间: 2015-10-22 09:56
betamelody 发表于 2015-10-22 09:40
你需要的应该是symbol对象 用selectbyname,代码的意图我没有看懂

意图是获取到原始零件总的丝印段数,然后现有的跟这个总段数相比,判断是不是有丝印缺失
作者: 361553894    时间: 2015-10-22 10:01
betamelody 发表于 2015-10-22 09:40
你需要的应该是symbol对象 用selectbyname,代码的意图我没有看懂

这里是另外一个问题了
如果我对板子上的零件有修改,比如删除了部分丝印,我怎么获取到原始的零件?能不能用axlDBFindByName??
new = axlDBCreateSymbol( list(symName), 0:0)
children = car(new)->children
nSegs = 0
foreach(child children
if(child->objType == "path" then
    nSegs = nSegs + child->nSegs
)
axlDeleteObject(car(new))
我原本的方法是这个,效率特别低
这段代码是获取某一封装新零件的丝印总段数,之后还有判断板子上的同封装零件丝印总段数与它相比,判断是不是有丝印缺失


作者: betamelody    时间: 2015-10-22 10:05
  1. x = car(axlSelectByName("REFDES" "U1"))
复制代码

将x->definition->children 和 x->children 做对比
作者: 361553894    时间: 2015-10-22 10:07
betamelody 发表于 2015-10-22 10:05
将x->definition->children 和 x->children 做对比

好的,非常感谢,我去试一下




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