chuchiwolong 发表于 2014-11-17 10:28
case(lineDbid->objType
("path"
; println("path")
可以给修改好的全码吗
如果把line变到走线层,比如TOP/ETCH层,这时候再把这个线改到其他层就不行了,因为它从line变成为clines啦,请问要怎么优化程序?
本帖最后由 xieeyawen 于 2025-3-12 17:34 编辑
chuchiwolong 发表于 2014-11-17 10:28
case(lineDbid->objType
("path"
; println("path")
defun( Line_Change_Layer (lineDbid lineLayer)
case(lineDbid->objType
("path" ;path refers to cline/line,所以后面能用case判断是line,cline还是arc
; println("path")
;endPoint = cadr(nthelem(lineDbid->nSegs lineDbid->segments)->startEnd)
;startPoint = car(car(lineDbid->segments)->startEnd)
linePath = axlPathStart(list(car(car(lineDbid->segments)->startEnd)))
foreach(temp lineDbid->segments
case(temp->objType
("line"
axlPathLine(linePath temp->width cadr(temp->startEnd))
)
("cline"
axlPathLine(linePath temp->width cadr(temp->startEnd))
)
("arc"
axlPathArcCenter(linePath temp->width cadr(temp->startEnd) temp->isClockwise temp->xy)
)
(t
printf("Path Type is Unknown!\n")
)
);end case
)
axlDBCreatePath(linePath lineLayer 'line)
/*
;axlDBCreatePath(linePath lineLayer 'line)
axlPath函数创建的现有线路径linePath
lineLayer为创建路径图形的图层,为活动的层
‘line Changes default path created on an etch layer from a cline to a line.在etch层上创建的默认路径从cline更改为line。
该程序表示现有路径linePath上的cline更改为到lineLayer层的line。
*/
)
("text"
; println("text")
Ori_XY=lineDbid->xy
Ori_textBlock=lineDbid->textBlock
Ori_rotation=lineDbid->rotation
Ori_isMirrored=lineDbid->isMirrored
Ori_justify=lineDbid->justify
myorient = make_axlTextOrientation(?textBlock Ori_textBlock, ?rotation Ori_rotation, ?mirrored Ori_isMirrored, ?justify Ori_justify)
newText= axlDBCreateText(lineDbid->text Ori_XYmyorient lineLayer nil)
)
)
axlDeleteObject(lineDbid)
axlDBCreatePath(linePath lineLayer 'line)
;axlDehighlightObject(axlChangeWidth(car(axlDBCreatePath(linePath a_Layer 'line)) abs(a_Expands)))
);end procedure我把你的代码优化了一下,增加了把etch层走线也能变层啦
前面的选择程序也要改掉
axlSetFindFilter( ?enabled list("noall" "lines" "Clines" "Text") ?onButtons list("noall" "lines" "Clines" "Text"))
看看,希望不错
6666666666666666
感谢分享,谢谢楼主,下下来看看
chongxinxiazai
支持楼主,这个不错