EDA365电子论坛网

标题: skill如何实现某段线的高亮显示 [打印本页]

作者: gorgeous    时间: 2019-7-11 15:17
标题: skill如何实现某段线的高亮显示
我在.il文件中显示出了一段线两端的坐标,点击可以定位到页面相应位置,代码如下fprintf(fp, "\nSLP_S3#_SIO (2353.74 6114.00) (2394.84 6114.00)\n"),现在想实现点击定位并同步高亮这段线,不知道代码怎么实现,还请大神们帮下忙,Thanks♪(・ω・)ノ

作者: daoshuailx    时间: 2019-7-12 09:48
使用 axlHighlightObject 这个函数
作者: gorgeous    时间: 2019-7-18 11:32
daoshuailx 发表于 2019-7-12 09:48
使用 axlHighlightObject 这个函数

请问这个函数如何使用呢,或者哪里可以找到这个函数的使用方法呢,谢谢

作者: daoshuailx    时间: 2019-7-22 16:19
gorgeous 发表于 2019-7-18 11:32
请问这个函数如何使用呢,或者哪里可以找到这个函数的使用方法呢,谢谢

可以查看帮助文件 algroskill.pdf

axlHighlightObject
axlHighlightObject(
[lo_dbid]
[g_permHighlight]
)
⇒ t/nil
Description
Highlights the figures whose dbids are in lo_dbid.
Fewer objects support permanent highlighting than support temporary highlighting.
Note: Setting axlDebug(t) enables additional informational messages.


作者: cddog821104    时间: 2019-7-23 08:43
axlHighlightObject([lo_dbid] [g_permHighlight])高亮
axlDehighlightObject([lo_dbid] [g_permHighlight])關閉高亮
作者: jet2001    时间: 2019-7-23 16:44
隨手寫一段 需自己再修正
  1. axlCmdRegister( "get_seg" `get_seg2xy) ; load("get_seg2xy.il") ;跑 get_seg 1952.00 575.00 1822.00 445.00
  2. procedure(get_seg2xy(x1 y1 x2 y2)
  3. _xy1=list(evalstring(x1)/1.0 evalstring(y1)/1.0)
  4. _xy2=list(evalstring(x2)/1.0 evalstring(y2)/1.0)
  5. (axlVisibleDesign nil)
  6. etchlyr=(axlGetParam "paramLayerGroup:ETCH")->groupMembers
  7. (foreach item etchlyr _dd=strcat("ETCH/" item) axlVisibleLayer(_dd t))
  8. axlSetFindFilter(?enabled list("noall" "clinesegs"))
  9. axlSetFindFilter(?onButtons list("all"))
  10. g_segs=axlGetSelSet(axlSingleSelectBox(list(_xy1 _xy2)))
  11. axlClearSelSet()
  12. find_seg=nil _seg=nil
  13. (foreach _s1 g_segs     ; _s1=nth(0 g_segs)
  14.    _start=nth(0 _s1->startEnd) _end=nth(1 _s1->startEnd)
  15.    if( (_start==_xy1 && _end==_xy2)||(_end==_xy1 && _start==_xy2) then find_seg=t _seg=_s1 )
  16. );(foreach
  17. if(find_seg then
  18.     printf("*** get cline at %s : %L\n" _seg->layer _seg->startEnd)
  19.     axlHighlightObject(_seg) ; 以後需自己再 axlDehighlightObject(_seg)
  20.     (axlVisibleDesign nil)
  21.     etch_lyr=(cadr (parseString _seg->layer "/"))
  22.     axlVisibleLayer("BOARD GEOMETRY/OUTLINE" t)
  23.     axlVisibleLayer(strcat("PIN/" etch_lyr)  t)
  24.     axlVisibleLayer(strcat("ETCH/" etch_lyr)  t)
  25.     axlVisibleLayer(strcat("VIA CLASS/" etch_lyr)  t)
  26.     center_x=(car(_xy1)+car(_xy2))/2  center_y=(cadr(_xy1)+cadr(_xy2))/2
  27.     if(nth(0 axlDBGetDesignUnits())=="millimeters" then _dxy=10 else _dxy=400) ; set display Window X /Y = 20x20CM
  28.     (axlWindowBoxSet (list (list center_x-_dxy center_y-_dxy) (list center_x+_dxy center_y+_dxy)))
  29.   );if(find_seg
  30. );
复制代码

作者: gorgeous    时间: 2019-10-18 11:00
jet2001 发表于 2019-7-23 16:44
隨手寫一段 需自己再修正

这个是在cmd运行才可以高亮的,如何实现报告的点击定位高亮呢,求大神指点

作者: gorgeous    时间: 2019-10-18 11:02
jet2001 发表于 2019-7-23 16:44
隨手寫一段 需自己再修正

类似于这种

3.PNG (29.48 KB, 下载次数: 4)

3.PNG





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2