TA的每日心情 | 奋斗 2025-9-24 15:41 |
---|
签到天数: 86 天 [LV.6]常住居民II
|
仅供参考- axlCmdRegister("csa" 'dbCheckSymbolArea)
$ T5 z/ J$ D1 D
0 B8 r! \3 l0 {- ;; How to use9 L% i7 m0 B4 N0 Y2 H
- ;; skill load "test_calc.il"
: B8 [! B/ ^9 P, ^ - ;; csa( r, u) d3 s8 X
/ Q1 k7 v0 X' @- T7 B* q- procedure( dbCheckSymbolArea()
+ v! L0 B+ @4 G7 X( `' Q( {$ y - let( (plcbnd area (sumPlc 0) shapeOutline sumOutline)9 z5 B9 }8 c5 p! z) \5 ~
- 8 k5 r+ @6 B" [9 e
- ;;calc area of placebound of top symbols. w |% T' w* U% X$ }+ M$ Z% N4 g
- foreach(i axlDBGetDesign()->components
0 J% v5 z P3 U9 I - when(i->symbol && i->symbol->layer == "TOP"
! w, w" Q9 m( u* X0 t - ;;get shape of placebound( Y9 C( a" C+ {4 }/ M1 T2 L& a& p
- plcbnd = car(setof(x i->symbol->children (x->objType == "shape" && index(x->layer "PACKAGE GEOMETRY/PLACE_BOUND_"))))6 v2 R7 E( V7 N% I
- when(plcbnd
7 J+ z, J" [/ D - ;;change to poly' R; c: T" l4 A9 f9 ]
- area = car(axlPolyFromDB(plcbnd ?layer plcbnd->layer))->area% f& J+ \# J. d" Y+ X+ o. X; \* E
- ;;add4 F6 |) D. t2 H9 w
- sumPlc = sumPlc + area3 U& S# A6 X+ V) T
- )9 `8 z0 B- o6 U; z. d9 a
- )
0 Q" w1 h: a' _: v6 ?( K% u+ C$ N - )0 T+ N1 ^% i+ P1 Y! F7 m# \
- & @3 _- P& ?$ n/ i( o, M7 W
- ;;calc area of outline
6 m" w1 N$ X" B6 r - shapeOutline = axlDBGetShapes("BOARD GEOMETRY/OUTLINE") || axlDBGetShapes("BOARD GEOMETRY/DESIGN_OUTLINE")
- l! r x) h+ f3 N# F6 Q - sumOutline = car(axlPolyFromDB(car(shapeOutline) ?layer shapeOutline->layer))->area* E9 [; }' B# ^
-
. ^, Y$ {( y! K/ f' k: c; ~; V - ;;calc percentage
8 q B7 C2 a p. {, u - result = sumPlc * 100.0 / sumOutline
1 C8 F1 T. Y" u% a- ~% d* m9 K - printf("Placebound Area = %.2f\nOutline Area = %.2f\nPercentage = %.2f%%\n" sumPlc sumOutline result)
7 t/ c- {( [/ `) p* @- I( f - axlUIConfirm(sprintf(nil "Placebound Area = %.2f\nOutline Area = %.2f\nPercentage = %.2f%%\n" sumPlc sumOutline result)). V) a: S1 w% g' f
- ))
复制代码 9 d9 |- s$ c. _* b; m
! O. l3 z( w& q
|
|