|
|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑
9 y/ F0 j& `4 X& q% p) ?- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")# z# l' e* X( h9 p
- axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")
; ]$ }7 {- {. ?. D) D( n' n - ' ~# k: f+ J; f0 q, b w# b ?8 F
- defun( create_device_batch ()+ C5 s, Q- N6 |) K8 T
- libFiles = getDirFiles("./")
; y+ F; T* G& X S5 ?, b) B - draFiles = nil
6 P1 v7 Z8 y" C: `; j$ K: E - foreach(libFile libFiles
0 y: _$ ^0 ?6 h( R H. `: H# S - when(car(last(parseString(libFile ".")))== "dra"
, |' Q+ G% T d$ \) P - draFiles = cons(libFile draFiles)- b$ R6 Q k p" I( {
- )
, ~4 u" K/ H! e( Q$ s5 u - )
4 _* \9 }6 r, m0 Q7 n2 ]; Q - foreach(draFile draFiles0 a( b3 v+ Z8 r H e' o4 v7 S1 L
- axlOpenDesign(?design draFile ?mode "wf")
% J- \, h- {: B+ J2 W5 D4 @3 j% h - add_value_device()
4 V0 G% F0 Q7 |, ` - );end foreach
+ m7 d' |. \. a6 T2 s5 E3 D - axlShell("unset noconfirm")
# a1 C' H: z$ Q. t: { - )& c6 u5 `9 r, ?' @8 ?4 ?7 e. l
- % b! n) ?) a. q( I3 h4 C& E4 B8 N) b
- defun( add_value_device (), B* V8 \/ c3 e! B
- axlShell("set noconfirm")
C _$ A8 ~( W6 V* V - designType = axlDesignType(t)
/ O2 N2 C1 m$ K; D. @ - case(designType
3 G$ c( H9 n- W - ("PACKAGE"0 J/ T8 v3 o( i4 T# i
- crete_device_run(strcat(axlCurrentDesign() ".psm"))
; d3 z g A# d - axlPadstackToDisk() h2 r7 p5 p% b, }( U
- )& f0 v3 Y( l. `) p+ j) S
- ("MECHANICAL" . D: z8 I S9 x8 x
- crete_device_run(strcat(axlCurrentDesign() ".bsm")): g. K r8 x/ L' j+ x* O* [
- )
& P+ Y& p4 p2 K - ("FORMAT"4 z$ u& j2 z% @% \1 z
- crete_device_run(strcat(axlCurrentDesign() ".osm"))
) i3 O) n/ Y8 C# J: D - )3 s& M4 U5 {1 H- Q! S
- ("SHAPE"4 b' F/ h8 w1 S; [# l
- crete_device_run(strcat(axlCurrentDesign() ".ssm"))
2 `3 @/ v7 e- s3 d" O4 P/ p - )6 }8 |9 P/ i! X. m9 ^8 n7 X
- ("FLASH"6 V( Q% e: n0 ~
- crete_device_run(strcat(axlCurrentDesign() ".fsm"))
$ d7 h n) ?$ Z: o$ x - )
! a: B$ ?3 k" i4 p+ q$ N4 y - )
, C: t+ e/ Q5 v - axlShell("replay \"./create_device.scr\"")
1 m0 j1 ~( E7 f7 U3 | I - axlSaveDesign(?design axlCurrentDesign())
9 P! g/ q% d9 Y+ L# ^6 S - axlShell("unset noconfirm")) i& [! z4 C3 P" L
- )- k1 `- R& P* x( S* y
& B9 b& ^0 |: ^2 U9 N4 y% P( b- defun( crete_device_run (fileName)
+ q. i9 m% k0 U, X& ^ - saveScript = outfile("./create_device.scr")
* ]* t% r6 Y- ~7 h/ H" Z' |7 e - fprintf(saveScript "scriptmode +i +n\n")2 y C! l7 h! x7 b G* q
- fprintf(saveScript "version 15.51\n")- ]" W( @1 ^& J ~0 c
- fprintf(saveScript "setwindow pcb\n")/ N1 E. A" Q* R% L( N, O" j- T2 p
- fprintf(saveScript "trapsize 666\n")) `. U' }' J2 z7 M2 z- W+ {
- fprintf(saveScript "create device\n")* l* [" Z# y6 D8 M- \
- fprintf(saveScript "setwindow form.crdevice\n")
1 v- |: x+ W$ t) {/ G5 k - fprintf(saveScript "FORM crdevice done\n")* ]* m; V$ x) i! P |! S; R
- fprintf(saveScript "create symbol\n")) P! {. E" A: ]
- fprintf(saveScript "fillin %s\n" fileName)+ M! H2 N# N: F L* \6 k/ k1 Z8 d
- close(saveScript)
}6 Y' x: X' I - )6 B! P |1 o; m4 h, T2 }
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:
$ z, S, q2 ?% l. ^, t( a1.执行命令:create_device
! I9 n+ j/ S$ }# J可导出当前器件封装的焊盘、DEVICE、SYMBOL
% w4 x+ H7 C0 w. n& B; L7 \ Q
+ t' a7 @7 Q3 J5 \! r% l' f2.执行命令:create_device_batch. z; H, v, \% R3 z- K( W
可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL
" Q& c- O& t9 Y! z8 {! g# d0 F; L- S% ?8 i% }
) F. ]5 y2 p$ S/ @, Y/ h |
|