myPort = outfile( "/tmp/myFile1" )
3.5. Skill的節制佈局
1). 關係操作符,以下表:
Function ) 1)Skill中的非凡字元(除字母數位以及 _ 之外的其他字元)都有各自的寄義,見下表,如果要用到這些字元的話,用\ 可以去掉其特殊寄義翻譯 cadar Meaning 3).用append饬令合併兩個list 個中CIW(Command Interpreter Window),即啟動Icfb的第一個視窗,包括一些經常使用的menu,一個輸入行,和一個輸出區域,這裏是經常使用的debug skill程式的處所,固然cadence也供給了Tools->Skill Development,有愛好的話可以深入研究一下 "hello" if…then…else的then是不克不及省略的(除了只有一個if,沒有else的情況),
|
||||||
( "polygon" ++polygonCount ) urx = caadr( bBox) Skill說話的許多地方和C說話差不多,如變數,函數,節制結構,輸入輸出等,具體的介紹可以參考User Guide,這裏只作簡單介紹。 在國界設計中,關於座標的list是最長見的,它是一組2維的list,常見的示意方式有: cdr拜候list除了第一個元素外的其他元素,注意返回依然是個list ury = cadadr( bBox) rectCount = lineCount = polygonCount = 0
3 || 5 |
3 |
|||||
5 || 3 |
5 |
|||||
layerName purpose rectCount labelCount lineCount miscCount 打開~/.cshrc,輸出檔中的每一個字串 3 < 5 |
t |
|||||
3 < 2 |
( condition2 exp21 exp22 ... ) |
b = 2 => 2 |
||||
(cond if( a>b then string list for( i 1 3 numbers = '( 1 2 3 ) => ( 1 2 3 ) Arguments |
%[-][width][.precision]conversion_code 用list敕令和 ' 來透露表現一個bBox,list饬令先計較變數或運算式,然後賦給list,' 表示的list和字面的一樣,不管帳算變數或運算式的值 |
Skill說話有n多函數,加上眾多工具的介面函數,可以用不計其數來形容,初學者可能會感應暈頭轉向,無從下手。其實只要瞭解根基的變數,節制語句,輸入輸出以及一些經常使用對象的基本函數就能夠了,大多半函數都可以用到再查閱。開始進修skill時可以細心看看SKILL Language User Guide,其他的可以用到時再查閱,這裏列出幾個經常會用到的文檔:SKILL Language Reference -Skill說話相幹的函數,Cadence User Interface SKILL Functions Reference-Cadence應用程式圖形介面介面函數,Design Framework II SKILL Functions Reference,SKILL Custom Layout Reference,SKILL Schematic Composer Reference別離是Cadence的Design Framework II,疆土,電路的介面函數。 |
||||
if condition1 then exp11 exp12 ... |
||||||
println( word ) List Explanation "hello" |
else if condition3 then exp31 exp32 ... cadr numbers = '( 1 2 3 ) => ( 1 2 3 )
輸出到檔 /tmp/myFile1. numeric xCoord( aCoordinate ) => 300 Cadence skill說話簡介 nil Return Value
Listc = append( Lista Listb) => ( 4 5 6 1 2 3 ) (fibonacci (difference n 2)))) |
Example ( "line" ++lineCount )
car( ... ) a = 1 => 1 |
3). 節制語句:if(…then…else….),when,unless,case,cond,迴圈語句for,forecah等,節制語句和C說話近似,都是先判定某個變數或運算式是否為真,然後履行下面的操作,需要注意的是: |
|||
2.首碼示意法 (defun fibonacci (n) caadr ("Number:" 3) |
2.1 Skill函數的查閱方式 環節字(其實也是skill的函數)和左括弧之間不克不及有空格,
lower left corner println( nextLine ) |
如: strcat ( "Hello" "翻譯社" " everyone" "!" ) nil || t |
||||
=> *Error* eval: not a function - "Hello" numbers = '( 1 2 3 ) => ( 1 2 3 ) 5 > 3 |
t |
|||||
nth用索引接見list的某個元素,注意索引從0最先 |
abc != "ABc" 2).用cons饬令添加一個元素到一個list的頭部 t
|
aCoordinate = xValue:yValue => ( 300 400 ) Example t && nil (1) A list containing the single element 1 |
( ) An empty list (same as the special atom nil) 3 && 5 |
5 |
||
5 && 3 |
3 |
|||||
close( inPort )
返回的結果是最後一個計算的運算式,是以與/或邏輯操作可以取代繁瑣的if / when等節制語句,例如:C說話中的操作符, a>b ? c=a : c=b; 即c取a b中較大的一個Skill中沒有類似的操作符,可以用下面語句來完成此操作: ( strcat "Hello" "," " everyone" "!" ) ;類Lisp說話的格局 strcat "Hello" "," " everyone" "!" ;上面的括弧可以省略 3). 從檔讀取資料:intfile定義輸入介面檔,gets一次從介面檔讀取一行字串,fscanf按照指定的花式從介面檔讀取,close封閉打開的介面 |
Number: 3 caar 打開~/.cshrc,輸出檔的每行 ur = cadr( bBox) cond( 2. 關於Skill函數 SKILL說話支援一套類似C語言的語法,初學者有了必然的C說話基礎,入門是很容易的。Cadence的工具可以經由過程CIW,Bindkey,Form,Menu等多種方式挪用skill函數,送到skill說話的解釋器來履行各類操作。
|
y-coord of upper right corner close( myPort ) |
else fibonacci(n-1) + fibonacci(n-2)
for和foreach是迴圈節制語句,for和C語言中的基本一樣,foreach常常用於對list的每一個元素作迴圈操作,每個迴圈順次把各個元素的值賦給一個變數,如下面的例子,你會注意到foreach的返回值是迴圈的list
f - floating point
s - string or symbol
printf( " %-15s %-15s %-10d %-10d %-10d %-10d"
4. Skill語言中經常使用知識匯總列表
( t ++miscCount )
for( i 1 3 println( "hello" )) ;Prints hello three times.
"hello""hello""hello"
n - numeric
( t expN1 expN2 ... )
((or (equal n 1) (equal n 2)) 1)
myPort = outfile( "/tmp/myFile2" )
car( cdr( car( ... ) ) )
fprintf( myPort "Number: %d " i ) ;注意printf函數不能輸出到port
1.最簡單的方式,看~/CDS.log檔或者CIW的輸出區域,把Options-> LogFilter都選上翻譯這裏一般可以查閱在圖形介面下運行的函數,如圖,華頓翻譯公司們可以看到畫path線的函數和輸出效果等
2.在CIW裏輸入命令startFinder,或在Terminal上輸入cdsFinder& . Finder合用於至少知道函數名的一部門,這裏可以查到函數的用法簡介翻譯例如上圖華頓翻譯公司們看到畫path的函數是leHiCreatePath(),但這是圖形體式格局的函數,對應skill體例的函數呢用法呢,可以在Finder中輸入CreatePath,這樣我們就可以看到包含有CreatePath的所有函數,如圖,leCreatePath便是我們想找的函數,這裏可以看到簡單的用法介紹
3.上面我們查到的關於函數用法的介紹很簡單,如何知道其具體介紹呢翻譯固然如果
)
運行cdsdoc&, 點擊Search打開Cadence help的搜刮功能,對象會主動啟動一個http辦事,同時打開搜刮網頁,啟動辦事後,你也能夠在windows的IE裏輸入http://hostname:9000/search.htm,同樣可以打開搜刮頁面,需要注意的是,在C:\WINNT\system32\drivers\etc\hosts檔中需要到場hostname對應的ip,如:
也可以用邏輯操作符: c = (a>b)&&a || (a<b)&&b
當然還有其他眾多東西的介面函數,是以Skill需要方便的函數查閱方式,這裏列出3種:
)
Expression
a. 軟體沒回應,好比在CIW中輸入段代碼,軟體沒有反應,什麼了局也沒有,通常爲因為( )或” “不成對釀成的,一般可以經由過程鍵入 ] 來解決,它默示補充完舛錯稱的括弧(可以取代任意多個右括弧),假如還沒有回應,鍵入 “] 這時候大部份情形下,系統會有回應
b. 資料類型不匹配,如:
general
greaterp
nth( 1 numbers ) => 2
result = '( 2 3 ) => ( 2 3 )
!=
numeric
result = cons( 1 result ) => ( 1 2 3 )
Arguments
xValue = 300
Return Value
(1 (2 3) 4) A list containing another list as its second element
Specify all the elements as evaluated arguments to the list function.
) ; cond
bBox = list( 300:400 500:450 ) ;含有 : 的bBox
這裏可以看到近似Lisp語言的暗示法後面有很多右括弧,並且函數和參數容易混合,所以一般推薦照舊用常用的類C說話代數默示法
A). 創建list有以下幾種根基的方式:
close( myPort )
lowerLeft = 300:400
nil
upper right corner
SKILL中只有 nil 是假(FALSE),其餘的任何值都是真(TRUE)。
這是挪用skill函數的一個常見問題,其他的問題還有:
close( inPort )
t
Using car and cdr with Bounding Boxes
when( inPort
127.0.0.1 localhost
10.0.10.2 host1
x-coord of lower left corner
如果有很多判定語句,用cond取代if…then…else組合,代碼對照清楚並且履行效力對照高,下面的兩種代碼是等效的。
)
<
( condition1 exp11 exp12 ... )
yCoord( aCoordinate ) => 400
car( cdr( car( cdr( ...]
2). 邏輯操作符,如下表:
... numeric 1.代數暗示法 string list length較量爭論list所包括元素的個數 equal Listb = '( 1 2 3 ) => ( 1 2 3 ) |
[.precision] = number of characters to be printed => ( "rect" "polygon" "rect" "line" ) == ) ;case [width] = minimum number of character positions 3 <= 4 本文出自: http://seanhung365.pixnet.net/blog/post/27034702-cadence-skill%E8%AA%9E%E8%A8%80%E7%B0%A1%E4%BB%8B有關各國語文翻譯公證的問題歡迎諮詢華頓翻譯公司02-77260932 |