|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑
6 k8 W9 H* s5 ^5 G7 }3 f7 {5 H- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")( J6 k4 K/ C( F6 \1 W) }: x
- axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")3 x2 a# B \4 A% s
1 w1 z2 K, D$ b5 c6 `3 E& X% g6 L- defun( create_device_batch ()
9 K7 }5 Y9 U ?( Z3 k& R - libFiles = getDirFiles("./")
! z6 s8 l6 I$ g4 J% z - draFiles = nil# O1 L7 h+ }* Y0 r$ O7 ^* @9 G* w
- foreach(libFile libFiles
, K9 E: ^) l7 t - when(car(last(parseString(libFile ".")))== "dra"
0 T( W5 H/ H1 D0 H n - draFiles = cons(libFile draFiles)
% V% v( t" M8 r9 ` - )
9 @0 S+ p/ F0 i e - )! `1 j$ ?: E5 n$ K! r
- foreach(draFile draFiles
! Z3 l; Y# g* m& u# x - axlOpenDesign(?design draFile ?mode "wf")0 J9 X8 O7 R6 X8 s7 ]$ @- g% Q
- add_value_device()5 _, Q9 n j% ?
- );end foreach
0 Z# ?2 s9 n# q( V; o: v* ^ - axlShell("unset noconfirm"); \7 a9 B% f) |- G
- )* r, Q9 A# F, F# b" k# c7 c% D
' \' ^; u$ c0 ^+ t: g. x. b2 _- defun( add_value_device ()1 f) J; @# {6 s7 @1 ^9 t+ N+ Y$ E
- axlShell("set noconfirm"); i+ r) z& H5 D( P; T
- designType = axlDesignType(t)
4 {: S3 b9 B% V3 c - case(designType
) f; `$ }+ D8 Z- f) l7 i, u& x - ("PACKAGE"
% J+ q( L1 Z3 `9 E. o - crete_device_run(strcat(axlCurrentDesign() ".psm")). l1 u9 q9 n# { Y3 q
- axlPadstackToDisk() w [7 r; V. [* u6 o
- )
9 z6 G4 V5 M1 K5 O* v" j% ]% y - ("MECHANICAL" 8 J0 Y- }: l9 F& X4 \$ p' }/ k
- crete_device_run(strcat(axlCurrentDesign() ".bsm"))
: N) j3 v h( n' R& J+ P - ). d9 n9 ]: o$ H& ]5 w
- ("FORMAT"
/ S9 N6 b6 {# F( s, E; E _; B - crete_device_run(strcat(axlCurrentDesign() ".osm"))- P" |! Z% T3 C6 O: [. |! A* E
- )6 p$ ]- l& Y& [% ]1 ]& N' n
- ("SHAPE"1 i6 d# n5 J; n2 x. K$ f7 ~
- crete_device_run(strcat(axlCurrentDesign() ".ssm"))+ k* q) M7 ^2 q2 U. r, Y8 y' U- {
- )
/ v7 V/ a" r, I" B& {1 [0 J - ("FLASH"- C. v: X: n+ e7 j+ a4 h
- crete_device_run(strcat(axlCurrentDesign() ".fsm"))
/ u+ g1 e# a( h: e - )
' j. q0 N) E4 s/ S9 {0 ]' t8 y% A - ) * S2 {, W( A: ~+ Q, A- I; B
- axlShell("replay \"./create_device.scr\"")
9 ~6 w# R9 o( M9 C& O9 n - axlSaveDesign(?design axlCurrentDesign()) / J, @* Q& X' [7 h6 p4 s- j
- axlShell("unset noconfirm")
6 \0 v7 u8 f6 N+ j+ }3 v* v) i J1 k - )' J: b$ f8 ^0 R# Z
- 3 Z' a0 V& R6 L6 y4 H0 K
- defun( crete_device_run (fileName)
4 q' z. h; x, o J$ Z - saveScript = outfile("./create_device.scr")
+ C7 \; h- y% f$ k4 K/ `* ~/ F - fprintf(saveScript "scriptmode +i +n\n")- l# \6 y m0 v
- fprintf(saveScript "version 15.51\n")
1 y3 M* a' a2 {1 J4 D - fprintf(saveScript "setwindow pcb\n")
1 Q: M& W, v7 Z7 Y0 A1 s- N - fprintf(saveScript "trapsize 666\n")4 K& w8 T3 C( s* I
- fprintf(saveScript "create device\n")/ B! I. J7 _: f- R4 z
- fprintf(saveScript "setwindow form.crdevice\n")
; ^" E% F. v9 D- S. @7 k3 Q _ - fprintf(saveScript "FORM crdevice done\n")
% s6 y. a; Z- Z6 O* \4 Y% p - fprintf(saveScript "create symbol\n")
0 f1 A; b7 M9 |4 p+ J5 d - fprintf(saveScript "fillin %s\n" fileName)( K: f9 S3 ]. x6 a
- close(saveScript)' P/ u ?; O8 @4 U% z2 k
- )% V: P7 T( S2 T; B3 I/ e
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:- B2 p+ q& _; G e9 S. d
1.执行命令:create_device
3 |) F; @5 ?1 W8 G可导出当前器件封装的焊盘、DEVICE、SYMBOL
; D2 j6 p. ^- t0 n% u2 ?6 q' r Q6 F/ y! V- n: k
2.执行命令:create_device_batch
- ~4 b5 W8 a3 q% r8 h) E可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL
' v' O3 [/ L& `4 M0 Y1 Z# {) A4 p+ c- ]$ q
n- [+ G C& Y$ A- [
|
|