Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: vivienluo

[原创] 改变Line的层面Change Line Layer

  [复制链接]
发表于 2025-3-11 17:41:18 | 显示全部楼层
chuchiwolong 发表于 2014-11-17 10:28
case(lineDbid->objType
                ("path"
                        ; println("path")

可以给修改好的全码吗
发表于 2025-3-11 18:50:01 | 显示全部楼层
如果把line变到走线层,比如TOP/ETCH层,这时候再把这个线改到其他层就不行了,因为它从line变成为clines啦,请问要怎么优化程序?
发表于 2025-3-12 17:29:34 | 显示全部楼层
本帖最后由 xieeyawen 于 2025-3-12 17:34 编辑
chuchiwolong 发表于 2014-11-17 10:28
case(lineDbid->objType
                ("path"
                        ; println("path")
  1. defun( Line_Change_Layer (lineDbid lineLayer)
  2. case(lineDbid->objType
  3.                 ("path"            ;path refers to cline/line,所以后面能用case判断是line,cline还是arc
  4.                         ; println("path")
  5.                         ;endPoint = cadr(nthelem(lineDbid->nSegs lineDbid->segments)->startEnd)
  6.                         ;startPoint = car(car(lineDbid->segments)->startEnd)
  7.                         linePath = axlPathStart(list(car(car(lineDbid->segments)->startEnd)))
  8.                         foreach(temp lineDbid->segments
  9.                                 case(temp->objType
  10.                                         ("line"
  11.                                                 axlPathLine(linePath temp->width cadr(temp->startEnd))
  12.                                                 )
  13.                                         ("cline"
  14.                                                 axlPathLine(linePath temp->width cadr(temp->startEnd))
  15.                                                 )
  16.                                         ("arc"
  17.                                                 axlPathArcCenter(linePath temp->width cadr(temp->startEnd) temp->isClockwise temp->xy)
  18.                                                 )
  19.                                         (t
  20.                                                 printf("Path Type is Unknown!\n")
  21.                                                 )
  22.                                 );end case                       
  23.                         )
  24.                         axlDBCreatePath(linePath lineLayer 'line)
  25. /*
  26. ;axlDBCreatePath(linePath lineLayer 'line)
  27. axlPath函数创建的现有线路径linePath
  28. lineLayer为创建路径图形的图层,为活动的层
  29. ‘line    Changes default path created on an etch layer from a cline to a line.在etch层上创建的默认路径从cline更改为line。
  30. 该程序表示现有路径linePath上的cline更改为到lineLayer层的line。
  31. */
  32.                 )
  33.                 ("text"
  34.                         ; println("text")
  35.                         Ori_XY=lineDbid->xy
  36.                         Ori_textBlock=lineDbid->textBlock
  37.                         Ori_rotation=lineDbid->rotation
  38.                         Ori_isMirrored=lineDbid->isMirrored
  39.                         Ori_justify=lineDbid->justify
  40.                        
  41.                         myorient = make_axlTextOrientation(?textBlock Ori_textBlock, ?rotation Ori_rotation, ?mirrored Ori_isMirrored, ?justify Ori_justify)
  42.                        
  43.                         newText= axlDBCreateText(lineDbid->text Ori_XY  myorient lineLayer nil)                       
  44.                 )
  45.         )        
  46.         axlDeleteObject(lineDbid)
  47.         axlDBCreatePath(linePath lineLayer 'line)
  48.         ;axlDehighlightObject(axlChangeWidth(car(axlDBCreatePath(linePath a_Layer 'line)) abs(a_Expands)))
  49. );end procedure
复制代码
我把你的代码优化了一下,增加了把etch层走线也能变层啦
前面的选择程序也要改掉
axlSetFindFilter( ?enabled list("noall" "lines" "Clines" "Text") ?onButtons list("noall" "lines" "Clines" "Text"))
发表于 2025-4-17 09:47:17 | 显示全部楼层
看看,希望不错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号 )

GMT+8, 2025-4-25 13:32 , Processed in 0.130044 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表