|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑
# \# a' R z) G: @" ?- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")5 a9 q- l7 s+ m( h) Z* G
- axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")7 i6 ~* V# k* C
0 q; _% x) s5 g# o8 F& l+ Z- defun( create_device_batch ()
" f# k- F0 K' }7 g6 k5 @' ^ - libFiles = getDirFiles("./"); ^: a: w S0 D9 c; R5 B/ T+ M
- draFiles = nil
) k% Q0 @) S- A) ?3 K - foreach(libFile libFiles
2 ]' y( @1 P7 b# I8 E - when(car(last(parseString(libFile ".")))== "dra"- D! n' M9 M" h
- draFiles = cons(libFile draFiles)
9 U7 e% p$ ^6 @" H - )! p6 a4 S1 j' t
- ), f/ p2 r3 R1 K9 c) I
- foreach(draFile draFiles
4 n" E5 q/ T+ w' I/ O% v - axlOpenDesign(?design draFile ?mode "wf")
2 y+ j0 J3 i7 s6 V2 n/ I0 ~% \9 n - add_value_device()
) |* I' d9 e% u6 c2 [, B0 o1 Q - );end foreach + \; V1 a/ Q% E5 c' z7 Q
- axlShell("unset noconfirm")2 q) L" y8 o' k8 W
- )
% {' e' G4 u7 S; l - " L- }3 P$ h6 P" D6 n Z7 o C
- defun( add_value_device ()# ]2 u, J1 z# V# Y( f( R# ^0 h
- axlShell("set noconfirm")
t+ m0 d( l' e) R( }6 G: v- { - designType = axlDesignType(t)9 c2 E. w e. V) E; t: y& V
- case(designType# {) z+ U ~/ r4 Y ^2 { i
- ("PACKAGE"
' C* g) T9 s/ s( ~, ]2 D" e - crete_device_run(strcat(axlCurrentDesign() ".psm"))
( K* ] t# w: P - axlPadstackToDisk()
( W8 c$ z* A) G - )
( A X) l/ U& c: x. g D1 E! l - ("MECHANICAL" ' u- S% `, k5 ~ d r6 F6 f8 i
- crete_device_run(strcat(axlCurrentDesign() ".bsm"))
+ m6 g$ N' g5 p: z- T3 `- T: u' i - )
/ N% v& L% o8 g - ("FORMAT"
9 S/ b) D! d" q" o% X. G' z - crete_device_run(strcat(axlCurrentDesign() ".osm"))) y1 l P+ k) ]
- )
D: m4 d6 I+ U' _. a - ("SHAPE"
# k) d1 o) g6 A2 a6 [ - crete_device_run(strcat(axlCurrentDesign() ".ssm"))
; {. I9 ~3 p, W' W7 } D: f; @ - )
9 g1 ^; X$ P5 y - ("FLASH"* P- a) w. S @( \7 A! k: S; @
- crete_device_run(strcat(axlCurrentDesign() ".fsm"))
4 B' O) [+ u7 k) L6 ] - )6 J0 o1 |; j; u3 e
- ) 5 L% I. e1 f- V! g" [1 y
- axlShell("replay \"./create_device.scr\"")
7 x7 p- J$ u# a1 q1 L3 Z - axlSaveDesign(?design axlCurrentDesign())
5 N9 }( |( F. v- f - axlShell("unset noconfirm")
8 R1 ?. @6 i9 m* p - )) k( J2 k& {9 B. @# s7 A0 z, N9 S
! H! T7 y. ^- G% P' S- defun( crete_device_run (fileName)
# z" E# ^. i9 i' } - saveScript = outfile("./create_device.scr")
. h. O3 O+ r" ^ G3 X; k! E+ H - fprintf(saveScript "scriptmode +i +n\n")
) R+ F1 c' q4 X- H p - fprintf(saveScript "version 15.51\n"), R* {/ P6 n7 m: I( _- w- r1 a
- fprintf(saveScript "setwindow pcb\n")4 S5 b2 k) Q0 U i) i4 N: ^/ F
- fprintf(saveScript "trapsize 666\n")
0 ?, B# X9 q$ Y8 e$ E0 K - fprintf(saveScript "create device\n")
2 R. M3 O. p4 P( M) ]* ~+ x - fprintf(saveScript "setwindow form.crdevice\n")
/ \+ t% c6 H% i" C - fprintf(saveScript "FORM crdevice done\n")
" `2 u; g1 Z6 s3 o* a' X - fprintf(saveScript "create symbol\n")
* O8 M! J1 x2 O$ O! O - fprintf(saveScript "fillin %s\n" fileName)
/ D# ?2 c6 h( |5 r - close(saveScript)
8 h* C# K& \5 b- v1 v! G3 @. S - )! {8 y+ S1 J/ ~% h) C- p5 A
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:
4 O$ U$ G& ]3 @* ]* R1.执行命令:create_device/ P2 v! K7 ]% O
可导出当前器件封装的焊盘、DEVICE、SYMBOL5 M4 ?( \, z% e; R) F; Y
2 D+ Q: o3 J4 {1 H% R
2.执行命令:create_device_batch
: O! v' [9 K& A' B# O5 f可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL
7 A# h) \$ u" j# I9 s1 X3 t. I7 J, H4 l4 ^
7 b, z, z _/ h5 I2 W |
|