|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑 ! L5 T% t. |! w/ ^
- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")
- D) E- b! a! p9 a - axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")7 }! g6 Q# o: _* h! ~; X
- + m' u& ]4 b* H. n2 a
- defun( create_device_batch ()
5 H% {4 C& L' `7 q' ~& N; h. S# d - libFiles = getDirFiles("./")
8 ]4 D0 P% F! |& ?8 @1 }# R - draFiles = nil
0 r( d! A0 J4 e* L6 m" w% ^( Z - foreach(libFile libFiles
" K& r7 Z( h8 ]4 N- O - when(car(last(parseString(libFile ".")))== "dra" `% f' l7 Q, k6 m
- draFiles = cons(libFile draFiles)$ W3 @. @% u0 c! ?; a
- )
3 T; _# k1 r+ i) _: }% @ - )( D) V$ s! m; e$ h6 r1 l
- foreach(draFile draFiles
) F# x! Z5 g& E; X6 G - axlOpenDesign(?design draFile ?mode "wf")
* e# e# r" Y6 K4 Z3 g9 v - add_value_device()
) {, x2 K% b) m - );end foreach ) w' |% q) ?- U8 J: ^# L4 e/ x
- axlShell("unset noconfirm")
( n; e% x# B5 }: z" [! T - )% q3 J9 x7 s) M: [3 Q" q
- & q. T& i. \+ v) L# \( |, a
- defun( add_value_device ()
4 o Y! i& h$ ^$ l! u: o! u ? - axlShell("set noconfirm")0 R% T% X; y& w/ R7 P0 u7 U: Z
- designType = axlDesignType(t); h% U7 k& X1 W
- case(designType' b5 X- r( I9 x' Y5 R
- ("PACKAGE"
5 s8 ?& Q9 i6 ^6 K' _& | - crete_device_run(strcat(axlCurrentDesign() ".psm"))" ^- u/ @3 C) {9 A# U$ V
- axlPadstackToDisk()
8 {, \! `% n+ x" ? - )4 L, p2 w+ v) L
- ("MECHANICAL" & v- I& b; h3 i8 j6 V7 m* c
- crete_device_run(strcat(axlCurrentDesign() ".bsm"))3 P/ [( M3 ]8 ^4 B& o; f% B% K9 E$ ~
- )' D4 _6 P) D. L8 S/ s9 s* w
- ("FORMAT"
- J1 W. g9 B* T* T+ { - crete_device_run(strcat(axlCurrentDesign() ".osm"))8 G; Z# v. ], q$ P0 j
- )
8 w ? R* |4 B' d; K - ("SHAPE"2 n& \/ g% B" {* L
- crete_device_run(strcat(axlCurrentDesign() ".ssm"))
5 R; L$ P* T) K* K, \, } - )' w2 b& D* F2 F2 k- j
- ("FLASH"
' b0 u% q r- R* d7 T3 O - crete_device_run(strcat(axlCurrentDesign() ".fsm"))4 b- C3 c- I" W L/ e
- )1 a2 q& a \/ ]4 F* k7 B
- )
# i9 f A0 y, P/ F7 h$ Q$ J - axlShell("replay \"./create_device.scr\"")
' U0 h3 S& P3 W4 A8 C* {8 J' P - axlSaveDesign(?design axlCurrentDesign())
2 r3 N: s- z+ e9 s - axlShell("unset noconfirm")2 {3 Y. n6 ^/ z G* N# J
- )
+ K$ J# P ^; n$ } - 5 N; Q; i4 r6 F2 B& S, C2 v7 c5 N8 D
- defun( crete_device_run (fileName)
% l1 t4 C; L1 U3 p# s9 B; K$ Y0 N - saveScript = outfile("./create_device.scr")' g5 O' q d4 e9 \7 W* s
- fprintf(saveScript "scriptmode +i +n\n")
& Y" ]" m& T$ u( O - fprintf(saveScript "version 15.51\n")! H8 z& K7 |& Q# Z1 j
- fprintf(saveScript "setwindow pcb\n")
5 r. D* E6 g/ Z$ A/ F$ B( \+ L - fprintf(saveScript "trapsize 666\n")3 K" l# u* E/ ~
- fprintf(saveScript "create device\n")* b" B7 Y8 u7 X5 t
- fprintf(saveScript "setwindow form.crdevice\n")
& |$ E" m9 ^/ C- d6 u! W; D1 D" E9 x+ n - fprintf(saveScript "FORM crdevice done\n")
" N; U1 F4 J" J, ] - fprintf(saveScript "create symbol\n")9 L& e! w7 _( i; N2 D4 ? X
- fprintf(saveScript "fillin %s\n" fileName)
; u% r; f# b9 y$ K - close(saveScript)- Z0 e; y7 M# D( d" G& O
- )
- i. q+ e( a4 Q7 S& E
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:! @2 O6 S* w/ O
1.执行命令:create_device6 d" b0 `) F3 D j# M' P
可导出当前器件封装的焊盘、DEVICE、SYMBOL
) `0 @8 B& A) C2 r T. y) k) S
: W8 M2 ~/ t$ L" s2.执行命令:create_device_batch
8 g1 L& w- x: @0 }% K! `/ Y可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL' L6 m1 z' ?/ h/ a. R
: p9 t& f1 d$ ~ z6 V* w( Q" p2 N r% s. F: B6 \
|
|