|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑
Y8 o: U4 p7 ]. K- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")8 { w$ W- V1 H7 q" _
- axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")
8 z0 A7 d6 a, s: c4 s - 8 A0 Q' ]0 U; F; \
- defun( create_device_batch ()# r) h7 }8 v$ _* ^1 M7 f
- libFiles = getDirFiles("./")4 i; _0 j7 }, ?$ j
- draFiles = nil- q# s: D z) y6 b" e
- foreach(libFile libFiles, L9 M$ X% X* H# F" I
- when(car(last(parseString(libFile ".")))== "dra"
& b) v& U) j( _3 P+ ~ - draFiles = cons(libFile draFiles)3 [, F5 A K+ ^* s! W& s- ]% D
- )
: }* Z- ^4 ?/ i! g( l - )2 s! Q+ D7 @& E4 ^
- foreach(draFile draFiles
, K7 ]) i! n( g6 V9 w( s7 e- u - axlOpenDesign(?design draFile ?mode "wf")
+ Y3 D( O! y' t7 n- {$ O0 a - add_value_device()" D: T/ P% V- }( b8 f8 L7 F
- );end foreach ! L5 s4 V+ y' q6 `+ k# f
- axlShell("unset noconfirm")
: `* K0 ^) m" W: f- L' k0 [& A - )% ? |) l! ~4 C) c p" c" h/ ?
- 3 w7 }9 e1 c( ]% E% G$ l
- defun( add_value_device ()6 b' I+ F- Z- B- q+ u) ^$ n! d5 W
- axlShell("set noconfirm")& R" Z5 H( A1 g# S0 V( E
- designType = axlDesignType(t)
5 q6 k: {+ o& D; b$ D$ f - case(designType
3 I0 R/ ^8 g3 f. K5 z! E) X/ {$ } - ("PACKAGE"
( d3 o! D7 b9 |" t2 p) z" a- u - crete_device_run(strcat(axlCurrentDesign() ".psm"))' I. t- A& M; G) {7 ?. _: c- ^, k" h
- axlPadstackToDisk()
% M2 Q+ e- I/ j! X0 [. \ - )
* i3 V- r$ S, z# b& ~" D4 T - ("MECHANICAL"
- h8 y2 G1 K: u" ] - crete_device_run(strcat(axlCurrentDesign() ".bsm"))9 k4 O/ j. K% F- W9 y# }3 R" a
- ) c- c) s) N9 v! ^& a
- ("FORMAT"1 U. G3 f# K6 g% G, @
- crete_device_run(strcat(axlCurrentDesign() ".osm"))) f4 `- P$ s9 M5 c. B: ?. J
- )
+ q; Z1 c9 X8 J6 R# C0 v - ("SHAPE"- Y& K, x7 s+ z% b
- crete_device_run(strcat(axlCurrentDesign() ".ssm"))
~) \" E0 n( k" I6 P - )8 Q6 |9 T/ m! Y+ q4 c- F
- ("FLASH"- g% v/ r4 Y$ i7 C6 ]; A# k
- crete_device_run(strcat(axlCurrentDesign() ".fsm"))7 q* n; B9 r9 i. C
- )
6 [+ b8 B5 w6 W2 n! W - ) & ~: T+ V/ U- [
- axlShell("replay \"./create_device.scr\"")
; }# h0 [, j t4 f) b# F% ] - axlSaveDesign(?design axlCurrentDesign())
r6 h3 _% }, {1 ^* Z' X - axlShell("unset noconfirm")$ e+ D5 a: d: \4 I0 O( b- s( w5 s
- )
) t) d$ D# M. }8 W; [% S
& k' I: i- b5 C3 m9 J" x- defun( crete_device_run (fileName)# N3 b v+ Q) h( ~9 N
- saveScript = outfile("./create_device.scr")* p3 W6 \8 Z4 b# B$ `
- fprintf(saveScript "scriptmode +i +n\n")
8 l3 P/ N8 }- X* V' h - fprintf(saveScript "version 15.51\n")7 U/ h0 H; @' i0 D* i* I' ?
- fprintf(saveScript "setwindow pcb\n")! D# x q8 {0 y" @
- fprintf(saveScript "trapsize 666\n")
% V# D8 G5 j: M. U- _2 V - fprintf(saveScript "create device\n")8 k5 U8 g* Q B8 U2 c
- fprintf(saveScript "setwindow form.crdevice\n")
4 W0 x2 O1 Q) D. i/ I - fprintf(saveScript "FORM crdevice done\n")
9 n+ N: L% }6 c1 L- P - fprintf(saveScript "create symbol\n")
3 k% ?" U3 m6 l5 k; N- \' A5 \ - fprintf(saveScript "fillin %s\n" fileName)0 P0 `) i" U1 s& t% G
- close(saveScript)
0 D% m3 P8 X+ I7 d& m$ Q; G/ M6 d6 o - )6 W! f% p: E3 [& z+ u3 z+ s) T
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:$ `# [& c( x0 [% j! N7 B
1.执行命令:create_device
. ?: z i5 U b% G可导出当前器件封装的焊盘、DEVICE、SYMBOL
5 o+ B z4 W N4 e( J- R( T+ k8 }7 V5 k$ S# ]5 y' Y1 X" a8 G5 Z4 I' V' h
2.执行命令:create_device_batch
, r; P( n$ T' R6 c- P b' w1 `可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL% D/ _7 a1 A+ e2 O/ u
0 E* k+ G) {0 t* a/ z+ S
6 C* k; R0 A8 d/ H
|
|