EDA365电子工程师网

标题: 求助:为什么这样做会使Connect pin变成mechanical pin [打印本页]

作者: wuyuhe    时间: 2015-11-6 09:38
标题: 求助:为什么这样做会使Connect pin变成mechanical pin
下面的可以修改PIN NUMBER的SKILL,但是最后运行的效果是把Connect pin变成mechanical pin。不知道是什么原因啊,版本帮忙解答啊,或者说有什么方法不会让他变成MECHANICAL的PIN啊。
procedure(test1103()
prog((notdone numb1 Lx Ly blk Lx_sum points1 pinnum cc)  
pinnum=nil
numb1=0
blk=nil
points1=0
Lx_sum=nil
cc=nil
step=1
    first_text=1
  (v = (axlVisibleGet))  
                    axlClearSelSet()            
                    axlVisibleDesign(nil)                    
                    axlVisibleLayer("package geometry/pin_number" t)               
                    axlSetFindFilter(?enabled  list("noall" "text" ) ?onButtons  list("noall" "text"))
       mypopup = axlUIPopupDefine( nil list(list( "Done" 'axlFinishEnterFun) list( "Cancle" 'axlCancelEnterFun)));" "内是显示的文字 '后是对应的函数
      axlUIPopupSet(mypopup)                  
        ;axlSelect(?groupMode 't)
        while(axlSelect()
        text_db=axlGetSelSet()
                    numb1=first_text
                    pre_text="A0"
                    foreach(i text_db
                           old_pin=i->xy
                           Lx=car(old_pin)
                           Ly=cadr(old_pin)
                           blk=i->textBlock
                           Lx_sum=cons(Lx Lx_sum)
                           )
                           Lx_sum=sort(Lx_sum 'lessp)
                           axlDeleteObject(text_db)
                  if(pre_text==nil
                     then
                    for(i 0  length(Lx_sum)-1
                    mytext = make_axlTextOrientation(?textBlock blk, ?rotation 0., ?mirrored nil, ?justify "center")
                    points1=nth(i Lx_sum)                                                            
                    axlDBCreateText(sprintf(nil "%d" numb1), points1y, mytext, "package geometry/pin_number", nil)
                     ;rplaca(sum cc)
                          numb1=numb1+step                          
                          )
                     else
                    pinnum=concat(pre_text first_text)    ;A01
                    for(i 0  length(Lx_sum)-1
                    mytext = make_axlTextOrientation(?textBlock blk, ?rotation 0., ?mirrored nil, ?justify "center")
                    points1=nth(i Lx_sum)                                                            
                    axlDBCreateText(sprintf(nil "%s" pinnum), points1y, mytext, "package geometry/pin_number", nil)
                          numb1=numb1+step
                          if(numb1<=9
                           then
                           pinnum=strcat(pre_text sprintf(nil "%d" numb1))
                          else
                          rexCompile("[a-zA-Z]+")
                           rexExecute(pre_text)
                           cc=rexSubstitute("\\0")                           
                          pinnum=strcat(cc sprintf(nil "%d" numb1))
                          )
                          )
                          )
                     );end while
                            axlUIPopupSet(nil)           
; (axlFormClose formPort)
(axlFinishEnterFun)
(axlClearSelSet)
(axlVisibleSet v)
(axlCloseFindFilter)
(axlVisibleUpdate t)
(axlUIWUpdate nil)
                     ))

作者: wuyuhe    时间: 2015-11-6 12:40
我就只改了PIN NUMBER,为什么改好后的PIN成了MECHANICAL的PIN的呢?
作者: wuyuhe    时间: 2015-11-9 08:17
我的想法是改变PIN NUMBER,这段程序也实现这个功能了,但不知道为什么PIN NUMBER改变后会把以前的SIGNAL PIN变成了MECHANICAL PIN,版本能帮忙找找原因不?
作者: wuyuhe    时间: 2015-11-12 12:18
版主帮忙看看找找原因啊
作者: XYX365    时间: 2015-11-12 12:37
axlDBCreateText(sprintf(nil "%s" pinnum), points1y, mytext, "package geometry/pin_number", nil)
最後一個參數不要給nil,改為此文字是在哪一個dbid下

作者: XYX365    时间: 2015-11-12 13:19
wuyuhe 发表于 2015-11-9 08:17
我的想法是改变PIN NUMBER,这段程序也实现这个功能了,但不知道为什么PIN NUMBER改变后会把以前的SIGNAL P ...

1.在這一行 axlDeleteObject(text_db) 前面加入 dParent = car(text_db)->parent
2. 將函數axlDBCreateText() 最後一個參數由 nil 改為 dParent
這樣應該就好了

作者: wuyuhe    时间: 2015-11-12 17:08
XYX365 发表于 2015-11-12 13:19
1.在這一行 axlDeleteObject(text_db) 前面加入 dParent = car(text_db)->parent
2. 將函數axlDBCreateT ...

我试了一下,不行,还是MECHANICAL的

作者: XYX365    时间: 2015-11-12 17:34
wuyuhe 发表于 2015-11-12 17:08
我试了一下,不行,还是MECHANICAL的

你是如何看出MECHANICAL pin?

作者: wuyuhe    时间: 2015-11-13 07:42
XYX365 发表于 2015-11-12 17:34
你是如何看出MECHANICAL pin?

我是打开的DRA文件,鼠标放上去它会直接显示出来的。

如图所示

作者: wuyuhe    时间: 2015-11-13 11:27
XYX365 发表于 2015-11-12 13:19
1.在這一行 axlDeleteObject(text_db) 前面加入 dParent = car(text_db)->parent
2. 將函數axlDBCreateT ...

我在你给的方法的基础上修了一下,现在可以了,谢谢啊





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