TA的每日心情 | 奋斗 2025-9-24 15:41 |
|---|
签到天数: 86 天 [LV.6]常住居民II
|
仅供参考- axlCmdRegister("csa" 'dbCheckSymbolArea)9 d( R% a# e' r7 k4 `/ \
2 H$ R" o: \" W% x/ L- ;; How to use+ h/ n3 B- w9 u8 i# c& A7 e
- ;; skill load "test_calc.il"2 v8 V5 R# K* h0 o$ V) N
- ;; csa
" a+ H6 j4 I& w& b, l' b0 X- r9 ^
' k1 w s4 o5 ?/ H3 T8 P- procedure( dbCheckSymbolArea() E. Q, Y, b8 c# q7 C
- let( (plcbnd area (sumPlc 0) shapeOutline sumOutline)
' H$ X: a; m* N, [" F) T; {, _: H - : G$ ]% Y* z3 q7 n! t3 c; r
- ;;calc area of placebound of top symbols
! E! M% f0 |9 E7 R' l+ z3 J) K. k2 p - foreach(i axlDBGetDesign()->components7 Q, f# v9 h% q0 G# ^ F
- when(i->symbol && i->symbol->layer == "TOP"
; i( c" \. r0 K - ;;get shape of placebound3 z3 t# F7 {: \; S
- plcbnd = car(setof(x i->symbol->children (x->objType == "shape" && index(x->layer "PACKAGE GEOMETRY/PLACE_BOUND_"))))- h2 K0 t+ e2 j2 P5 U& V2 \
- when(plcbnd y* _4 o6 z. f3 y. q
- ;;change to poly
( [% k6 I' e' _/ J7 D s" L - area = car(axlPolyFromDB(plcbnd ?layer plcbnd->layer))->area$ l6 ]! q$ S; P7 t
- ;;add
2 v% Z; b; g6 ]: [3 z% L: C" ?) |, m - sumPlc = sumPlc + area! a% X6 w% D" w8 Q: @
- )
5 l4 J! ]' C' N4 E" A0 L% l - )
' x( T" M- S4 f2 K- c- ~ - )$ Z/ k3 g4 b9 u p! [3 r
-
9 ?& C* P# n, W' \ - ;;calc area of outline
2 b' O0 Y7 S( d: X - shapeOutline = axlDBGetShapes("BOARD GEOMETRY/OUTLINE") || axlDBGetShapes("BOARD GEOMETRY/DESIGN_OUTLINE")- y5 V/ V7 ~2 h6 j V' _
- sumOutline = car(axlPolyFromDB(car(shapeOutline) ?layer shapeOutline->layer))->area
2 G2 O1 H3 a0 L: x* `, q0 S; F& j -
0 M2 K" [0 ^0 I& ]/ l: c$ r+ c - ;;calc percentage0 t1 Y' n0 C+ M$ r: k. j
- result = sumPlc * 100.0 / sumOutline $ w9 e/ J5 ~& V2 o
- printf("Placebound Area = %.2f\nOutline Area = %.2f\nPercentage = %.2f%%\n" sumPlc sumOutline result)# L; x3 \" y$ }+ w- R
- axlUIConfirm(sprintf(nil "Placebound Area = %.2f\nOutline Area = %.2f\nPercentage = %.2f%%\n" sumPlc sumOutline result))4 i1 t) ?" Z A% Z! d( P; j# }" z, U2 j
- ))
复制代码
( t% P4 i- W& Q4 ~/ T$ h; e0 z# s0 u7 @, A7 Z# ]) P7 _& h0 m
|
|