EDA365电子工程师网

标题: 元件的位号丝印被删除了怎么用skill给它添加上啊? [打印本页]

作者: lyh289114980    时间: 2015-1-22 14:34
标题: 元件的位号丝印被删除了怎么用skill给它添加上啊?
元件的位号丝印被删除了怎么用skill给它添加上啊?

作者: hoo    时间: 2015-1-22 17:52
用Skill记录器件信息(坐标,角度,层面等),然后删除器件,再用Skill根据记录的信息重新创建一个一样的器件。
作者: deargds    时间: 2015-1-23 09:56
使用axlDBCreateText函数,最后一个参数为元件的dbid即可。
作者: lyh289114980    时间: 2015-1-23 10:43
deargds 发表于 2015-1-23 09:56
使用axlDBCreateText函数,最后一个参数为元件的dbid即可。

请问版主怎么去读文本文件的最后一行呢?

作者: lyh289114980    时间: 2015-1-23 10:48
deargds 发表于 2015-1-23 09:56
使用axlDBCreateText函数,最后一个参数为元件的dbid即可。

版主最后加一个DBID也不行的哦,我刚试了下。

作者: deargds    时间: 2015-1-23 10:59
lyh289114980 发表于 2015-1-23 10:43
请问版主怎么去读文本文件的最后一行呢?

使用以下函数后,再gets就是最后一行了。
  1. fileSeek(port -1 2)
复制代码



作者: deargds    时间: 2015-1-23 11:02
lyh289114980 发表于 2015-1-23 10:48
版主最后加一个DBID也不行的哦,我刚试了下。

看到代码才能分析问题。

作者: lyh289114980    时间: 2015-1-23 11:16
deargds 发表于 2015-1-23 11:02
看到代码才能分析问题。

以下是部分代码
if( axlSelect() then
   lSym = axlGetSelSet( )
   foreach( dSym lSym
    sym_text= axlDBGetAttachedText(dSym)
MRK_TXT=nil
foreach(find sym_text            
if(find->layer == "REF DES/ASSEMBLY_TOP" ||  find->layer == "Ref Des/Assembly_bottom" then           
  MRK_TXT = find                                                           
  )         
  ) ;end foreach
--------中间代码省略--------------
if(dText->layer=="REF DES/SILKSCREEN_TOP" then
cass_layer="Ref Des/Assembly_Top"
else
cass_layer="Ref Des/Assembly_Bottom"
)
               
if(MRK_TXT==nil then
       axlDBCreateText( dText->text, fSym_xy, cass_Text_orient, cass_layer, dSym )
)
   )
   )


作者: deargds    时间: 2015-1-23 11:35
lyh289114980 发表于 2015-1-23 11:16
以下是部分代码
if( axlSelect() then
   lSym = axlGetSelSet( )

代码不完整,没法测试,你自己在程序中输出axlDBCreateText函数的所有参数,分析下是否都正确。
  1.          axlDBCreateText(
  2.              t_text
  3.              l_anchorPoint
  4.              r_textOrientation
  5.              [t_layer]
  6.              [o_attach]
  7.          )
复制代码


作者: lyh289114980    时间: 2015-1-23 12:11
deargds 发表于 2015-1-23 11:35
代码不完整,没法测试,你自己在程序中输出axlDBCreateText函数的所有参数,分析下是否都正确。

我的代码可以帮我调文字位置呀,说明代码没有问题就是不能帮我加上已删除的文字。版主请问fileSeek(p a b),把b设置成2不是到文件末尾了吗?怎么读取最后一行文字啊?我的最后一行文字字符数不一定的哦,这样a的值要怎么设置了呢?

作者: deargds    时间: 2015-1-23 14:45
lyh289114980 发表于 2015-1-23 12:11
我的代码可以帮我调文字位置呀,说明代码没有问题就是不能帮我加上已删除的文字。版主请问fileSeek(p a b ...

1.抱歉,之前的方法只读了最后一个字符,读行的话,如果行数不多,可以用下面这种方法,文件较大的话,就需要fileSeek到尾部,再逆序获取倒数第一个换行符(#13)的位置,再gets即可。
  1. while( gets(sLine port)
  2.         sLastLine = sLine
  3. )
复制代码

2.添加文字的问题,你可以试下最后一个参数不要,看能否正常创建TEXT,如果不能,就要检查下参数。

作者: lyh289114980    时间: 2015-1-23 15:53
deargds 发表于 2015-1-23 14:45
1.抱歉,之前的方法只读了最后一个字符,读行的话,如果行数不多,可以用下面这种方法,文件较大的话,就 ...

版主你这代码是读取全部内容的啊,我要的只是读取最后一行的。

作者: lyh289114980    时间: 2015-1-23 15:57
deargds 发表于 2015-1-23 14:45
1.抱歉,之前的方法只读了最后一个字符,读行的话,如果行数不多,可以用下面这种方法,文件较大的话,就 ...

版主不好意思,理解错了。这是读取最后一行的。谢谢!

作者: wcjcn    时间: 2017-6-10 08:41
学习一下。。。




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