|
本帖最后由 這侽孓譙悴丶 于 2019-4-30 13:01 编辑
$ X. A6 f& S* f: z- axlCmdRegister("create_device" 'add_value_device ?cmdType "general")
/ `4 `) n a7 t+ U. e - axlCmdRegister("create_device_batch" 'create_device_batch ?cmdType "general")
8 C- L5 I: X T
9 N, O4 b) b+ C& c" I3 }1 p. M, c- defun( create_device_batch ()
$ f. [5 @8 t0 e; m2 C - libFiles = getDirFiles("./")8 U; o$ D" }9 m7 L. `
- draFiles = nil! y% b! f- {5 L# w4 n$ Z
- foreach(libFile libFiles# ~ k z' Q8 \8 b, {. u
- when(car(last(parseString(libFile ".")))== "dra"% c- R% k1 x5 |2 I
- draFiles = cons(libFile draFiles)7 A( y- `& S8 @; ^/ q# n2 W* Q
- ): ] |3 Y! g" [2 ^* c7 b
- )
n7 O3 x% u! m. [( u. T - foreach(draFile draFiles
( D. e$ N1 D7 d5 s5 a) T - axlOpenDesign(?design draFile ?mode "wf")6 ] l* y3 V% M! I" R# Z/ Q9 i0 \) K8 [
- add_value_device()) @8 l% ?& ?. T; b( \" B- h
- );end foreach 0 ^0 }. ^5 A, k: X$ L
- axlShell("unset noconfirm")% T# B) b1 C u0 j; y
- )! i# _! z; G5 @8 k- W/ C1 Q) y' k
) {% K; v5 N R1 Z+ y2 k, o- defun( add_value_device ()
& @, |1 p0 A' h' ]8 M: Y: Y$ g - axlShell("set noconfirm")
, s1 `) ~( ]1 Y4 y - designType = axlDesignType(t)) t( \+ [7 P/ D, U) ~9 C: L
- case(designType
1 o0 @' q; X$ m9 V# Y0 { - ("PACKAGE", {0 t# O# `- d
- crete_device_run(strcat(axlCurrentDesign() ".psm"))
6 Y0 _1 h) i; ^ - axlPadstackToDisk()
+ o9 i+ [$ R7 W/ m. W6 [5 |5 \ - )+ _- b& z( C# z* F
- ("MECHANICAL" / o, X+ q0 P' U. h% H
- crete_device_run(strcat(axlCurrentDesign() ".bsm"))
) v! W) H, d9 ? - )
% u7 p8 I! C& ]: ^, a3 I% ~: k4 U - ("FORMAT"! ~0 Z9 `- a3 m+ g' J- U
- crete_device_run(strcat(axlCurrentDesign() ".osm"))2 j O9 k* r0 m/ t# b7 n c+ x
- )
1 g1 y- ]! r! V! b' M6 O - ("SHAPE"
7 _+ }! T8 m- X - crete_device_run(strcat(axlCurrentDesign() ".ssm"))" O+ [. f" i& W8 @2 t
- )3 W5 X* A. i9 g' O/ b2 b( q
- ("FLASH"9 T( u6 s: \" c2 _5 K
- crete_device_run(strcat(axlCurrentDesign() ".fsm"))+ g. N$ T! [( a. s3 z
- )% e* s, T6 G$ ]; c- g p
- ) & ~" Q* P3 p2 b
- axlShell("replay \"./create_device.scr\"") " o" T/ K* l; o& k9 s
- axlSaveDesign(?design axlCurrentDesign())
7 |3 W% B1 o8 Q. w' C* w7 k - axlShell("unset noconfirm")$ c6 b7 j$ _+ c. ^
- )0 P# ?" Z' M& ]) k" u* L) A: F5 ~/ _
0 Q* N3 `. o* m- defun( crete_device_run (fileName)
& U$ L7 E, X" c, e) e - saveScript = outfile("./create_device.scr"): s* [: y" Y% Y6 n) I& P
- fprintf(saveScript "scriptmode +i +n\n")
9 W. g" H' r( b. g- ^6 k+ u( Z - fprintf(saveScript "version 15.51\n")
: Q$ k, L7 o, d2 J& g1 e - fprintf(saveScript "setwindow pcb\n")
+ x7 p. G3 d. M4 a( o - fprintf(saveScript "trapsize 666\n")9 @1 d' [9 ?2 |, r
- fprintf(saveScript "create device\n")
" ]/ r( S6 R' S7 s7 | - fprintf(saveScript "setwindow form.crdevice\n")8 M; S6 c$ i9 E5 z* ` C: Q
- fprintf(saveScript "FORM crdevice done\n")8 u8 a4 \! ^, y
- fprintf(saveScript "create symbol\n")
0 @" r+ w' @4 _8 c: h - fprintf(saveScript "fillin %s\n" fileName)
4 q7 L3 g1 j+ @2 i; a% ]% W$ G - close(saveScript)% q- l, U; r0 Q( [" |* A& c
- )1 K1 B7 q* X3 `6 Z1 J
复制代码 该SKILL可以直接将器件封装的焊盘、DEVICE、SYMBOL一次性导出,device、symbol名与封装名一致。导出方法:
( |0 D5 p5 c* l1.执行命令:create_device
4 J" G4 ~1 j, U可导出当前器件封装的焊盘、DEVICE、SYMBOL
3 B5 ]" D* P2 z* M6 e1 r; E& S7 L; b1 j2 V9 J3 ~
2.执行命令:create_device_batch9 ^8 z; O# @& ^5 n7 q7 E6 ?
可导出当前封装目录下所有封装的焊盘、DEVICE、SYMBOL
9 N" G' @5 E) B2 `' |& U z( X. ]7 |4 j" Q1 O0 E5 q
7 g6 B5 a# |+ b7 |# r
|
|