请问skill怎么获取antipad的大小?
怎么获取via的坐标,antipad regularpad等参数???我需要检查俩via的antipad小于4mil的函数
目前用的axlAirGap,但是antipad与regularpad大小差不是固定的 1.首先获取到via的DBID,这个就不用我多说了吧。
2.获取via的坐标直接通过viaDbid->xy
2.获取VIA的其他参数,通过viaDbid->definition获取到via所使用的padstack,这个padstack包含了过孔的所有属性。比如你所需要的反焊盘大小。
如面的代码所示:
目前我把via的DBID存储到变量a中的
Skill > a->?
(parentGroups symbolEtch branch pads definition
isMirrored isThrough name objType parent
net rotation mirrorType startEnd testPoint
xy readOnly bBox prop fixedByTestPoint
)
Skill > a->definition->??
(prop nil bBox
((-16.0 -16.0)
(16.0 16.0)
) readOnly
t pads
(pad:259453216 pad:259453192 pad:259453168 pad:259453144 pad:259453120
pad:259453096 pad:259453072 pad:259453048 pad:259453024 pad:259453000
pad:259452976 pad:259452952
) objType "padstack"
startEnd
("ETCH/TOP" "ETCH/BOTTOM") parent dbid:151934960 name
"VIA10-GEN" drillChar "10" plating "PLATED"
holeType "circle_drill" drillNonStandard nil multiDrillData
nil padSuppresion t uvia nil
type "through" keepout nil holeTolerance
(0.0 0.0) drillFigureHeight 20.0 drillFigureWidth 20.0
drillFigureName "CIRCLE" drillSizeHeight 0.0 drillSizeWidth
0.0 drillDiameter 10.0 drillOffset
(0.0 0.0)
isThrough t definition nil isPadRef
nil
)
Skill > b =a->definition->pads
(pad:259453216 pad:259453192 pad:259453168 pad:259453144 pad:259453120
pad:259453096 pad:259453072 pad:259453048 pad:259453024 pad:259453000
pad:259452976 pad:259452952
)
Skill > car(b)->??
(readOnly t objType "pad" bBox
((-11.0 -11.0)
(11.0 11.0)
) type "REGULAR" parent dbid:313075792
offset
(0.0 0.0) layer "ETCH/TOP" flash
"" figureName "CIRCLE" figure
(_axlPath@0x8dce048)
) 如果我要获得antipad的大小,利用
car(viaDbid->definition->pads)
能获取pads的dbid,那我怎么判断哪个是antipad,并且获得他的大小呢? viaDbid->definition->pads->type怎么都是nil呢。。。 本帖最后由 XYX365 于 2015-8-28 19:24 编辑
是不是類似圖片所顯示的值,
如果是的話可以參考下列代碼,
而via的antipad應該是內曾和負片時,才有的
axlSetFindFilter(?enabled list("noall" "pins" "vias") ?onButtons list("noall" "pins" "vias"))
axlClearSelSet()
axlAddSelectPoint() ;自己要選擇兩個via
axlAddSelectPoint()
lSelectVias = axlGetSelSet()
via1 = car(lSelectVias)
via2 = cadr(lSelectVias)
axlSetActiveLayer("ETCH/INT1") ;設定Active為內層名稱
axlAirGap(via1 via2)
=>
axlAirGap(via1 via2)
((4922.22 1141.22)
(4917.22 1134.3) 8.54935
) 本帖最后由 leilei4908 于 2015-8-31 10:22 编辑
XYX365 发表于 2015-8-28 19:22
是不是類似圖片所顯示的值,
如果是的話可以參考下列代碼,
而via的antipad應該是內曾和負片時,才有的
其实我要的是Dist,Dist减去俩Antipad大小就是负片上俩via间铜箔的最小宽度了
能直接获得这个Dist值么?如果是通过计算斜边获取的,计算量会很大。
我的目的是高亮所有via间铜箔在0到4mil间的via。
目前用airgap方式,比较任意两个via间的airgap,数据量很大,会无响应一两分钟,有没有更好的方案?
比如Dx超过一定的值就跳出for循环,但又回到之前没解决的一个问题了,怎么跳出for循环。。。[已解决]
方法:在for循环下增加if判断,虽然没有跳出for循环,但是实际上并没有执行下面的语句
现在用的方法是自己设定via to via的距离,从而判断铜箔宽度
如果能直接获取antipad大小那再好不过了,就不需要自己考虑了,毕竟antipad大小不是固定的
页:
[1]