|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑
( ~! Z6 K) K+ b2 ?+ \9 V% P( w. f- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")1 D: k$ f1 _" n5 u) h
- axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")
6 r( f0 x+ e) _4 r
& I6 E& @; h+ {6 h1 `& h- defun( create_device_batch ()( J# p9 N9 W) r
- libFiles = getDirFiles("./")
' v/ g% r! b' W3 C0 P5 f! G - draFiles = nil' G Q$ ?" |- f( X2 T J& I+ T3 @
- foreach(libFile libFiles
( @) A; |* K" F8 Y/ N - when(car(last(parseString(libFile ".")))== "dra", z9 H. p0 ~0 A
- draFiles = cons(libFile draFiles); R! t0 q2 ?- b( c8 y: ^ q7 x
- )
% m' S0 [2 z+ S0 _ - )7 J* F) a0 o) q) I: V0 q
- foreach(draFile draFiles; _4 f8 B" V6 g5 s4 K
- axlOpenDesign(?design draFile ?mode "wf")
' |' U h4 p9 ^% E: M F - add_value_device()
1 M! U0 @/ M0 M+ Q - );end foreach
# d' b- m/ P6 V! E - axlShell("unset noconfirm")
6 E7 {$ `7 E6 y+ ? - )
5 {6 A, @% q, H! s- N& i
( O+ d& e# D7 }0 @# F- defun( add_value_device ()5 b6 n3 K% K) c* K, K1 P
- axlShell("set noconfirm")
' u4 @' D* V$ Z - designType = axlDesignType(t)
# D) W- c, |2 ?0 z - case(designType
* D. s9 V$ x& W6 `2 k& O - ("PACKAGE"0 P8 Z1 g/ s+ Y4 B# B6 q1 `
- crete_device_run(strcat(axlCurrentDesign() ".psm"))
) k3 }' w9 F9 ^: b6 r/ G2 e% v9 N - axlPadstackToDisk()/ n9 u6 }$ @; q$ L2 a9 i
- )
0 `7 q: v. o- k/ p* a A - ("MECHANICAL"
; K1 x2 Q, }0 [% Y! y. Q) H - crete_device_run(strcat(axlCurrentDesign() ".bsm"))
3 {' E5 Q6 e7 `+ O" h; U - ), S* i9 z J( {0 t4 H% L! n
- ("FORMAT"( S/ w3 a* {7 B$ z5 U* j" A( g5 w
- crete_device_run(strcat(axlCurrentDesign() ".osm")) D6 F+ Y- K$ p; d1 }, }* ^
- )7 y) ~% l8 t2 ?, J8 R
- ("SHAPE"
! ]/ b( f5 D& |/ T( e' l - crete_device_run(strcat(axlCurrentDesign() ".ssm"))# k9 k4 e6 X7 `1 S t3 X; m
- )
/ m; y2 H. f, _# Q# [. t* q/ O1 ` z - ("FLASH"6 `( v5 f8 T L
- crete_device_run(strcat(axlCurrentDesign() ".fsm"))
6 x2 n8 l8 o1 z1 }; t - )% C9 [0 t4 [. s# O* A
- )
0 r d3 }, Y& Y8 _1 W0 q& d/ Y: l - axlShell("replay \"./create_device.scr\"")
. P# F; }$ L3 C \ - axlSaveDesign(?design axlCurrentDesign())
2 q6 s8 D( C+ W* i! w - axlShell("unset noconfirm")* ~' ^) m9 h+ N8 l. m* H+ H" Z
- )
5 `6 a0 W2 {: U; f2 X
3 }$ v* |# B; l! N3 `6 E- defun( crete_device_run (fileName)6 x, S2 V7 H% S9 k: C) T
- saveScript = outfile("./create_device.scr")
* F' Q0 e+ d* f# i' t - fprintf(saveScript "scriptmode +i +n\n")
" C( w1 C- k/ y - fprintf(saveScript "version 15.51\n")
* y j4 h/ V% m, W - fprintf(saveScript "setwindow pcb\n")9 L& ^( R* u y* }% s
- fprintf(saveScript "trapsize 666\n")
3 m( ]& l' n0 P. [' ? - fprintf(saveScript "create device\n")- L& S. @; N. R5 Q) o
- fprintf(saveScript "setwindow form.crdevice\n")
5 x. K' |* {7 E {2 t S - fprintf(saveScript "FORM crdevice done\n")
% I1 e; N! q* Z: f- q6 v - fprintf(saveScript "create symbol\n")( H. w- {& u- \5 @
- fprintf(saveScript "fillin %s\n" fileName): I5 k4 m4 V5 q+ E4 w1 W2 I ^
- close(saveScript)3 ^; }; n! v+ K, v. U, T D
- )9 K# B/ ] y `0 n( J7 e- U3 R
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:7 x! z0 O2 @% l+ V3 o) @8 N5 t
1.执行命令:create_device
- ^ e: l6 M* a/ `可导出当前器件封装的焊盘、DEVICE、SYMBOL' @- Q' b+ p" s. G$ ]
9 I1 m5 e' K3 Q& x2 i$ _' q0 |
2.执行命令:create_device_batch5 P, m; U; H& C% H1 U! s% |$ R
可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL
4 v: F& T/ |" l' M- y7 f! T) J9 _. f6 A9 Y5 I" e5 J
: X: u$ C$ b& Q
|
|