|  | 
| 本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑 % F, O; K5 C- B 
 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:  x; q2 \; S+ w" G4 y2 E1 A$ A( H7 F复制代码axlCmdRegister("create_device" 'add_value_device ?cmdType "general")4 y' h8 Q# g- m+ w+ X
axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")% r4 T5 O- b4 N( p
; D0 n7 C0 o3 Z
defun( create_device_batch ()% V1 D" R5 ?4 Y2 S) ~
        libFiles = getDirFiles("./")8 e# K4 O5 C+ X
        draFiles = nil; R9 c4 S6 d( ~# W1 a
        foreach(libFile libFiles( ]; G  [* k# G( q% Y
                when(car(last(parseString(libFile ".")))== "dra": Z2 {- ?( |" w- b
                        draFiles = cons(libFile draFiles)0 F3 A+ @" r( D" ?4 F
                )$ v. s7 i- _8 ^# H
        )( ^0 z' E2 G2 g
        foreach(draFile draFiles6 }0 [' ]7 g/ j) z8 L
                axlOpenDesign(?design draFile ?mode "wf")0 n1 m5 R3 N' Z' }, [8 A: c1 Z
                add_value_device()4 u/ L& K9 E5 B$ L5 r
        );end foreach        ' Y9 ?2 F9 G0 c3 Z' r  z6 j  W: U( X8 ]
        axlShell("unset noconfirm")/ `' _' E' i! X* S. A
)$ D0 h/ t3 c. a
( {  J9 o* Z1 Y$ O% K# E
defun( add_value_device ()1 p  X6 n8 X, F$ f& D: {
        axlShell("set noconfirm")0 h- v+ R9 N2 l1 |" G7 ~3 s  Y' I
        designType = axlDesignType(t): p8 ^5 D' f8 s
        case(designType4 a+ ?; Y6 Y& l+ {+ u
                ("PACKAGE", n* }( J' \; t
                        crete_device_run(strcat(axlCurrentDesign() ".psm"))# @0 v  @/ D1 ]; d
                        axlPadstackToDisk(); e* H/ ?5 y! U: e# a9 `6 ^$ s
                )- s) A7 H$ K5 _5 @
                ("MECHANICAL" / E7 ~# z' `; Q: X
                        crete_device_run(strcat(axlCurrentDesign() ".bsm"))# n) }' R) [. M* L
                )4 P. C7 h2 M4 ~7 B( T3 _/ \1 N: s& Y
                ("FORMAT"I4 i& }8 x. F$ z" Q+ {8 R
                        crete_device_run(strcat(axlCurrentDesign() ".osm"))$ F# Z  e- j7 u0 L
                )& l* o6 Y: {/ n( \
                ("SHAPE"9 _1 `' x8 ]6 B6 g
                        crete_device_run(strcat(axlCurrentDesign() ".ssm"))- F. a1 d3 `1 e$ e4 M! C+ u% }" l
                )& N" M1 r( U+ J# d1 Y
                ("FLASH"0 U8 v: N7 k4 f6 u+ O( Z8 l( ^7 |0 c
                        crete_device_run(strcat(axlCurrentDesign() ".fsm"))3 u) T8 Z6 l& P( m8 X( V! ]
                )% o; s, x& O% }+ y/ x0 K3 u! u6 B  D
        )                & v) s+ c- q$ E- ^
        axlShell("replay \"./create_device.scr\"")                2 ^1 i, \+ Z. O( Z( b
        axlSaveDesign(?design axlCurrentDesign())        ( ]7 \) d0 f1 M* z
        axlShell("unset noconfirm")0 S$ [: U% l" U2 W* D9 b/ ^3 E
)$ P$ K) v2 x# t, \0 O: e* x1 d
3 D! [: s7 D) ]
defun( crete_device_run (fileName)% E2 `: t8 K( f6 Z% w
        saveScript = outfile("./create_device.scr")' D) s& h- @2 K; U$ r) W
        fprintf(saveScript "scriptmode +i +n\n")9 P; p: [# q+ @/ K9 V
        fprintf(saveScript "version 15.51\n")1 P2 J; j: h- P: o  {7 b8 y% F
        fprintf(saveScript "setwindow pcb\n")- t. B5 p6 T& h& b
        fprintf(saveScript "trapsize 666\n")3 E$ ]" s+ Y$ D$ Y+ c1 i- I
        fprintf(saveScript "create device\n"). V! I1 H& Z& O6 w2 G0 s
        fprintf(saveScript "setwindow form.crdevice\n")" E2 m4 z+ z. Y$ I0 V
        fprintf(saveScript "FORM crdevice done\n")T9 a$ J, J( ]7 S# T2 ^+ j% o
        fprintf(saveScript "create symbol\n")$ k& B# O* M, F( C& @* |
        fprintf(saveScript "fillin %s\n" fileName)( u2 [( D: a% {: _+ Q" T/ c$ i1 @
        close(saveScript)7 a! a+ o  Z  [) N' P% H
)7 j7 x+ _& V! R
1.执行命令:create_device
 1 D6 {, O  Q/ n5 e* ]# H+ `6 |6 k可导出当前器件封装的焊盘、DEVICE、SYMBOL
 ; n' q/ q8 u. K9 U+ k6 A
 ; T: N( O" ~/ |1 f2.执行命令:create_device_batch
 " k& g. {! G; m可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL: N; w8 \# O6 ?/ m, s1 {( V
 $ e5 O, f1 O9 F; _
 
 7 ]6 ~. A. p" Z* J/ c: f8 v( G
 | 
 |