|
如題:內文如下
; {0 }6 O+ F p- ?9 N4 W' |* mprocedure( Main_Modify_Fun( )
& ]/ [3 R$ A- Q" ~6 i( n prog( ( SizeField LIbField LayerField FormId )
9 k, w8 Q& k6 q( z& }9 `: O
6 _. V8 [6 P9 Y5 k5 E Size = hiCreateFloatField(
. t' L& Q' `: q9 b, h ?name 'Size R D% X( _/ K Y
?prompt "Size Offset(+/-):"
+ Y4 b" d7 z+ Y* \# t K3 j ?value 0.1
3 X) k' K% M# h; ]7 |# f ?defValue 0.1
! [0 I$ [! X: T/ r( _# @ )
0 F% l1 Q* ` X* `1 X' ]9 R7 ~1 L
LibName = hiCreateStringField(
2 m- g1 l3 v# x ?name 'LibName
+ g8 J. g; o( j. Z' E: h( e ?prompt "Library Name:"; a5 e, Z& ~6 B7 d# |$ m5 r
?value ""
. `, i3 F, I: S! k! h# h ?defValue "" T! ?# x& x( U: k, {' T) Q
)
. O7 z% }$ W. E
( j, Q# d' h: g- c2 Z Layer = hiCreateStringField(7 H1 b& t8 a2 F
?name 'Layer
( v* e. h4 x1 x4 E ?prompt "Layer Name:"5 h0 Z# b( ?) I& o7 l
?value "", W9 I/ @: L& z, [% ^0 j! T
?defValue "" o6 d7 |4 d6 [" |
)* B9 J, H6 j7 o# o& f) W" X
. b8 M' }8 u: p0 S5 |0 [: s1 y
label = hiCreateLabel( & X: v' A7 P s$ ~! c: s* [) L
?name 'Text
* [2 ^6 F* Z }* M% \! h0 P ?labelText " sizing via "/ h& G. a4 ?$ m7 J/ { E
)
% d7 Q' \2 D* B( l( `
. x3 u4 f9 g: o& T4 ] hiCreateForm(
; G% a$ o9 z$ y' Q% J 'name
9 U2 R! Y: y9 i "Modify Via/Cont"1 }' _( w4 i4 }
"Modify_Fun( name->Size->value name->LibName->value name->Layer->value)"
) |5 I# K( I0 v$ y* K1 O3 F list( Size LibName Layer label)
: @, _3 t' k* U, h, U "" ) K4 }. H2 f+ @3 \% @% w, N- t
""
) i- R' Q- s5 a% _2 ? )
; p) Y' P4 `- Q' b9 ]% u4 Y$ @
) B- G: J5 F% y! b5 r" r$ f0 \9 ~$ c9 F* r, ?& ~, ~
hiDisplayForm( name )
3 f3 @. {; H) e) f1 g2 Y; g# S$ Q7 g7 Q% I$ w8 ^3 D1 T" x
) ;prog3 |$ l8 H* v' i0 }5 P
3 k' E( ?& s9 P
)
% O0 v( @: U7 S# U/ T! P5 V+ ~+ M1 I& D( g- X1 g2 O7 k- Q1 n9 A
/ G5 I- A0 f+ Q' f
procedure(Modify_Fun(offset LibName Layer )' q9 F6 k2 V: B: _1 ]+ c' k
prog( ( cvId ObjList one two Cells LibId Shaps ll_x ll_y uu_x uu_y; w5 V$ c# b$ i9 P3 T! n( V4 E
ll uu )8 u# g [$ o. t7 o; t) g) o
& T' L4 e! `$ t/ k3 g& _8 L0 N LibId = ddGetObj( LibName )
, o( Q* u9 a( d) p- Z Cells = LibId->cells2 t) z+ D' k# R7 O% G# N2 |6 a
" \5 A9 U( Z7 A6 V# U0 e
foreach( one Cells + d L: u7 d/ Z1 N: K( U3 s6 w
cvId = dbOpenCellViewByType( LibId one->name "layout" "" "a" )& S4 [+ j9 }* \" v9 U
Shapes = cvId->shapes
, G0 ]0 C# q% J) R* b' p
/ `2 J4 g" W% Y foreach( two Shapes # y5 t4 r# \0 J2 O" A% N
caseq( two->layerName$ \4 }) m1 ~) E! ?6 m
% W+ h5 k. V% ? ( "Cont"
, r% i4 {+ o3 f( @* B9 ~9 _; {+ N2 ^- K
ll=lowerLeft( two->bBox )
1 r# }( p% q% m/ s% o: n, F2 [ uu=upperRight( two->bBox )0 R% G+ B; V. o6 e. |9 Z5 z6 k
7 P0 M' r8 n- j$ b7 m% H( [ ll_x = xCoord( ll ) - offset
9 {9 N( {! q: @/ ]( c8 o ll_y = yCoord( ll ) - offset) {5 E) K7 X( T- E: g+ K6 k
& l8 I3 s7 G* P4 w uu_x = xCoord( uu ) + offset
" T# |& C0 K" C" Z uu_y = yCoord( uu ) + offset( K- n: n7 r3 g& |
; s6 @! I) _: d. K" r% M3 |! l0 W
dbCreateRect( cvId Layer list( ll_x:ll_y uu_x:uu_y ) )
0 c1 T/ F" J8 z- _ dbDeleteObject( two ), |. b+ f; t9 ]; y3 i( Y0 k
7 L. @) t$ K: Z( B" _
printf("%s------> ok\n" one->name )( B% c4 m2 `* E5 j: Z5 F7 K* F
. f$ L$ R0 ] l2 f( K0 h3 v0 Q7 ?3 T ) ; end Layer
8 T8 }1 l: s8 }9 E% O; J& w( C) B; J: Z; N% X/ h* _, `+ e
) ;case! h' ?2 K/ }8 b% A" H6 p: J, f
% @- H+ A1 C2 o ) ; foreach two8 m$ y) }' C6 n, K
2 P" q5 X# w) N, n$ c! ^ h dbSave( cvId )
& V1 w& @- x) ]5 N% n( X, ^! h dbClose( cvId )# G# b1 B, [0 j8 w4 a
^2 d4 l! }7 K) @
) ; foreact one
4 C/ J9 |* Y& U/ c$ ^. o: u( d0 o: N& D* m& G# F8 K
)
) s' L* i5 B+ [( D1 U3 C);proc |
|