|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑 6 y4 j+ w3 F% [: e
- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")( G2 p9 O6 ~4 R% t
- axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")0 }5 B8 r) _% l
- : y8 `4 S( ?; J1 q4 J
- defun( create_device_batch ()
" E) E, p) ^9 }% Q - libFiles = getDirFiles("./")( c" W( {0 X/ X" R3 P0 k
- draFiles = nil
3 V8 p" U/ I; ~" D$ S2 C5 ^3 [% F - foreach(libFile libFiles/ ?, c+ o2 j w% a, J, y8 F! R
- when(car(last(parseString(libFile ".")))== "dra") S9 \) C$ w u6 O
- draFiles = cons(libFile draFiles)1 h0 {9 g4 N! z9 x0 D. T6 P
- )
# m5 E1 [0 A9 K3 D7 G$ k3 i - )
0 u; @+ i7 T$ Z; V1 d. L - foreach(draFile draFiles. A! }% G6 V P; X
- axlOpenDesign(?design draFile ?mode "wf")- c7 Z4 j* t. `" m5 U
- add_value_device()
. M$ K% ~+ `' N - );end foreach 2 C6 l% s& j5 G! b: h G* e' F
- axlShell("unset noconfirm")" H5 Y. j2 C" X" Z- [
- )( b- r& v/ K9 N) O4 Q( D
! A# }4 }4 q& L/ Q* @: P: Q- defun( add_value_device ()" {' _8 Z4 k) ^5 A) P9 f
- axlShell("set noconfirm")4 i* ~" I* e; {* V& M! k/ C& F
- designType = axlDesignType(t)2 ]8 i% V" ?6 J6 t$ ^( S! J
- case(designType
3 n, M7 y3 v5 o0 P - ("PACKAGE"' o3 F2 ~' X7 w3 p+ L6 W9 `
- crete_device_run(strcat(axlCurrentDesign() ".psm"))! z* i/ m, I# z
- axlPadstackToDisk()# `% V; P9 ~# o, ? W+ y7 O
- )
/ l5 j ~3 |$ h& t - ("MECHANICAL" " S" q3 ?. [6 s+ @6 C7 F/ H
- crete_device_run(strcat(axlCurrentDesign() ".bsm"))# ?. F# l W' F; n) T# C
- ) g0 A" S. R6 ]0 p0 d0 d
- ("FORMAT"0 e# \' P% F& i* M, N$ o0 A, C
- crete_device_run(strcat(axlCurrentDesign() ".osm"))
5 @. m' ?' K% h0 G - )
, K& n. M% Y8 v$ ^/ {2 y0 c - ("SHAPE"; d7 R5 K. h& @+ y' X
- crete_device_run(strcat(axlCurrentDesign() ".ssm"))
9 H5 Z. J( Q/ f+ D; V - ). o# A, h6 _. h* {0 q! t2 j+ ~! f
- ("FLASH"& G. \6 f: q s; }
- crete_device_run(strcat(axlCurrentDesign() ".fsm"))
+ T6 `" H3 C! l* b( Q6 c2 N, e - )
9 t$ u7 b+ V1 d1 f; b7 m( h - )
7 T. h2 \' z, ?& D* ~' Y - axlShell("replay \"./create_device.scr\"")
/ V) F! N$ _& K7 K; ? - axlSaveDesign(?design axlCurrentDesign())
# I8 N" X) ?+ S, {6 B/ E; ? - axlShell("unset noconfirm")* x5 t: O- R0 {/ I1 C, m
- )1 v! C' |8 J' a: C4 c; N
- ; M! T5 X5 T) F- O* C
- defun( crete_device_run (fileName)1 n& P6 A ~$ w/ k) [1 n
- saveScript = outfile("./create_device.scr")8 X7 a6 ]' d, ^9 O# B
- fprintf(saveScript "scriptmode +i +n\n")1 ~9 |( Z1 K, C* I/ r
- fprintf(saveScript "version 15.51\n")
* Y) J& I# j. K8 l5 } - fprintf(saveScript "setwindow pcb\n")
/ d! P4 @. [& ]3 u - fprintf(saveScript "trapsize 666\n")2 j! y+ P1 T# `7 O! N2 E
- fprintf(saveScript "create device\n"): p+ q7 ]: x) G' a: `2 e9 w w
- fprintf(saveScript "setwindow form.crdevice\n")5 z! N s B1 `3 L% P& D! b) p9 _
- fprintf(saveScript "FORM crdevice done\n")
1 C+ X0 e- H5 s* i$ Q( R- i' l1 p* U - fprintf(saveScript "create symbol\n")
" `2 {; t3 R, E) b# `3 F - fprintf(saveScript "fillin %s\n" fileName)
( X' y- T, v: ]. ~ - close(saveScript)! n3 i% e/ {; b% a! r
- )
4 `5 g& }- g! \5 ^ B1 ], f3 c
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:$ B3 N% V, Q8 G# j, L
1.执行命令:create_device$ T {3 E* x k- J
可导出当前器件封装的焊盘、DEVICE、SYMBOL
! A3 s1 a/ y. ~4 g+ S/ y! P8 l3 J& R
2.执行命令:create_device_batch
% @: W. f* N8 ]! }: Z: I可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL8 |. `/ e& Z7 ~7 e+ l4 x3 F! {
/ n* W% T: @3 }% o. r* c: f
. K: D1 ]* U a5 i
|
|