|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑
4 g7 C1 E4 x. u4 N- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")4 A: G0 v+ I, M5 y5 m- }
- axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")
- j' ?+ Q" ~2 P9 m& n$ }. Q: ^
4 l1 c3 d% }# P$ D; G& q4 _) s5 h- defun( create_device_batch ()
$ |0 s: f5 Z9 t! W* t4 F8 J& i* k" T# [ - libFiles = getDirFiles("./")& n1 h1 X; I5 d1 m7 k- `
- draFiles = nil
8 B @0 T$ T* c$ g6 t+ R - foreach(libFile libFiles n; A$ @* R- ^2 X: ?6 i
- when(car(last(parseString(libFile ".")))== "dra"5 y1 x- Q( N/ v$ ^7 ?
- draFiles = cons(libFile draFiles)
) Q1 y, a7 [7 ~& a1 v% G( T - ) f+ K! `: ]' X; s* \3 ~
- )
4 ?, L. R$ y1 z/ y$ L - foreach(draFile draFiles
, ~6 D" s; W& R( E) F" T! J - axlOpenDesign(?design draFile ?mode "wf")
; x1 m' E4 h, c, K5 |0 i/ a* W6 C - add_value_device()7 m! J8 Q7 O2 P. X4 V' O6 L# R
- );end foreach
; b9 c0 p W1 }! a3 w - axlShell("unset noconfirm")
( G# S5 U" s. s) b8 N - )8 J+ |! h; L: ~* E6 T
) b; b7 h$ Z9 H1 h- defun( add_value_device ()% E6 M3 A' m7 z' K$ h% _: t/ t
- axlShell("set noconfirm")/ j- C; [: r: ?# ?2 d$ \1 b4 M
- designType = axlDesignType(t)
/ H, Z# R8 V; K! [& m2 t6 S - case(designType
' ?# s, {. ?$ |2 [; q - ("PACKAGE"
+ w2 N' C5 m+ l3 K* k* y* K - crete_device_run(strcat(axlCurrentDesign() ".psm"))
# ]5 _* b+ \% h9 K - axlPadstackToDisk()
; T' \' i! z2 n; j! ~; b c - )
5 l4 `# |( n# o - ("MECHANICAL" 8 Z7 y6 M% w- y1 J
- crete_device_run(strcat(axlCurrentDesign() ".bsm"))
3 _% f! s) a* K9 W# A - )$ e+ x0 o9 c( D4 _' o- J- o
- ("FORMAT"
, X; O" v2 i! ^6 Z; I - crete_device_run(strcat(axlCurrentDesign() ".osm"))
9 `) v9 j' N- _3 e' t - )% Q& `5 |8 s# D8 a0 f
- ("SHAPE" ]7 w. _/ T: ~; ]7 U2 Z! ^+ J0 i
- crete_device_run(strcat(axlCurrentDesign() ".ssm"))4 U6 M3 T( m! v2 Q" o/ P7 e
- )3 r0 A+ \, w7 S# Y' q
- ("FLASH". y: k' v* u' A( G t
- crete_device_run(strcat(axlCurrentDesign() ".fsm"))
. G) ?7 a5 h; X# a0 | - )
0 J- k; h7 y$ l! X* R {4 I, Y! w8 ` - ) 1 h8 L* J5 e6 g$ H
- axlShell("replay \"./create_device.scr\"")
) p% b& |) f+ P8 x+ M - axlSaveDesign(?design axlCurrentDesign())
5 ^* M0 w4 \" J. a' G - axlShell("unset noconfirm")
( j+ R. s: _. O! R$ @- k. o - ) P; _* D! B$ v: T% T2 U# ?4 {4 Z5 l
# {2 V$ n- n/ z- defun( crete_device_run (fileName)* C1 Y$ |+ e% ?% G/ R- Y
- saveScript = outfile("./create_device.scr")! h8 Z7 ?8 E+ W$ h5 E/ O, m
- fprintf(saveScript "scriptmode +i +n\n")
& b3 D" \! {4 c( m5 U6 F - fprintf(saveScript "version 15.51\n")) T% ]( J$ ~- m
- fprintf(saveScript "setwindow pcb\n")
h6 E- U6 F$ M8 [7 j8 c. F7 ] K! h - fprintf(saveScript "trapsize 666\n")
* R% f" A* c" k1 M - fprintf(saveScript "create device\n")5 Y" A7 @ x- B) x3 F; |! n* f
- fprintf(saveScript "setwindow form.crdevice\n")
+ y& A9 x6 n' \8 Z$ T - fprintf(saveScript "FORM crdevice done\n")
- q& W2 m& p9 ? - fprintf(saveScript "create symbol\n")
! m+ u6 j5 T) l2 A3 D) }0 G" K - fprintf(saveScript "fillin %s\n" fileName)0 o( V" J) \7 d, T* R: i
- close(saveScript)
& R' O. X' A4 [: [5 K) j - )" ]! ^ t; r9 \" I; y
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:0 ^' F |. B8 E$ M% N9 c1 o, A
1.执行命令:create_device8 _& p- E; A' e- N
可导出当前器件封装的焊盘、DEVICE、SYMBOL
5 Q5 g# ~/ [$ U5 }. C% m# \
9 M0 x% n3 [; z4 z2 ^, Y# Q! y2.执行命令:create_device_batch0 o9 `( T* r$ z0 G. y$ o' E+ Z
可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL f/ l; j0 L4 h; o) W# y0 s
* D8 ]( ^( \- f* G2 C
3 ^ X O. \* @* u$ [0 j# G- c/ v
|
|