| 
 | 
 
 
发表于 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")) 
 |   
 
 
 
 |