|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑
& @( m2 |' I; i- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")
9 Y; ^+ W7 R8 z1 N' k& Y - axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")* Q& Z4 H j" x+ Q- I N
- % `8 I& o( E+ T; S. m
- defun( create_device_batch ()
' x6 W: t2 E% N2 i# I) h8 l0 Q* M - libFiles = getDirFiles("./")
, x$ a6 S6 f# U5 v- c: G$ P q) ? - draFiles = nil
" h$ O' U& N w8 D4 v# p! @4 o5 ? - foreach(libFile libFiles# ?6 }% b2 P' T0 W3 ~; a- H
- when(car(last(parseString(libFile ".")))== "dra"! ~# {8 ^2 _* R7 `7 N
- draFiles = cons(libFile draFiles)/ ~% k% e1 P( h$ F# m: h/ [& k
- )5 `6 Q" G/ _/ t$ C: d& x
- ); X6 z `& \ X
- foreach(draFile draFiles
" }) X W4 |2 p* v - axlOpenDesign(?design draFile ?mode "wf") ^& Z0 X* m1 o/ o, b% t' k
- add_value_device()
. e. l' y0 V, e" t. }) [5 P - );end foreach ' V4 G) m/ D% ^* k2 V% u2 e* E% y. K! J
- axlShell("unset noconfirm")
c& d8 O% j- ~2 y9 V - )
- `9 q( h) h' y4 C5 [: X0 ]
& M8 s: b+ w' h- defun( add_value_device ()2 n# \" V7 n- v2 f4 U/ y4 h5 ]
- axlShell("set noconfirm")
$ `/ ]6 f. ]0 h# } - designType = axlDesignType(t), r* g+ J( U: `) S u& H
- case(designType
) I3 `7 r q- @2 S - ("PACKAGE"
5 o. y4 M6 U7 S/ L: y, N, [- { - crete_device_run(strcat(axlCurrentDesign() ".psm"))
( q) f+ ~" b9 o# B& w - axlPadstackToDisk()# ^" y( K7 F7 W3 y" E. m
- )
9 U, s' k$ F2 Q- \; }' i. `9 p - ("MECHANICAL"
. c: M3 j n4 K: W# X2 B$ { - crete_device_run(strcat(axlCurrentDesign() ".bsm"))3 a5 v9 D% h4 }8 D
- )3 k2 J8 K9 h. Y" y! j" k: Q
- ("FORMAT"( s* p8 y9 [( h4 c+ \7 ~; Z
- crete_device_run(strcat(axlCurrentDesign() ".osm"))7 R% }% X! }5 s8 {/ J: N! M
- )% b1 |2 I* \! a3 P0 @
- ("SHAPE"4 L. U$ m, D$ M4 |" u4 j( ~
- crete_device_run(strcat(axlCurrentDesign() ".ssm"))1 m- v0 q/ {9 [% R8 T1 ?
- )) L: m: L; N' L9 R1 V2 t: `
- ("FLASH"( j- G( R8 G6 {
- crete_device_run(strcat(axlCurrentDesign() ".fsm"))( D' e( W8 k- g. d: G* v
- )
, x4 r; W( ]8 y! F. W - )
! F" c' N! P! y1 f7 |/ I - axlShell("replay \"./create_device.scr\"")
H+ m) ~, e' m8 ~" M+ o - axlSaveDesign(?design axlCurrentDesign()) V$ p3 J/ I [2 S3 ~
- axlShell("unset noconfirm") E7 R/ G, y& A% v7 |$ c
- )8 k$ E1 C( K+ H- A) s& {% B
- 0 ]# i0 c2 D: N) q) Y% r( _
- defun( crete_device_run (fileName)$ t; K& F" G0 P! B4 _( o; s
- saveScript = outfile("./create_device.scr")
# K& J; C' C* y' w - fprintf(saveScript "scriptmode +i +n\n")
y1 _; f7 f+ q ]2 i - fprintf(saveScript "version 15.51\n")
% j: j2 Y! a0 P5 o! X( E% D* [1 V - fprintf(saveScript "setwindow pcb\n")
# `- M4 u( f: `/ X4 L3 N$ m - fprintf(saveScript "trapsize 666\n")
; J/ Q! L: O. a& u; y% l/ ` - fprintf(saveScript "create device\n")1 v6 f0 H. @7 K9 q7 t% x. h
- fprintf(saveScript "setwindow form.crdevice\n")% t0 x1 g, \& W- ] Z
- fprintf(saveScript "FORM crdevice done\n")* `# A' ~0 D( r' j" |' c! ?
- fprintf(saveScript "create symbol\n")
, y# ^* O# N+ S, V( |- T* l - fprintf(saveScript "fillin %s\n" fileName)
$ J2 }. P& {. Z- h - close(saveScript)3 l6 d/ i* y6 h! a+ O
- )
/ u9 Q7 k9 X! b
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:$ Z5 b/ d2 H. B- Y) J5 C5 @
1.执行命令:create_device
/ F& i: E8 B1 }7 i可导出当前器件封装的焊盘、DEVICE、SYMBOL
9 T0 K7 M+ G: l5 ]- |6 k u# x0 ~0 W! {: Y- I6 `6 e; {- s- X
2.执行命令:create_device_batch
. n d! }6 J( j* V0 i* b* i* N可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL
2 e) ~; k, X* V! h, N( [7 O9 ?
- M# h' o$ z( x8 N8 \. |8 R1 V8 j6 S, @2 g. O& u t
|
|