TA的每日心情 | 开心 2024-9-6 15:29 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
大佬,请教1个问题,我想要写1个等距离创建过孔的skill,如何点选1个过孔,然后按上下左右以等距离创建过孔?下面是我的代码,但是这个代码只能运行后再点选才能创建过孔,而且无法连续创建,怎么样先点选过孔,再创建- defun( CopyViaBySameDimension (x_offset y_offset)
- let((ViaDbid)
- axlSetFindFilter(?enabled (list "noall" "VIAS") ?onButtons (list "VIAS"))
- axlClearSelSet()
- axlMsgPut("Select a via as reference...")
- selectedVia = axlSingleSelectPoint()
- ViaDbid = axlGetSelSet(selectedVia) ;获取选择对象的DBID
- ;unless(axlOKToProceed() axlShell("done"))
- when(ViaDbid
- padstackName = car(ViaDbid)->name ;获取焊盘名称
- ViaNet = car(ViaDbid)->net->name ;获取当前选择过孔的网络名称
- ViaXY = car(ViaDbid)->xy ;获取当前选择过孔的坐标
- ViaRotation = car(ViaDbid)->via->rotation ;获取旋转角度
- ViaMirror = car(ViaDbid)->via->mirrored ;获取旋转角度
- x = xCoord(ViaXY) ; 获取x坐标
- y = yCoord(ViaXY) ; 获取y坐标
- ;点击左右则x变化,y不变
- x = x + x_offset
- ;点击上下则y变化,X不变
- y = y + y_offset
- ;unless(axlOKToProceed() axlShell("done"))
- newVia = axlDBCreateVia(padstackName , x:y , ViaNet, ViaMirror , ViaRotation , nil) ;创建过孔
- );end while
- when(newVia
- NewViaDbid = list(car(newVia))
- axlHighlightObject(NewViaDbid t)
- );end when
-
- );end let
- );end defun
复制代码 |
|