|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑
# e u; r& a7 U Z, @7 Q- axlCmdRegister("create_device" 'add_value_device ?cmdType "general") i- a; N8 R: A. j% ^0 C
- axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general"), x$ c1 v+ R! [5 i! i
( u/ w: n1 d! E- defun( create_device_batch ()- v/ V$ x/ X( g
- libFiles = getDirFiles("./")
( T: O+ ^& V5 E- s" }5 g - draFiles = nil
- l H; i4 M$ z0 j) e$ x7 t - foreach(libFile libFiles4 z8 d& s: {& w% T; Z
- when(car(last(parseString(libFile ".")))== "dra"
# ~; F4 {( `3 w: n& H2 b - draFiles = cons(libFile draFiles)
; n6 D% d' S' S! E+ H - )
0 z( R$ j( A% H) y5 w; b1 q - )
" L1 [3 M+ y" X; g7 E8 G& R - foreach(draFile draFiles5 J$ H+ l2 Y% U% Q4 J* x+ M' l2 |+ K
- axlOpenDesign(?design draFile ?mode "wf")4 v* \" t; m2 a
- add_value_device()7 z4 h3 ]4 p$ m; x& g1 Z# S
- );end foreach
8 g7 t; n3 n4 x. K/ T - axlShell("unset noconfirm"), g8 f3 v6 f/ {7 n" ?" n+ d
- )
: r- `0 b! B# q2 {( n A1 i
( D) _3 n7 b* y- defun( add_value_device ()
( m d8 E# Q% E$ Q0 J1 J - axlShell("set noconfirm")
9 K X4 j* q6 F# ]* E3 A - designType = axlDesignType(t), N7 Q$ l4 J/ w! h3 q9 U4 _3 m
- case(designType
2 v. r9 ?9 i4 A4 g+ h" z3 w - ("PACKAGE"& T- t% _# T& j' Y1 H* @+ O5 c" k
- crete_device_run(strcat(axlCurrentDesign() ".psm"))
% c# c9 E6 L9 D2 s: @# L& H - axlPadstackToDisk()
+ Y1 S3 @& \' g6 w& m - )/ ^: H9 j* x* _' ~
- ("MECHANICAL"
. b7 v/ a* E9 k g) a- Y - crete_device_run(strcat(axlCurrentDesign() ".bsm"))
# a" C0 r; h7 H5 h+ a, k - )0 r+ g6 r; c) _+ l0 ]( h
- ("FORMAT"2 I! N$ L- R( a2 P
- crete_device_run(strcat(axlCurrentDesign() ".osm"))
+ _7 @$ ?4 c; i - )
! H# X, U& f% s+ w+ ? - ("SHAPE"4 E+ y4 x; Q" e w
- crete_device_run(strcat(axlCurrentDesign() ".ssm")). q" ]7 F) E, x2 i
- )
# y6 Q/ E! _2 n9 Z& K' y t6 A. D - ("FLASH". d0 l) y/ {. H. X* v/ h- w# x
- crete_device_run(strcat(axlCurrentDesign() ".fsm"))+ o% m; ~' E! q" k0 [' P. U
- )/ M8 _: ]% `% X/ v# c. k
- )
$ G/ V, x- ]* w7 F) v# b - axlShell("replay \"./create_device.scr\"")
5 K' E, K& S0 i$ ^0 y& N6 C9 o - axlSaveDesign(?design axlCurrentDesign()) ( ^* t2 f0 ^* m! l8 {
- axlShell("unset noconfirm")4 W( a! @. Y6 m6 c
- )
4 z C; }% _8 x+ {; N$ @; C
4 W3 V O4 X" V- defun( crete_device_run (fileName)
. {) O [# L( G" j - saveScript = outfile("./create_device.scr")7 [1 |' ^/ S z8 j" U, d8 {$ d
- fprintf(saveScript "scriptmode +i +n\n")
, B2 L& ]. L" v9 o4 C8 N - fprintf(saveScript "version 15.51\n")1 W" F+ L/ g7 [
- fprintf(saveScript "setwindow pcb\n")" y8 E7 z% W5 c3 a2 b) H ~
- fprintf(saveScript "trapsize 666\n")# C1 c9 l( q& X8 X; R/ N7 x3 r' i
- fprintf(saveScript "create device\n")
1 r1 v* c3 z$ c) T" R0 ~/ M0 ] - fprintf(saveScript "setwindow form.crdevice\n")1 @4 {! r* K2 H& X4 h
- fprintf(saveScript "FORM crdevice done\n")
& t2 u, Y/ q& n) T0 j - fprintf(saveScript "create symbol\n"). b2 F0 H8 i: h; |! e! J
- fprintf(saveScript "fillin %s\n" fileName)
+ r x, x- }) S; y( \7 D: \: J$ I - close(saveScript)' v4 N$ a q! [* v q( r0 z' B
- )
4 w3 u0 O; g+ p
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:
; I7 K4 T9 Y& }- K1.执行命令:create_device
3 S% l' A {, ?4 A可导出当前器件封装的焊盘、DEVICE、SYMBOL; y4 X3 m7 f% J1 }: z {5 d
" R4 C5 @1 h/ X( {1 V3 x4 F( C
2.执行命令:create_device_batch
8 W' f$ i8 X& v% e( ^% p6 X x W. }可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL
& `% k5 U$ \( ?- V( V q9 x) [! }! \. s, |1 R. Q9 z
: O0 X6 } H7 g; \0 x: E/ |% n
|
|