TA的每日心情 | 奋斗 2025-4-27 15:26 |
---|
签到天数: 81 天 [LV.6]常住居民II
|
仅供参考- axlCmdRegister("csa" 'dbCheckSymbolArea)
) Y. f$ d& h7 j - : t9 H0 k6 B: f' ]# S( N
- ;; How to use: a1 t" y8 e) l- x+ u
- ;; skill load "test_calc.il"
3 M5 J/ ]+ B/ c" p: K& G- n - ;; csa
3 U; p3 T, K: b" E# a5 o6 h
' |4 b( S$ m% Y% x) ]1 j- procedure( dbCheckSymbolArea()
4 `& t0 O: y2 T - let( (plcbnd area (sumPlc 0) shapeOutline sumOutline); M; g3 P3 _5 ^, |8 D1 e
- 5 F/ }# f5 }- `
- ;;calc area of placebound of top symbols
8 X3 y7 m0 J1 X/ S, U% c - foreach(i axlDBGetDesign()->components h2 g; O! q/ N' E, J8 e
- when(i->symbol && i->symbol->layer == "TOP"
& p2 A H. H% H1 H/ z - ;;get shape of placebound% N! i# `9 y+ D
- plcbnd = car(setof(x i->symbol->children (x->objType == "shape" && index(x->layer "PACKAGE GEOMETRY/PLACE_BOUND_"))))
5 }9 H3 R& g, j1 A" r - when(plcbnd
+ }8 @; c7 Y6 s! L - ;;change to poly
P& o' } i# L; y9 ? - area = car(axlPolyFromDB(plcbnd ?layer plcbnd->layer))->area# m, E8 h7 Q5 X. j
- ;;add
# K9 P6 v. @5 C2 b" q1 F - sumPlc = sumPlc + area4 g" g# F W; Z! N5 _
- ), R9 J( g J& D# H) I# W
- )# f5 V* D# y3 g) Z
- )
' q$ V2 H, Y# l! J! g7 l -
. `: w# t% {% d$ z, x# f$ i' O; | - ;;calc area of outline
' a& ^9 d0 o* P9 u, U1 c i* F# u% D - shapeOutline = axlDBGetShapes("BOARD GEOMETRY/OUTLINE") || axlDBGetShapes("BOARD GEOMETRY/DESIGN_OUTLINE")
, j, E8 L/ O9 B7 G n& o! I - sumOutline = car(axlPolyFromDB(car(shapeOutline) ?layer shapeOutline->layer))->area, O7 p5 ~; P1 x9 I& d/ {, `. |
- & N% R, C( c. N. z0 E4 ^8 \) K. S! X4 F
- ;;calc percentage1 O2 O6 M9 a+ h! r. x
- result = sumPlc * 100.0 / sumOutline - n8 C4 F# v; q" q ^
- printf("Placebound Area = %.2f\nOutline Area = %.2f\nPercentage = %.2f%%\n" sumPlc sumOutline result)
% ~- M9 s- K# y" x d - axlUIConfirm(sprintf(nil "Placebound Area = %.2f\nOutline Area = %.2f\nPercentage = %.2f%%\n" sumPlc sumOutline result))- I5 s9 Z3 D( ?" @* b
- ))
复制代码
0 K! L# H I2 A3 M* Q9 g
1 u/ H3 d, P9 r7 H! B( C |
|