|
发表于 2025-3-12 17:29:34
|
显示全部楼层
本帖最后由 xieeyawen 于 2025-3-12 17:34 编辑
- 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_XY myorient 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"))
|
|