Chip123 科技應用創新平台
標題:
一個sKILL範列,切4邊行的角
[打印本頁]
作者:
12345
時間:
2007-12-8 08:23 PM
標題:
一個sKILL範列,切4邊行的角
最近才剛在看SKILL,cadence的pdf檔寫的好爛,一個leChopShape試好久才試出來,這是我最近寫的,還有註解
2 T+ T# q+ N1 p5 \
/*
5 H9 o8 G) A# J; w2 A
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
( ~7 y3 H8 T2 p' F6 f$ T
作者:Y.P.LIN
5 X r; g) a9 Z
File name : CUT.il
7 j6 Z7 }! ~( R- j5 V+ T6 P+ S5 N3 M
POP menu Write by nfmao
6 f- P* i: l( v8 V
Date: 2007.12.11
, W# f" F5 U7 N, o8 X0 [; m
Ver : 0.01
/ C% i6 S3 S! V4 `
用法:在icfb,load本sKILL(例如 load "CUT.il" ),再開一個layout,選取rectangle(可複選),按滑鼠中鍵(會跳初選單),再選chop
8 Y' _* a7 d3 j
參考:雷奧星空論壇(
http://www.armbell.com/forum/viewforum.php?f=13&mforum=iclayout
)
: T6 b" ?1 \, p& D' V
:中国集成电路教育网(
http://www.icedu.net/Article/shuzi/houduan/Index.html
)
3 ?% Y9 Y% p. R. r1 ] P
:cadence手冊(安裝目錄下/doc/sk開頭目錄)
+ X- e" _) U- j: r6 }9 O$ t
注:本SKILL還在開發中,目前只能切RECTANGLE的4個角
% T& G7 ^( D/ q, @. i* m8 ?4 G5 K8 N
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
! G# ^9 Y1 c4 k( D* c4 ~% z
*/
0 p" S0 s4 x: l4 G6 g# M
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cut矩型的4個角;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
. J( k8 W$ j$ |+ h: b8 m3 s
procedure(getXY(xyBox) ;取得四邊行CUT點座標的程序
8 h2 F' Q7 V, z" b# N* q. [
d=0.5 ;切的距離(自己設)
0 Z2 g( q3 w3 Y/ _
x1 = car(car(xyBox))
+ i4 `2 N3 n! K8 h" h2 {" H
y1 = cadr(car(xyBox))
u- |# Z6 \$ C" f4 f9 @
x2 = car(cadr(xyBox))
_* c- g. F! ^5 Y- o
y2 = cadr(cadr(xyBox))
- q. \6 o- Z- ]$ h/ J
cut1=list((x1:y1) (x1+d:y1) (x1:y1+d) (x1:y1)) ;cut lin1座標list(是一個封閉cycle)
' `2 }8 X+ C3 T+ ?5 k, l
cut2=list((x2:y1) (x2-d:y1) (x2:y1+d) (x2:y1)) ;cut lin2座標list(是一個封閉cycle)
5 t3 D; v, N6 \7 X2 ]3 M- a
cut3=list((x1:y2) (x1+d:y2) (x1:y2-d) (x1:y2)) ;cut lin3座標list(是一個封閉cycle)
' V6 e! g7 h2 J) K" _' r L/ x/ z
cut4=list((x2:y2) (x2-d:y2) (x2:y2-d) (x2:y2)) ;cut lin4座標list(是一個封閉cycle)
3 i0 P; p, \: t" V" x
)
8 H e/ m" P; _% X" }
* P% C7 K: W, G
procedure(chop()
9 _7 X4 {1 Y, z8 g6 m1 u
selobj=geGetSelSet() ;取得選的物件
$ i ^* @# t; `
foreach(shape selobj ;把每一個物件逐一丟到shape變數
* v& m. w/ J9 O- T+ K
;leChopShape( selobj list(0:0 100:100 ) nil nil 10 )
! c! n8 J5 F* [- h* O
selobjbox=shape~>bBox ;取得物件的BOX(指方形座標2點->list)
0 `! D% I% k8 r2 T1 i s, k6 |
getXY(selobjbox); ;呼叫getXY程序,且給一個參數selobjx
3 S$ P% D \ w
leChopShape( shape cut1 t t) ;cut一邊,第一個t只是一個封閉cycle,第2個t指移除(remove)
7 ]) p' _7 f8 ^5 G$ K. i4 `
leChopShape( shape cut2 t t) ;cut一邊
7 g" v: f; W3 L0 Q. ]: Z$ g
leChopShape( shape cut3 t t) ;cut一邊
" @- l+ P; [6 t
leChopShape( shape cut4 t t) ;cut一邊
' Y+ k$ b% W, d" r$ E8 S
println(x1);
8 `7 D: Z" c$ w
println(y1);
! q2 F2 a7 d2 E: u) Z
println(x2);
9 `% c6 _! a$ x$ @' a3 B
println(y2);
0 D; R% G: B/ `
);foreach
/ D6 c; n# ~4 z' m) T t1 }, A
)
, E) Z: Y& Z3 p y) p% X
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;表單;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1 N$ X, n4 t) C9 m' [: C. G
trA_MenuItem = hiCreateMenuItem( ;menu項目1
# i8 Z' ^' \2 v
?name 'trA_MenuItem
8 R' v9 d! G$ V( o' M* w- G& {
?itemText "chop" ;menu項目2標題
% y3 J& s5 c2 t+ H: {
?callback "chop()" ;;; prints B in the CIW ;選項後的動作(呼叫chop()程序)
$ r4 G: a9 ~/ y5 P# a$ [1 a# A
)
0 g( L% T. f/ j
trB_MenuItem = hiCreateMenuItem( ;menu項目2
- q& E+ d1 U E2 V% |4 F3 G
?name 'trB_MenuItem
4 H7 R+ L |7 n- I+ h
?itemText "Hello World" ;menu項目1標題
( n1 A1 y9 [7 }" \; i3 K1 w
?callback "println(word)" ;選項後的動作(在CIW視窗印出Hello World!!)
2 c0 Q5 a5 N" |. H4 s: F: o! S
)
+ `) l0 M( a% X9 V* j8 V
0 L( i6 N5 e. \' ^7 k
3 b; K! `$ m5 z8 b; i, @
procedure(trSimpleMenu() ;產生meun表單的程序
. j. J" C. f& S" d C6 O0 [
let((simpleMenuID) ;宣告區域(local)變數
" v. d) Y1 r, y* e- d; a
word="Hello wodr!!" ;字串變數
5 U& U: W* H ?
simpleMenuID=hiCreateMenu( ;產生一個menu
: }' q7 X* ]" p8 ^
'simpleMenu ;GLOBAL(ID)
3 D5 x9 t' V+ {- f; S& i! y( Y
"Simple Menu" ;標題
1 ~; Z) @, ~/ O; j# H8 X/ }' b
'(trA_MenuItem trB_MenuItem) ;LIST(表單的項目)
% d8 g0 b! I( t0 A2 H- `9 I
)
4 H4 N3 `: L% x" I+ h+ ?
' o1 ~, W/ f6 L7 W5 _% c
hiDisplayMenu(simpleMenuID) ;根據menuID在螢幕顯示
: x2 q4 b3 [+ a! ~+ X
);let
0 g5 R2 N- p$ C( G3 S
);proce
! v- y8 s+ W' {0 s1 W. ]; u) F
作者:
oiziyo
時間:
2007-12-10 08:30 PM
那麼勵害,
% i+ i$ U$ z2 Z. b. j3 X+ t
這可是高手啊,
& C/ ^7 R& D$ r% S7 L; I( c: Y% l
這樣的東西可不是一般人可以做的到的
4 j7 I% |* I1 h& i2 e: N; i9 D3 c
謝謝分享
作者:
afor
時間:
2007-12-13 03:08 AM
原來還可以這樣用啊.....
' H, N& s) Y* o$ F7 Z
可惜都已經下線出去了,
2 P# w' O; D4 A" F/ E
謝謝大大分享實用的技巧
作者:
jling
時間:
2009-6-23 09:03 AM
正在找这个skill,网上这个资料好少啊,谢谢分享!
作者:
ryan1
時間:
2009-7-2 01:38 PM
好像不錯喔.來試試看囉.謝謝您的方享...............
作者:
sterling
時間:
2012-7-11 10:45 AM
謝謝啦謝謝啦 謝謝啦謝謝啦
作者:
loongsky
時間:
2012-8-23 03:10 PM
cadence有自带的切角工具嘛
作者:
a2763338
時間:
2014-2-17 04:09 PM
非常感謝 這部分目前需要做測試
作者:
pjh02032121
時間:
2014-3-24 02:40 PM
好不好用,我来试一试,多谢楼主。
作者:
blackcorrupt
時間:
2014-6-26 05:19 PM
謝謝分享囉, 來實驗看看
作者:
sheilamenuett
時間:
2015-5-6 04:53 PM
正好很需要,謝謝分享~
作者:
janus7799
時間:
2015-5-10 06:01 PM
正好很需要,超級感謝!
作者:
skeepy
時間:
2015-7-9 05:31 PM
ic5141 EDIT > Other > modify corner ,不會就按Help 看一下就會設定了。
作者:
hunky
時間:
2022-5-24 04:12 PM
太神啦,谢谢分享啊啊啊啊
4 _+ k2 l# ~2 U8 L) h
歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/)
Powered by Discuz! X3.2