Chip123 科技應用創新平台
標題:
抓了一個修改via size skill file沒有效果, 請高手指點 ...
[打印本頁]
作者:
motofatfat
時間:
2010-10-24 07:26 PM
標題:
抓了一個修改via size skill file沒有效果, 請高手指點 ...
如題:內文如下
- [8 P$ G& A! R }6 X5 m
procedure( Main_Modify_Fun( )
7 g) `3 o1 H/ i7 ?$ K) Z+ f
prog( ( SizeField LIbField LayerField FormId )
7 v2 y) t% H: @+ s8 `+ ~
5 P2 @, |% t5 M
Size = hiCreateFloatField(
4 _, C) a: ?' D' u6 U- [
?name 'Size
% c" {* S% k1 _% u
?prompt "Size Offset(+/-):"
$ S" L, E8 H0 J/ F
?value 0.1
, H* |# m% _. ^/ ^
?defValue 0.1
& u, y$ A1 ^; c
)
: P4 e6 P! K' s( p( f
3 `7 W t6 E# s* U; Q9 X6 ~; W
LibName = hiCreateStringField(
; M0 f# X5 V& p5 H( c5 n- q( U2 w
?name 'LibName
1 o$ f4 a# V4 D+ j+ W. f2 A* p
?prompt "Library Name:"
. T( K- n4 a# _$ S; }
?value ""
/ z9 a1 P* s3 r3 g L
?defValue ""
4 D! [: P1 C, c
)
$ L ^ b+ l) ^
; O- n( ]; M5 t6 O& y! R
Layer = hiCreateStringField(
$ Z9 e/ \* \1 ?- @) e
?name 'Layer
8 ~$ [' P" g$ [ l: I6 H
?prompt "Layer Name:"
: Z& W" w# ~0 g6 Q5 n+ `# I
?value ""
( E' e7 ]- {8 f3 q6 ~% B
?defValue ""
# W' C2 ?* W& l/ ~
)
; C) j, T: e! t6 B
7 r/ j. r6 `3 I
label = hiCreateLabel(
1 \ u2 l. i/ j* t0 S
?name 'Text
4 @& d' i: e5 u' s' t* Q! u
?labelText " sizing via "
3 {9 i! Q' y2 V
)
' f1 W/ y) S3 c* V" k
' f0 @0 j9 r0 _' p
hiCreateForm(
$ b! i7 J+ b8 w5 I; ?
'name
, w8 ^: u1 E6 A. @ S) u! B5 T4 H1 k
"Modify Via/Cont"
/ j$ I5 h; } o l
"Modify_Fun( name->Size->value name->LibName->value name->Layer->value)"
7 y `% B5 [% J8 M% ]2 ?7 i
list( Size LibName Layer label)
2 @ c- S: @! n# w5 p
""
$ C9 ]) r5 [) h% ^, S
""
- _" G* `* r/ k6 Y/ ^: Z M
)
& Z) X& ], ?' J5 l8 R
0 A% t4 }! h& S5 b; ]3 S
3 S( g, r; |; Q% T
hiDisplayForm( name )
# \- q7 l) q$ O& t; Z& `
% B: P+ h% J' t; ]( U% x* I: l r5 M
) ;prog
L7 ?2 n; M5 x
+ F/ E# o4 J! ~! ~$ @1 X
)
" P- O6 `. a/ L1 ~, ^ Y; D
0 }" z, _: [/ D5 b( F& m' c6 U+ u- i
) a% b$ Y# N% A% {5 X
procedure(Modify_Fun(offset LibName Layer )
* q0 `) c1 Z' v9 G& b; }
prog( ( cvId ObjList one two Cells LibId Shaps ll_x ll_y uu_x uu_y
" `& {$ w: G7 q
ll uu )
: ?+ \1 d8 Z; |+ z- Y9 E; L
! {3 D! ]/ C+ C6 X5 ^
LibId = ddGetObj( LibName )
: u) E# Q4 z5 d9 s( ]
Cells = LibId->cells
" [! e* d! o" g
; w2 J' Z, b: p0 {/ x W
foreach( one Cells
% R* W3 K9 I0 u/ h F1 w) Q
cvId = dbOpenCellViewByType( LibId one->name "layout" "" "a" )
, q( t" {+ ] V- h" W8 t
Shapes = cvId->shapes
4 }( T8 @. s" a8 w m5 G- D
' X4 w1 p1 O R* v ~
foreach( two Shapes
8 `. l. c0 _; ^( }2 _* W8 G
caseq( two->layerName
5 h. s: b5 i( T& B
|7 X: H& A# |( x( L* r
( "Cont"
+ V5 R: }- ~& R: D& E
+ B; S, @8 ~1 Y
ll=lowerLeft( two->bBox )
+ J) [; H( ~, l) S h
uu=upperRight( two->bBox )
( l; D9 R+ e$ G% i% P: r/ X$ A5 u
" s2 f" Y2 G. t
ll_x = xCoord( ll ) - offset
|7 A8 j! V0 T( J9 v) o- W( W
ll_y = yCoord( ll ) - offset
8 g8 j" e2 j% h8 I! U/ z" N. H
5 T$ A" d) B. w1 ?9 ?
uu_x = xCoord( uu ) + offset
/ l& v4 B' o: D9 P
uu_y = yCoord( uu ) + offset
3 D$ ]# u m6 H8 Q3 ]
! _& s; V( Z P4 D0 h" {* f6 ~9 N
dbCreateRect( cvId Layer list( ll_x:ll_y uu_x:uu_y ) )
* M' k+ C& F# s" u `
dbDeleteObject( two )
2 b( s! G6 N+ J3 z% M4 l* F
& G6 l, m. ^3 a' {2 S7 e$ b) C
printf("%s------> ok\n" one->name )
2 }7 [6 ~3 A) c% Y$ {4 T
" |+ g1 k" |" L# P0 Z
) ; end Layer
$ S' h( f! ^, l, N! z9 t9 }
# U$ w2 t( k5 O
) ;case
, a8 i+ U- ~+ L, Y4 E
( Q* K5 J: f! m, b
) ; foreach two
. J0 i# }* N8 W0 u2 P6 ^9 h
4 d2 d5 K6 ]: T Q+ ?/ c
dbSave( cvId )
: N" l8 R" K0 J4 j# j* V( |/ _
dbClose( cvId )
9 v" ^; v* o! U h- | }
1 S8 V7 U" G. l
) ; foreact one
7 [1 G/ z K& ]# |- y
4 |( D8 g' _% J& Y/ g
)
: o2 k! [/ h `2 g6 J8 D
);proc
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com.tw/)
Powered by Discuz! X3.2