|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑
" l/ I+ A1 S6 o, T' ]1 D9 `- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")
9 ?( m6 g) i: {9 h) { - axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")! A- A+ \8 n' _& Z% |: g9 e# c
- ' |1 t" \2 Q! a
- defun( create_device_batch ()
3 F- i# O/ R, ]5 X3 u - libFiles = getDirFiles("./")
% S2 g8 W9 P" l7 C - draFiles = nil
+ a+ V$ f! W6 v) R0 ]+ L" N - foreach(libFile libFiles
8 j' U0 H' c7 y6 C A - when(car(last(parseString(libFile ".")))== "dra"
) x# N- p5 V8 H: B7 [ - draFiles = cons(libFile draFiles)
; w, B3 Q& ]( T) ^ - )
+ J# f: ]( q" B+ z+ N - )4 C' n6 U# A: R. P
- foreach(draFile draFiles
- p2 ~+ C/ D* F - axlOpenDesign(?design draFile ?mode "wf")
7 u6 a: G3 U3 F0 ~9 S% I - add_value_device()7 Z3 a0 }0 b/ @$ [" L: J
- );end foreach ! E$ j! L6 I4 ?& ?, m
- axlShell("unset noconfirm")# j3 c7 `, F3 r& G4 W! {2 p- e
- )* u$ a1 P) x- }( h3 r( Y
- / Y+ P F9 i7 j
- defun( add_value_device ()' K3 Z/ S& F/ F9 B* X3 q
- axlShell("set noconfirm")0 w! |" i, k+ Y# N2 y; X4 B
- designType = axlDesignType(t)$ t" V0 V+ N4 B$ T
- case(designType6 \, }1 ^# l; c* ?. _3 N6 E, P
- ("PACKAGE"
, E8 Y$ d" _2 t' M - crete_device_run(strcat(axlCurrentDesign() ".psm"))7 r2 A8 K, e; U2 ^
- axlPadstackToDisk()
- a! N8 M( x9 G k. z$ L X - )- V7 l7 d$ N- H2 N9 O9 J* E' w
- ("MECHANICAL"
2 a- B' h9 y# P, R" S - crete_device_run(strcat(axlCurrentDesign() ".bsm"))" n# z4 b4 o" Q% w# G: b4 b e" L( G0 Q! Y
- )
6 N! ~' I: y7 i' S% f) o- d - ("FORMAT"
8 U$ n7 X, t( {, {; F - crete_device_run(strcat(axlCurrentDesign() ".osm"))
, r* F- Q$ s2 s( M - )
]* E3 b1 M* [- J. z6 ~ - ("SHAPE"
A* v9 n) T2 B. H, a9 w, d - crete_device_run(strcat(axlCurrentDesign() ".ssm"))7 R/ |% K S/ O$ z
- )
+ r) l. P( |6 ~1 ] - ("FLASH"
) Z; h% t7 i2 q7 m! m - crete_device_run(strcat(axlCurrentDesign() ".fsm"))
( ?1 T; G* @( ^* x; G; j8 h - )
& X- Z; E9 [, F% u4 G - ) - N _# X6 S: F" c
- axlShell("replay \"./create_device.scr\"")
0 t- e# A+ K3 S# d. c - axlSaveDesign(?design axlCurrentDesign())
+ ^/ | [2 G0 d* u - axlShell("unset noconfirm")
3 {( V4 v. n2 r$ [ - )
! P, G5 B8 a0 C. B; x - ( A T5 i" M+ i
- defun( crete_device_run (fileName)
0 B% \" z+ q J- y# D% V5 N - saveScript = outfile("./create_device.scr"). I _- @) ?( a4 D
- fprintf(saveScript "scriptmode +i +n\n"), i% }; X" l# W! K: Q( x
- fprintf(saveScript "version 15.51\n")# ?$ Y0 E8 ~$ }5 O8 _
- fprintf(saveScript "setwindow pcb\n")+ _, F0 g. s, `- _( ^# t0 b9 l3 Q
- fprintf(saveScript "trapsize 666\n")
- Q( u" G$ l% x - fprintf(saveScript "create device\n")$ c9 y" f0 o* R H% l8 G+ v1 W
- fprintf(saveScript "setwindow form.crdevice\n")6 H- l7 K8 W/ b+ O, w; U& A; B
- fprintf(saveScript "FORM crdevice done\n")$ S8 E8 z" k. G2 M0 x
- fprintf(saveScript "create symbol\n")
0 ~7 U! v2 X* N# N; x; m% d - fprintf(saveScript "fillin %s\n" fileName)7 O2 Y/ U# o; B k" z5 Q$ v& j, B
- close(saveScript)
! D5 ]2 S. S5 [ - )
* [6 d: I: s- G T1 Z9 }% M
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:
1 t0 r% z9 v( S' b6 \1 Z8 c1.执行命令:create_device
% ]& `& K9 ?3 _" U& n可导出当前器件封装的焊盘、DEVICE、SYMBOL
g8 H% E# U$ x
w5 D/ X P2 R& E" i1 J2.执行命令:create_device_batch0 E [4 M( k& f8 |8 _+ ]- w; M& E
可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL' o0 f" I! S& I: M8 y
/ `6 R) F3 w! Y: L
* m1 ?3 O2 S; u: z4 o) J* e3 B9 {
|
|