- PADS 2007原理圖與PCB設(shè)計
- 唐贛編著
- 9343字
- 2018-12-29 21:23:32
8.4 宏
1.PADS Logic宏記錄器總攬
宏是對所有命令、按鍵動作及鼠標(biāo)單擊操作記錄下來用于重放的一個單一動作。可以實際地記錄PADS Logic中的每一個步驟以用于重復(fù)。宏創(chuàng)建的存儲的文件成為宏文件(Macro Files)。
PADS Logic的宏記錄器是勝過屏幕顯示的基于設(shè)計數(shù)據(jù)庫柵格記錄器。在【Tools】菜單中選擇【Macros】命令即可開始執(zhí)行宏命令,并彈出【Macro】對話框,該對話框提供了所有的宏命令函數(shù)。同時,在發(fā)生故障和文件失敗時,宏命令還允許記錄整個PADS Logic繪制到一個log文件中。
2.設(shè)置宏
可以設(shè)置創(chuàng)建、打開、編輯宏文件,創(chuàng)建、刪除和允許宏,通過【Macro】對話框為宏指派快捷鍵。
3.宏語言
PADS Logic中的宏語言類似標(biāo)準(zhǔn)的Visual Basic Script(VB Script)語言。能支持絕大多數(shù)VB Script的功能,主要包括以下功能。
變量和變量排列
全套的標(biāo)準(zhǔn)算術(shù)和布爾表達式
語句
操作
對象、屬性、方法
內(nèi)部自動支持和自動對象擴展
支部宏對象
1)變量PADS Logic的宏語言所支持的變量即可為空,也可為數(shù)值型、邏輯型、字符串及對象。表8-5列出了系統(tǒng)所支持的變量之間互相轉(zhuǎn)換的規(guī)則說明。
表8-5 變量間轉(zhuǎn)換操作說明

數(shù)值型變量:該類型的變量的取值呈現(xiàn)為浮點數(shù)值(需要注意的是,數(shù)值和字符串的輸入是可以互換的,它們之間可以自動轉(zhuǎn)換到另一種類型)
邏輯型變量:該類型的變量取值為真(True)或假(False)
字符串變量:該類型的變量取值呈現(xiàn)為文本字符串(需要注意的是,數(shù)值和字符串的輸入是可以互換的,它們之間可以自動轉(zhuǎn)換到另一種類型)
雙精度型變量:該類型變量呈現(xiàn)為數(shù)值(需要注意的是,雙精度型變量和字符串的輸入是可以互換的,它們之間可以自動轉(zhuǎn)換到另一種類型)。對象呈現(xiàn)為通過由方法和屬性組成的界面句柄的聯(lián)合實體。對象與數(shù)值型和字符串類型是不同的。對象可以是宏對象和自動對象兩種類型
自動對象是指可使用宏語言詞匯表中的內(nèi)置對象且可具有或不具有自動界面
自動對象是指自動使用的內(nèi)置或擴展的對象
2)表達式 系統(tǒng)提供的宏語言可使用以下所列的任意一種表達式。
數(shù)值型表達式:指任何可以求出數(shù)值的表達式。數(shù)值型表達式可包括關(guān)鍵字、變量、常量及運算符
字符串表達式:指臨近的連續(xù)字符組成的任意表達式,可包括字符串或字符串變量
3)運算符 系統(tǒng)中支持的運算符見表8-6。
表8-6 PADS Logic支持的運算符說明

(1)&運算。&運算語法格式為:
result=expression1 & expression2
其中:result可為任何變量;expression1為任意表達式,當(dāng)表達式不為字符串時,則將轉(zhuǎn)換為字符串型;expression2為任意表達式,當(dāng)表達式不為字符串型時,則將轉(zhuǎn)換為字符串型。
示例:S=“abc” &“123”
(2)*運算。*運算語法格式為:
result=number1 * number2
其中:result可為任意數(shù)值變量;number1為任意表達式,若該達不為數(shù)值型,則將轉(zhuǎn)換為數(shù)值;number2為任意表達式,若該表達式不為數(shù)值型,則將轉(zhuǎn)換為數(shù)值。
示例:x=y*z
(3)+運算。+運算的語法結(jié)構(gòu)為:
result=expression1 + expression2
其中:result可為任意數(shù)值變量;expression1為任意表達式;expression2為任意表達式。在使用&運算且不能確定是否是加法或字符串連接時需注意,使用&運算可代替強制字符串連接,這樣做可以消除歧義并提供自文檔代碼。
當(dāng)兩個加法求和運算的表達式都為數(shù)值時,即執(zhí)行數(shù)值加法;若兩個表達式都為字符串時,即執(zhí)行字符串連接;若兩表達式其中一個為數(shù)值另一個為字符串,即執(zhí)行加法運算。
示例:x=y+z
(4)/運算。/運算的語法結(jié)構(gòu)為:
result=number1 / number2
其中:result為任意數(shù)值變量;number1為任意表達式,若表達式值不是數(shù)值時,則將轉(zhuǎn)換為數(shù)值;number2為任意表達式,若表達式值不是數(shù)值時,則將轉(zhuǎn)換為數(shù)值。
示例:x=y/z
(5)-運算。-運算的語法結(jié)構(gòu)為:
variable=number1-number2(該語法結(jié)構(gòu)中的-為數(shù)學(xué)的減運算,用于找出兩值的差值)
或為
-number(該語法結(jié)構(gòu)中的-為表達式的負(fù)數(shù)值)
其中:result任意數(shù)值變量;number1為任意表達式,若該表達式不是數(shù)值型的,則將轉(zhuǎn)換為數(shù)值;number2為任意表達式,若該表達式不是數(shù)值型的,則將轉(zhuǎn)換為數(shù)值。
示例1:x=y-z
示例2:-x
(6)=運算。=運算的語法結(jié)構(gòu)為:
variable=value
其中:variable僅為變量或可寫入權(quán)限;value為任意表達式、字符串表達式或常量。
示例:a=1
(7)^運算。^運算的語法結(jié)構(gòu)為:
result=number^exponent
其中:result為任意數(shù)值變量;number為任意表達式;exponent為任意數(shù)值表達式,若指數(shù)為整數(shù)時,number可為負(fù)數(shù)。
在單個表達式中,若執(zhí)行的指數(shù)不止一個,則^運算以從左至右的順序執(zhí)行。
示例:x=y^z
(8)and運算。and運算的語法結(jié)構(gòu)為:
result=expression1 and expression2
其中:result為任意數(shù)值變量;expression1為任意表達式,若表達式不是邏輯型,則將轉(zhuǎn)換為邏輯值;expression2為任意表達式,若表達式不是邏輯型,則將轉(zhuǎn)換為邏輯值。
表8-7列出了and操作的真值表。
表8-7 and運算真值表

示例:a=b and c
(9)comparison運算。comparison運算的語法結(jié)構(gòu)為:
result=expression1 comparisonoperator expression2
其中:result為任意變量;expression1為任意表達式;repression2為任意表達式;comparisonoperator可為任意比較運算,如表8-8所列。
表8-8 comparison運算及其結(jié)果

(10)Mod運算。Mod運算的語法結(jié)構(gòu)為:
result=number1 Mod number2
其中:result為任意數(shù)值變量;number1為任意數(shù)值表達式;number2為任意數(shù)值表達式。
示例:x=y mod z
(11)Not運算。Not運算的語法結(jié)構(gòu)為:
result=Not expression
其中:result為任意數(shù)值變量;expression為任意表達式,若表達不是邏輯型,則將轉(zhuǎn)換為邏輯值。
表8-9列出了Not運算的真值表。
表8-9 Not運算真值表

(12)Or運算。Or運算的語法結(jié)構(gòu)為:
result=expression1 Or expression2
其中:result為任意數(shù)值變量;expression1為任意表達式,若表達式不是邏輯型,則將自動轉(zhuǎn)換為邏輯值;expression2為任意表達式,若表達式不是邏輯型,則將自動轉(zhuǎn)換為邏輯值。
表8-10列出了Or運算的真值表。
表8-10 Or運算真值表

示例:x=y or z
(13)Xor運算。Xor運算的語法結(jié)構(gòu)為:
[result=]expression1 Xor expression2
其中:result為任意數(shù)值變量;expression1為任意表達式,若表達式不是邏輯型,則將轉(zhuǎn)換為邏輯值;expression2為任意表達式,若表達式不是邏輯型,則將轉(zhuǎn)換為邏輯值。
表8-11列出了Xor運算真值表。
表8-11 Xor運算真值表

4)語句PADS Logic支持宏語言中的VBScript語言語句如下所述。
Call
Close
Dim
Do...Loop
For-Next
Function
If...Then...Else statement
Input#
Open
Print#
ReDim
Set
Sub
While...Wend
Width#
(1)Call語句。Call語句用于傳輸控制到子程序或函數(shù)程序,其語法結(jié)構(gòu)為:
[Call] name [argumentlist]
當(dāng)指定Call關(guān)鍵字來調(diào)用程序是,必須注意括號的完整使用。
其中:Call為關(guān)鍵字,在調(diào)用程序時,不一定必須使用Call關(guān)鍵字。若省略Call關(guān)鍵字,則必須省略對應(yīng)的括號。若使用Call語法來調(diào)用任意內(nèi)部函數(shù)或定義的函數(shù),則該函數(shù)返回值會丟棄。
name為調(diào)用程序的名稱。
argumentlist為用于通過程序的變量、排列或表達式的界定符。
示例:Call Myproc(0)
(2)Close語句。當(dāng)關(guān)閉輸出或附加的文件時,輸出的最終緩存內(nèi)容會寫入到操作系統(tǒng)的緩沖區(qū),所有的緩存空間和相關(guān)聯(lián)的關(guān)閉文件都相關(guān),并且相關(guān)聯(lián)的文件帶有文件的編號結(jié)尾。
Close語句的語法結(jié)構(gòu)為:
Close [filenumberlist]
其中:filenumberlist可是使用[[#]filenumber][,[#]filenumber]...語法結(jié)構(gòu)的一個或多個文件編號,其中的filenumber是任意的有效文件編號。若忽略使用filenumberlist,所有通過Open語句打開的活動文件將關(guān)閉。
示例:close #1
(3)Dim語句。Dim語句用于語句變量以及分配存儲空間,其語法結(jié)構(gòu)為:
Dim varname[{[subscrits]}] [,varname[([subscrits])]...
其中:varname是標(biāo)準(zhǔn)變量命名規(guī)定的變量名稱;subscripts為排列變量的尺寸,subscrips的語法結(jié)構(gòu)為[lower To] upper[,[lower To]upper]...,當(dāng)不規(guī)定不清楚時,Lower bound為0。還可在帶有空的括號情況下使用Dim語句,以語句一個動態(tài)排列。在此之后,使用Redim語句來定義在排列中的尺寸及要素。
示例:Dim x(10), y(20)
(4)Do...Lop語句。在條件為真或直到條件變?yōu)檎媸侵貜?fù)語句的塊,其語法結(jié)構(gòu)如下:
Do [{While | Until}] condition] [statements] [Exit Do] [statements] Loop
或
Do [statements] [Exit Do] [statements] Loop [{While | Until} condition]
其中:condition為一個或多個表達式(用于計算真或假的數(shù)值表達式,以及用于計算真或假的字符串表達式),當(dāng)condition為空時,則condition視為假;statements是當(dāng)condition為真或直到condition為真時的一個或多個語句。
可放置任何數(shù)量的Exit Do語句在Do…Loop語句中,作為另一種退出Do Loop語句的方法。Exit Do通常使用于一些條件之后。當(dāng)使用Do Loop嵌套語句時,Exit Do傳輸控制到Loop,也就是Exit Do發(fā)生在Loop以上的的一層嵌套。
示例:
Do while i<10 i=i+1 loop
(5)For-Next語句。For-Next語句用于重復(fù)語句組指定的時間數(shù),其語法格式為:
For counter=start To end(Step step) [Exit For] [statements] Next [counter]
其中:counter是作為循環(huán)計數(shù)器的數(shù)值變量,計數(shù)器不能為布爾元素或排列元素;start為計數(shù)器初始值;end為計數(shù)器終止值;step為計數(shù)器每次控制通過循環(huán)的數(shù),若沒有指定該值,則默認(rèn)的步進為1;statements為在For和Next之間的一個或多個根據(jù)計數(shù)器指定的時間次數(shù)的語句。
步進值可以是正值,零或負(fù)值。表8-12列出了For-Next語句Loop計數(shù)器的說明。
表8-12 For-Next語句Loop計數(shù)器說明

當(dāng)所有在Loop中的語句執(zhí)行后,step會添加到counter。在此時,要么在loop中的什么再執(zhí)行一次,或退出loop并繼續(xù)執(zhí)行語句后面的下一個語句。
還可放置任意數(shù)量的Exit For語句在Loop的任何位置,以作為退出的另一種方法。還可通過在另一處放置一個For-Next語句來嵌套For-Next語句,需要為每一個語句在其counter中一個唯一的變量名稱。下面列出的結(jié)構(gòu)是恰當(dāng)?shù)模?/p>
For A=1 To 10 For B=2 To 20 For C=3 To 30 … Next C Next B Next A
示例:
for i=0 to 10 step 2 s=sti next
(6)Function語句。聲明Function過程的名稱、參數(shù)及構(gòu)成其主體的代碼。其語法格式為:
[Public | Private] Function name [(arglist)] [statements] [name = expression] [Exit Function] [statements] [name = expression] End Function
其中:Pulbic表示Function過程可被所有Script中的所有其他過程訪問;Private表示Function過程只可被聲明它的Script中的其他過程訪問;Name為Function的名稱,遵循標(biāo)準(zhǔn)的變量命名約定;Arglist為代表調(diào)用時要傳遞給Function過程的參數(shù)的變量列表(用逗號隔開多個變量);Statements為在Function過程的主體中執(zhí)行的任意語句組;Expression為Function的返回值。
arglist參數(shù)包含下列語法和部分:
[ByVal | ByRef] varname[( )]
ByVal表示該參數(shù)按值傳遞。
ByRef表示該參數(shù)按引用傳遞。
varname代表參數(shù)變量的名稱;遵循標(biāo)準(zhǔn)的變量命名約定。
若沒有顯式指定使用Public或Private,則Function過程默認(rèn)為公用,即它們對于Script中的所有其他過程是可見的。Function中局部變量的值在對過程的調(diào)用中不被保留。
所有可執(zhí)行代碼必須包含于過程中。不能在另一個Function或Sub過程中定義Function過程。
使用Exit Function語句可以從Function過程中立即退出。程序繼續(xù)執(zhí)行調(diào)用Function過程的語句之后的語句。可在Function過程的任何位置出現(xiàn)任意個Exit Function語句。
與Sub過程類似,F(xiàn)unction過程是可以獲取參數(shù)、執(zhí)行一系列語句并改變其參數(shù)值的獨立過程。與Sub過程的不同之處是,當(dāng)要使用由函數(shù)返回的值時,可以在表達式的右邊使用Function過程,這與內(nèi)部函數(shù)的使用方式一樣,如Sqr、Cos或Chr。
在表達式中,可以通過使用函數(shù)名,并在其后用圓括號給出相應(yīng)的參數(shù)列表來調(diào)用Function過程。
示例:
Function BinarySearch(...) ... ' 未找到該值。返回False值。 If lower > upper Then BinarySearch = False Exit Function End If . . . End Function
(7)If...Then...Else語句。If...Then...Else語句用于執(zhí)行基表達式值的一組語句,其語法格式為:
If condition Then[statements][Else[elsestements]] 塊語法格式為: If condition Then [statements] [ElseIf condition-n Then] [elseifstatements]]... [Else [elsestaements]] End If
其中:condition為必需的,可為任意表達式,若表達式不為邏輯型,則將轉(zhuǎn)換為邏輯型;statements為可選的塊格式;若沒有Else子句時,則必須在單行,可通過冒號分隔為一個或多個語句,當(dāng)條件為真時即可執(zhí)行;condition-n為可選的任意邏輯表達式,若表達式為非邏輯型,則將轉(zhuǎn)換為邏輯型;elseifstatements為可選,一個或多個語句當(dāng)條件為真時即執(zhí)行;elsestatements為可選,一個或多個可執(zhí)行的語句,在沒有先前條件或當(dāng)condition-n為真時執(zhí)行。
為了用于簡單測試,縮短語法格式,可使用單行語法格式。對于更復(fù)雜和更靈活的應(yīng)用中,可使用塊語法。塊語法結(jié)構(gòu)同樣易于閱讀、修改和調(diào)試。
在單行語法格式中,可執(zhí)行若干語句作為If...Then的結(jié)果。所有的語句必須在相同的行中通過冒號分隔開,示例如下:
If A>10 Then A=A+1:B=B+A:C=C+B
在塊語法中If語句必須在語句的行首位置,Else、ElseIf及End If的語句部分可優(yōu)先與行編號或一個行標(biāo)簽。在塊語法的If語句必須伴有End If為結(jié)尾。
若要確定是否一個語句為塊If語句,可檢查其之后跟隨的關(guān)鍵字。若僅有一個注釋出現(xiàn)在Then之后,且在同一行,則語句為單行If語句。Else和ElseIf子句都為可選,可根據(jù)需要在塊If語句中使用多個ElseIf子句,但不能出現(xiàn)在Else自己后,塊If語句可以嵌套使用。
在執(zhí)行塊If語句的過程中,condition是嵌套的,當(dāng)condition為真時,則語句后面跟隨的Then即被執(zhí)行。當(dāng)condition為假時,所有的ElseIf條件將輪流驗證。當(dāng)找到一個為真的條件是,則語句立即跟隨相關(guān)聯(lián)的Then即被執(zhí)行。若ElseIf條件沒有為真的(或沒有ElseIf子句),則語句跟隨的Else被執(zhí)行。在執(zhí)行語句跟隨的Then或Else后,繼續(xù)執(zhí)行到End if為止。
示例:
If x<y then x=y and If x<y then x=y End if
(8)Input#語句。Input#語句用于從打開的文本文件中讀取數(shù)據(jù)并指派數(shù)據(jù)為變量,使用該語句需在輸入模式下打開文件,當(dāng)讀取文件數(shù)據(jù)時,字符串或數(shù)值數(shù)據(jù)指派為變量時不會做修改操作,其語法結(jié)構(gòu)為:
Input #filenumber,varlist
其中:filenumber為必須的條件,可為任意有效的文件編號;varlist為必須的條件,可為從文件讀取數(shù)據(jù)指派為變量的逗號定界符列表,不能為陣列或?qū)ο笞兞浚每墒褂米兞棵枋鲫嚵械某蓡T。
(9)Open語句。Open語句用于設(shè)置允許輸入/輸出到文件,需在執(zhí)行任意I/O操作之前打開一個文件,為文件打開分配I/O緩沖區(qū)并確定訪問使用緩沖區(qū)的模式。若文件已經(jīng)通過另一個進程打開,并且指定訪問的類型為不允許,則打開操作失敗并報錯誤信息,其語法格式為:
Open pathname For mode[Access access][lock]As[#]filenumber [Len=reclength]
其中:pathname為字符串表達式用于指定文件名,可包括目錄和驅(qū)動器名;mode用于指定訪問模式的關(guān)鍵字(Append、Binary、Input、Output、Random),若模式未指定,則文件以隨機方式打開;access是可選的,用于指定在打開文件上的允許操作的關(guān)鍵字(Read、Write、Read Write);lock是可選的,用于指定通過其他處理對打開文件操作的約束關(guān)鍵字(Shared、Lock Read、Lock Write、Lock Read Write)。若指定的文件名不存在,則在打開的文件后添加創(chuàng)建二進制、輸出或隨機訪問模式。
示例:
Open "C:\data.txt" for read as #1
(10)Print#語句。Print#語句用于寫入格式數(shù)據(jù)到連續(xù)的文件,其語法結(jié)構(gòu)為:
Print # filenumber,[outputlist]
其中:filenumber為任意有效的文件編號;outputlist是可選的,為用于打印的表達式或表達式列表,當(dāng)outputlist為空時不寫入文件,但當(dāng)outputlist為無效時,則寫入文件也無效。若省略outputlist并在filenumber后包括一個分隔的列表,則會打印一個空行到文件。
outputlist參數(shù)的設(shè)置如下:
[{Spc(n) | Tab[(n)]}] [expression] [charpos]
Spc(n)用來在輸出數(shù)據(jù)中插入空白字符,而n指的是要插入的空白字符數(shù)。
Tab(n)用來將插入點定位在某一絕對列號上,這里,n是列號。使用無參數(shù)的Tab將插入點定位在下一個打印區(qū)的起始位置。
Expression為要打印的數(shù)值表達式或字符串表達式。
charpos指定下一個字符的插入點。使用分號將插入點定位在上一個顯示字符之后。用Tab(n) 將插入點定位在某一絕對的列號上,用無參數(shù)的Tab將插入點定位在下一個打印區(qū)的起始處。如果省略charpos,則在下一行打印下一個字符。
示例:
Print #1, a, b, c Print #1, a, Spc(3), b
(11)ReDim語句。用于過程級聲明動態(tài)數(shù)組變量并分配或重新分配存儲空間。其語法結(jié)構(gòu)為:
ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .
其中,
Preserve:當(dāng)更改現(xiàn)有數(shù)組最后一維的大小時保留數(shù)據(jù)。
varname:變量名,遵循標(biāo)準(zhǔn)變量命名約定。
subscripts:數(shù)組變量的維數(shù),最多可以聲明60維數(shù)組。
subscripts參數(shù)語法格式如下:
upper [,upper] . . .
數(shù)組的下界總是零。
ReDim語句通常用于指定或修改動態(tài)數(shù)組的大小,這些數(shù)組已用帶有空括號的Private、Public或Dim語句(沒有維數(shù)下標(biāo))正式聲明過。可以重復(fù)使用ReDim語句更改數(shù)組維數(shù)和元素數(shù)目。
如果使用了Preserve關(guān)鍵字,就只能調(diào)整數(shù)組最后維的大小,并且不能改變數(shù)組的維數(shù)。例如,如果數(shù)組只有一維,就可以修改該數(shù)組的大小,因為該維是最后的也是僅有的一維。但是,如果數(shù)組有兩個或更多維,就只能改變末維的大小并保留數(shù)組內(nèi)容。
下面的樣例示范了如何不刪除動態(tài)數(shù)組的原有內(nèi)容而又增加末維的大小。
ReDim X(10, 10, 10) . . . ReDim Preserve X(10, 10, 15)
如果減小數(shù)組的大小,則將丟失被排除的元素中的數(shù)據(jù)。
示例:
ReDim x(150)
(12)Set語句。將對象引用賦給變量或?qū)傩浴F湔Z法結(jié)構(gòu)為:
Set objectvar = {objectexpression | Nothing}
其中:
objectvar:變量或?qū)傩缘拿Q,遵循標(biāo)準(zhǔn)變量命名約定。
objectexpression:由對象名稱、另一個已聲明為相同對象類型的變量或返回相同對象類型的對象的函數(shù)或方法組成的表達式。
Nothing:停止 objectvar 與任何指定對象的關(guān)聯(lián)。當(dāng)沒有其他變量引用 objectvar 原來所引用的對象時,若將其賦為 Nothing 會釋放與該對象所關(guān)聯(lián)的所有系統(tǒng)和內(nèi)存資源。
為確保有效,objectvar必須與所賦對象的類型一致。
Dim、Private、Public或ReDim語句只聲明了引用對象的變量。只有使用Set語句將指定對象賦予該變量后,才能引用實際的對象。
通常,當(dāng)使用Set語句將一個對象引用賦給變量時,并不是為變量創(chuàng)建對象的副本,而是創(chuàng)建對象的引用。可有多個對象變量引用同一個對象。因為這些變量是對象引用(不是副本),所以對對象所作的任何改動都會影響所有引用該對象的變量。
(13)Sub語句。聲明Sub過程的名稱、參數(shù)及構(gòu)成其主體的代碼。其語法結(jié)構(gòu)為:
[Public | Private] Sub name [(arglist)] [statements] [Exit Sub] [statements] End Sub 其中:
Public:表示 Sub 過程可被所有Script中的其他過程訪問。
Private:表示 Sub 過程只可被聲明該過程的Script中的其他過程訪問。
name:Sub 的名稱,遵循標(biāo)準(zhǔn)變量命名約定。
arglist:代表在調(diào)用時要傳遞給 Sub 過程的參數(shù)的變量列表。用逗號隔開多個變量。
statements:在 Sub 過程主體內(nèi)所執(zhí)行的任何語句組。
arglist參數(shù)包含下列語法和部分:
[ByVal | ByRef] varname[( )]
ByVal: 表示該參數(shù)按值傳遞。
ByRef:表示該參數(shù)按引用傳遞。
varname:代表參數(shù)的變量名稱,遵循標(biāo)準(zhǔn)變量命名約定。
若沒有顯式地指定使用 Public 或 Private,則 Sub 過程默認(rèn)為公用,即它們對于Script中的所有其他過程都是可見的。Sub 過程中局部變量的值在調(diào)用過程中不被保留。
所有可執(zhí)行代碼必須包含于過程中。不能在另一個Sub或Function過程中定義一個Sub過程。
使用Exit Sub語句可以立即從Sub過程中退出。程序繼續(xù)執(zhí)行調(diào)用Sub過程的語句之后的語句。可以在Sub過程中任意位置出現(xiàn)任意個Exit Sub語句。
與Function過程類似,Sub過程是一個可以獲取參數(shù),執(zhí)行一系列語句,以及可改變其參數(shù)的值的獨立過程。而與Function過程不同之處是,F(xiàn)unction過程可以返回值,而Sub過程不能用于表達式中。
可以使用過程名并跟隨相應(yīng)的參數(shù)列表來調(diào)用Sub過程。
(14)While…Wend語句。當(dāng)指定的條件為 True 時,執(zhí)行一系列的語句。其語法結(jié)構(gòu)為:
While condition [statements] Wend
其中:
condition:數(shù)值或字符串表達式,其計算結(jié)果為 True 或 False。
statements:在條件為True時執(zhí)行的一條或多條語句。
如果condition為True,則statements中所有Wend語句之前的語句都將被執(zhí)行,然后控制權(quán)將返回到While語句,并且重新檢查condition;若condition仍為True,則重復(fù)執(zhí)行上面的過程。如果不為True,則從Wend語句之后的語句繼續(xù)執(zhí)行程序。
While...Wend循環(huán)可以是多層嵌套結(jié)構(gòu)。每個Wend與最近的While語句對應(yīng)。
(15)Width #語句。將一個輸出行的寬度指定給用Open語句打開的文件。其語法結(jié)構(gòu)為:
Width #filenumber, width
其中:
filenumber;任何有效的文件號。
width:范圍在0~255之間的數(shù)值表達式,在新的一行開始之前,指出在該行上可出現(xiàn)多少字符。如果width=0,則行的長度不受限制。width的默認(rèn)值為0。
示例:
Width #2, 100
5)函數(shù)
(1)Asc函數(shù)。該函數(shù)可返回一個字符串中第一個字符的ASII碼。其語法結(jié)構(gòu)為:
Asc(String)
其中:String任意有效的字符表達式;若String沒有包含字符,則會發(fā)生運行錯誤。
示例:
i=Asc("abc")
(2)Atn函數(shù)。該函數(shù)用于計算直角三角形兩個邊的比值(number),并返回對應(yīng)角的弧度值。此比值是該角對邊的長度與鄰邊長度之比。結(jié)果的范圍是從-π/2~π/2 rad。弧度變換為角度的方法是將弧度乘以π/180。反之,角度變換為弧度的方法是將角度乘以180/π。其語法結(jié)構(gòu)為:
Atn(number)
其中:number為任意表達式;若表達式為非邏輯型,則將其轉(zhuǎn)換為一個邏輯類型。
示例:
f=atn(2)
(3)Chr函數(shù)。該函數(shù)用于返回與指定ANSI字符代碼相對應(yīng)的字符。其語法結(jié)構(gòu)為:
Chr(Charcode)
其中:Charcode的取值范圍是0~255,其中0~31表示不可打印的代碼。例如:Chr(10)返回?fù)Q行符。
示例:
C=chr(64)
(4)Command函數(shù)。該函數(shù)可返回用于啟動程序的命令行,包括執(zhí)行文件的路徑。其語法結(jié)構(gòu)為:
Command
其中:當(dāng)從命令行運行程序是,該命令對應(yīng)Macro scripts為可用。
示例:
假設(shè)程序由以下命令運行:
BlazeRouter log:logfile.log preview.pcb 則Command函數(shù)返回: "C:\Program Files\Mentor Graphics\PADS\<latest release>\Programs\BlazeRouter.exe log:logfile.log preview.pcb"
(5)Cos函數(shù)。該函數(shù)用于返回某個角的余弦值。其語法結(jié)構(gòu)為:
Cos(number)
其中:number為任意某個以rad為單位表示的角的有效數(shù)值表達式。
示例:
x = Cos(1.57)
(6)CreateObject函數(shù)。該函數(shù)用于創(chuàng)建并返回一個ActiveX對象的引用。其語法結(jié)構(gòu)為:
CreateObject(class,[servername])
其中:class為字符串、應(yīng)用程序名稱或創(chuàng)建對象的類。
servername為可選項,是字符串、創(chuàng)建對象的網(wǎng)絡(luò)服務(wù)器名稱。若遠程服務(wù)器不存在或不可用,則發(fā)生運行錯誤。
當(dāng)使用語法appname.objectype時:
appname為字符串,對象提供的應(yīng)用程序名稱。
objecttype為字符串,創(chuàng)建對象的類型或類。
若要創(chuàng)建ActiveX對象,將CreateObject函數(shù)返回的對象賦值給某對象變量。
示例:
Set obj=CreateObject("PowerPCB.Application")
(7)CurDir函數(shù)。該函數(shù)用于返回當(dāng)前路徑的變量字符串。其語法結(jié)構(gòu)為:
CurDir[(drive)]
其中:drive為可選的任意指定存在的驅(qū)動器字符串表達式。若沒有指定的驅(qū)動器或驅(qū)動器字符串長度為0(""),則CurDir返回當(dāng)前驅(qū)動器的路徑。
示例:
s=CurDir("d:")
(8)Dir函數(shù)。該函數(shù)用于返回文件名稱或目錄的字符串,可匹配指定的樣式、文件特征值或驅(qū)動器卷標(biāo)。其語法結(jié)構(gòu)為:
Dir(pathname)
其中:pathname為可選的指定文件名稱的字符串表達式,也可包括目錄和驅(qū)動器名稱。若沒有找到路徑名稱則返回0長度的字符串("")。Dir函數(shù)支持使用多個字符(*)和單個字符(?)通配符指定多個文件。
示例:
若要獲得C:驅(qū)動器根目錄的第一個文件名,則:
Dir("C:\*.*")
若要獲得相同路徑下一個文件,則:
Dir
若要在C:\My Documents\PADS Projects\Samples目錄中開始另一個搜索,則:
Dir("C:\My Documents\PADS Projects\Samples\*.*")
(9)DoEvents函數(shù)。該函數(shù)用于臨時返回控制器給操作系統(tǒng),并允許它完成其他可能發(fā)生的事件。其語法結(jié)構(gòu)為:
DoEvents()
若宏執(zhí)行一個很長的計算時,該函數(shù)非常有用。插入DoEvents可在隊列中阻止未處理事件的堆積。
(10)Environ函數(shù)。該函數(shù)用于返回與操作系統(tǒng)關(guān)聯(lián)的環(huán)境變量字符串。其語法格式為:
Environ[(envstring)]
其中:envstring為可選的包含環(huán)境變量名稱的字符串表達式。若envstring在環(huán)境變量表中找不到,則會返回一個0長度的字符串("")。
示例:
s=Environ("path")
(11)Eof函數(shù)。當(dāng)?shù)竭_為進行隨機或連續(xù)輸入訪問而打開的文件的末尾時,該函數(shù)將返回一個包含值True的類型的值。
使用EOF可避免由于試圖獲取超過文件末尾的輸入而產(chǎn)生的錯誤。
在到達文件末尾之前,EOF函數(shù)將返回False。對于為進行隨機或二進制訪問而打開的文件,EOF將返回False,直至最后一個執(zhí)行的Get語句無法讀取整個記錄。
對于為進行二進制訪問而打開的文件,如果試圖使用Input函數(shù)讀取整個文件直至EOF返回True,將產(chǎn)生錯誤。當(dāng)用Input讀取二進制文件時,請用LOF和Loc函數(shù)(而不是EOF),或在使用EOF函數(shù)時使用Get。對于為進行輸出訪問而打開的文件,EOF始終返回True。
其語法結(jié)構(gòu)為:
Eof[(filenumber)]
其中filenumber為可選的,包含有效文件編號的整數(shù)。
示例:
If Eof (1) then…
(12)Exp函數(shù)。該函數(shù)用于返回e(自然對數(shù)的低)的冪次方。其語法結(jié)構(gòu)為:
Exp(number)
其中:number為有效的數(shù)值表達式。
若number參數(shù)超過709.782812893,則會出現(xiàn)錯誤。常數(shù)e的值約為2.718282。
示例:
x=exp(y)
(13)GetObject函數(shù)。該函數(shù)可返回對ActiveX組件的一個引用。其語法結(jié)構(gòu)為:
GetObject([pathname] [,class])
其中:
path為可選的變量字符串。完整的文件路徑和名稱,文件中包含了要檢索的對象。如果忽略了pathname,則需要class。
class為可選項,是對象的類的變量字符串。
使用GetObject函數(shù)可以從文件中,以及指派對象至一個對象變量,訪問一個Active X對象。使用Set語句可指派對象,由GetObject函數(shù)返回至對象變量。
示例:
Obj=GetOjbect(,"PowerPCB.Application")
(14)GetTmpFileNmae函數(shù)。該函數(shù)可返回一個用于保證由String識別為唯一的指定的新文件名稱。其語法結(jié)構(gòu)為:
GetTmpFileName(string)
其中:string為字符串表達式。
示例:
s=GetTmpFileName("d:\tmp")
(15)InStr函數(shù)。該函數(shù)用于返回某字符串在另一字符串中第一次出現(xiàn)的位置。其語法結(jié)構(gòu)為:
InStr([start, ]string1, string2)
其中:
strat為可選的數(shù)值表達式,用于設(shè)置每次搜索的開始位置。若省略,將從第一個字符的位置開始搜索。若start包含Null,則會出現(xiàn)錯誤。如果已指定compare,則必須要有start參數(shù)。
string1為接受搜索的字符串表達式。
string2是要搜索的字符串表達式。
若string 1長度為0,則InStr返回0。
若string 2長度為0,則InStr返回start。
若string 2沒有找到,則InStr返回0。
若string 2在string 1中找到,則找到匹配字符串的位置。
若start>string,則InStr返回為0。
示例:
i = InStr(1,"cbc","c")
(16)InStrRev函數(shù)。該函數(shù)返回某字符串在另一個字符串中出現(xiàn)的從結(jié)尾計起的位置。其語法結(jié)構(gòu)為:
InStrRev(string1, string2, [start])
其中:
string 1為接受搜索的字符串表達式。
string 2為被搜索的字符串表達式。
start為可選的數(shù)值表達式,用于設(shè)置每次搜索的開始位置。若省略,則默認(rèn)值為-1,表示從最后一個字符的位置開始搜索。若start包含Null,則出現(xiàn)錯誤。
若string1長度為0,則InStrRev返回0。
若string2長度為0,則InStrRev返回start。
若string 2沒有找到,則InStrRev返回0。
若string 2在string 1中找到,則InStrRev找到匹配字符串的位置。
若strart>Len(string 2),則InStrRev返回0。
示例:
InStrRev("abcdbc", "bc")
則返回“4.”
(17)Left函數(shù)。該函數(shù)返回指定數(shù)目的從字符串的左邊算起的字符。其語法結(jié)構(gòu)為:
Left(string, length)
其中:string為字符串表達式,其最左邊的字符被返回,若string參數(shù)中包含Null,則返回Null。length為數(shù)值表達式,指明要返回的字符數(shù)目,若為0,返回零長度字符串(""),若大于或等于string參數(shù)中的字符總數(shù),則返回整個字符串。
示例:
Left("abcd", 2) 則返回“ab.”
(18)Len函數(shù)。該函數(shù)返回字符串內(nèi)字符的數(shù)目,或是存儲一變量所需的字節(jié)數(shù)。其語法結(jié)構(gòu)為:
Len(string)
其中:
string為任意有效的字符表達式。
示例:
Len("abcd") 則返回4
(19)Mid函數(shù)。該函數(shù)從字符串中返回指定數(shù)目的字符。其語法格式為:
mid(string,start,[length])
其中:
string為字符串表達式,從中返回字符。
start為string中被提取的字符部分的開始位置。如果start超過了string中字符的數(shù)目,Mid將返回零長度字符串 ("")。
length為要返回的字符數(shù)。若省略或length超過文本的字符數(shù)(包括start處的字符),將返回字符串中從start到字符串結(jié)束的所有字符。
示例:
Mid("abcdbc", 3, 2) 則返回“cd.”
(20)MkDir函數(shù)。該函數(shù)可創(chuàng)建新的目錄。其語法結(jié)構(gòu)為:
MkDir(path)
其中:
path為識別創(chuàng)建的目錄的字符串表達式。路徑可以包括驅(qū)動器,若沒有知道驅(qū)動器,則MkDir函數(shù)在當(dāng)前驅(qū)動器中創(chuàng)建新的目錄。
示例:
MkDir ("D:\newdir")
(21)MoveFile函數(shù)。該函數(shù)可由path1移動文件至指定的path2。其語法結(jié)構(gòu)為:
MoveFile(path1,path2)
其中:path1、path2為字符串表達式。
示例:
MoveFile("C:\data.bin","D:\")
(22)MsgBox函數(shù)。該函數(shù)可顯示信息對話框,用于等待單擊按鈕并返回一個整數(shù)值,用于確定單擊的按鈕。其語法結(jié)構(gòu)為:
MsgBox(prompt [, buttons] [, title])
其中:
prompt為作為消息顯示在對話框中的字符串表達式。prompt的最大長度大約是1024個字符,這取決于所使用的字符的寬度。如果prompt中包含多個行,則可在各行之間用回車符(Chr(13))、換行符(Chr(10))或回車換行符的組合(Chr(13) & Chr(10))分隔各行。
buttons為可選的數(shù)值表達式,是表示指定顯示按鈕的數(shù)目和類型、使用的圖標(biāo)樣式,默認(rèn)按鈕的標(biāo)識,以及消息框樣式的數(shù)值的總和(有關(guān)數(shù)值請參閱“設(shè)置”部分)。若省略,則buttons的默認(rèn)值為0。
title為可選的顯示在對話框標(biāo)題欄中的字符串表達式。若省略title,則將應(yīng)用程序的名稱顯示在標(biāo)題欄中。
MsgBox按鈕設(shè)置說明見表8-13。
表8-13 MsgBox按鈕設(shè)置說明

第一組值(0~5)用于描述對話框中顯示的按鈕類型與數(shù)目;第二組值(16, 32, 48, 64)用于描述圖標(biāo)的樣式;第三組值(0, 256, 512)用于確定默認(rèn)按鈕;而第四組值(0, 4096)則決定消息框的樣式。當(dāng)為按鈕參數(shù)加上這些數(shù)字以創(chuàng)建最終的值時,只能從每一個群組中使用一個數(shù)字。
MsgBox返回值說明見表8-14。
表8-14 MsgBox返回值說明

示例:
MsgBox("Hello",mbOK, "This is a message box")
(23)Right函數(shù)。該函數(shù)可從字符串右邊返回指定數(shù)目的字符。其語法結(jié)構(gòu)為:
Right(string,length)
其中:
string為字符串表達式,其最右邊的字符被返回。
length為數(shù)值表達式,指明要返回的字符數(shù)目。若為0,返回零長度字符串;若此數(shù)大于或等于string參數(shù)中的所有字符數(shù)目,則返回整個字符串。
示例:
Right("abcdbc", 3)
則返回“dbc.”
(24)Sin函數(shù)。該函數(shù)可返回某個角的正弦值。其語法結(jié)構(gòu)為:
Sin(number)
其中:Number為參數(shù)可以是任何將某個角表示為弧度的有效數(shù)值表達式。Sin函數(shù)取某個角并返回直角三角形兩邊的比值。此比值是直角三角形中該角的對邊長度與斜邊長度之比。結(jié)果的范圍在 -1~1之間。將角度乘以π/180即可轉(zhuǎn)換為弧度,將弧度乘以180/π即可轉(zhuǎn)換為角度。
示例:
x=sin(y)
(25)Spc函數(shù)。該函數(shù)連同Print#語句使用或連同Print方法值定位輸出。其語法結(jié)構(gòu)為:
Spc(n)
其中:n為在顯示或打印列表中下一個表達式中插入的空格數(shù)量。
示例:
Spc(3)
(26)Str函數(shù)。該函數(shù)返回指定數(shù)值的字符串。其語法結(jié)構(gòu)為:
Str(number)
其中:Number為任意表達式。若表達式不是數(shù)值型,則將轉(zhuǎn)換為數(shù)值類型。
示例:
x=Str(324)
(27)Tab函數(shù)。該函數(shù)連同Print#語句或Print方法至定位輸出使用。其語法結(jié)構(gòu)為:
Tab[(n)]
其中:n為在顯示或打印列表中下一個表達式之前移動的列數(shù)量(可選)。
示例:
Tab(2)
(28)Val函數(shù)。該函數(shù)返回由數(shù)字組成的字符表達式的數(shù)字值。其語法結(jié)構(gòu)為:
Val(string)
其中:string為任意有效的字符串表達式。
Val()函數(shù)從左到右返回字符表達式中的數(shù)字,直至遇到非數(shù)值型字符(忽略前面的空格)時為止。若字符表達式的第一個字符不是數(shù)字,也不是加、減號,則val()函數(shù)返回0。VAL()函數(shù)可以將Visual FoxPro的SYS()函數(shù)返回的字符串轉(zhuǎn)換為數(shù)值。
示例:
i=Val("123")
6)自動支持 程序中的宏引擎支持接受自動控制的對象。當(dāng)使用CreateObject()創(chuàng)建對象或使用GetObject()后,對象的方法可能使用以下的語法調(diào)用。
Object.Method arg1, ..., argn var = Object.Method( arg1, ..., argn ) var = Object.Property Object.Property = expression
7)對話框控制PADS中的宏語言可用于以下所列對話框控制操作:CheckBox、CheckListBox、ComboBox、EditBox、GridControl、ListBox、PushButton、RadioBox、SliderControl、SpinButton、TabControl、TreeItem、TreeView。
(1)CheckBox(復(fù)選框)
① 聲明:該方法用于設(shè)置復(fù)選框的狀態(tài)。
② 語法:Checkbox.State(iState)
③ 參數(shù):iState為數(shù)值表達式,見表8-15。
表8-15 Checkbox.State iState值

④ 值屬性:該方法可返回或設(shè)置復(fù)選框的狀態(tài)。
⑤ 語法:Checkbox.Value[=iState]
⑥ 參數(shù):iState為數(shù)值表達式,見表8-16。
表8-16 CheckBox.Value iState值

(2)CheckListBox(復(fù)選列表框)
① 聲明:該方法用于設(shè)置復(fù)選列表框的選中狀態(tài)。
② 語法:CheckListBox.State(string)
③ 參數(shù):string:為任意有效字符串表達式,包括列表中可選的項目。
④ ListCount屬性:該方法可返回復(fù)選列表框中條目數(shù)。
⑤ 語法:CheckListBox.ListCount
⑥ 選擇屬性:該方法可返回或設(shè)置在復(fù)選列表框中的復(fù)選狀態(tài)。該屬性為帶有相同列表屬性條目編號的布爾值陣列。
⑦ 語法:CheckListBox.Check(index)[=boolean]
⑧ Text屬性:該方法可返回在復(fù)選列表框中當(dāng)前選中的文本條目。
⑨ 語法:CheckListBox.Text
(3)ComboBox(組合框)
① Select:該方法可設(shè)置組合框的選擇狀態(tài)。
② 語法:ComboBox.Select(string)
③ 參數(shù):string為字符串表達式,包含在組合框中用于選擇的字符串。
④ 示例:ActiveLayer.Select("Top")
⑤ Edit:該方法用于設(shè)置組合框的編輯狀態(tài)。
⑥ 語法:ComboBox.Edit(string)
⑦ 參數(shù):string:為字符串表達式,包含了組合框中編輯框中插入的字符串。
⑧ Text屬性:該方法可返回或設(shè)置組合框的文本。
⑨ 語法:ComboBox.Text[=string]
⑩ 參數(shù):string:為字符串表達式,包含在組合框中設(shè)置的文本。
?List屬性:該方法可返回或設(shè)置包括在組合框列表中的條目。
?語法:ComboBox.List(index)
?SelStart屬性:該方法可返回或設(shè)置所選文本的開始點。若沒有選擇文本,該方法則確認(rèn)插入點的位置。?語法:ComboBox.SelStart[=index]?SelText屬性:該方法可返回或設(shè)置所需字符的數(shù)量。?語法:ComboBox.SelLength[=number]?參數(shù):該參數(shù)為一個字符串表達式,包括在編輯框中設(shè)置的文本。
(4)EditBox(編輯框)
① 聲明:該方法用于設(shè)置編輯框的狀態(tài)。
② 語法:EditBox.State(string)
③ 參數(shù):string為在編輯框中顯示文本的字符串表達式。
④ Text屬性:該方法可返回或設(shè)置編輯框文本。
⑤ 語法:EditBox.Text[=string]
⑥ SelStart屬性:該方法可返回或設(shè)置所需文本的起始點。若沒有選擇文本,則會確定插入點的位置。
⑦ 語法:EditBox.SelStart[=index]
⑧ SelText屬性:該方法可返回或設(shè)置包含當(dāng)前所需文本的字符串。若沒有選擇字符,則返回0長度字符串("")。
⑨ 語法:EditBox.SelText[=string]
⑩ 參數(shù):string為字符串表達式,包含在編輯框中設(shè)置的文本。
(5)GridControl(柵格控制):該控制表現(xiàn)為在對話框中設(shè)置柵格,可使用Control方法引用一個詳細的柵格控制。
(6)ListBox(列表框)
① 聲明:該方法可設(shè)置列表框中選擇狀態(tài)。
② 語法:ListBox.State(string)
③ 參數(shù):string:為文本串表達式,包含所選的條目編號。
④ List屬性:該方法可返回在對話框框中列表部分包含的條目。
⑤ 語法:ListBox.List
⑥ SelCount屬性:該方法可返回列表框中所需條目的數(shù)量。
⑦ 語法:ListBox.SelCount
⑧ Selected屬性:該方法可返回或設(shè)置列表框中一個條目的選擇狀態(tài)。
⑨ 語法:ListBox.Selected(index) [=boolean]
⑩ Text屬性:該方法可返回列表框中當(dāng)前所選條目文本。
?語法:ListBox.Text
(7)Push Button
① Click:該方法可仿效按下一個按鈕。
② 語法:button.Click()
③ 示例:dlg.control("OK").click()
(8)RadioBox
① 聲明:該方法用于檢查選項按鈕的狀態(tài)。
② 語法:RadioBox.State(iState)
③ 參數(shù):iState為數(shù)值表達式,表現(xiàn)為檢查選項按鈕的位置,-1表示沒有選擇按鈕。
④ Value屬性:該方法可返回或檢查選項按鈕的狀態(tài)。
⑤ 語法:RadioBox.Value[=iState]
⑥ 參數(shù):iState為數(shù)值表達式,表現(xiàn)為用于檢查選項按鈕的位置。-1表示沒有選中按鈕。
(9)SliderControl(滑塊控制)
① 聲明:該方法可設(shè)置滑塊的狀態(tài)。
② 語法:SliderControl.State(iState)
③ 參數(shù):iState:為數(shù)值表達式。
④ Value屬性:該方法可返回或設(shè)置當(dāng)前滑塊的位置。
⑤ 語法:Slider.Value[=val]
⑥ 參數(shù):val為數(shù)值表達式。
(10)SpinButton(微調(diào)按鈕)
① 聲明:該方法可設(shè)置微調(diào)按鈕的狀態(tài)。
② 語法:SpinButton.State(iState)
③ 參數(shù):iState為數(shù)值表達式。
(11)TabControl(標(biāo)簽頁控制)
① 聲明:該方法用于設(shè)置標(biāo)簽頁的選擇狀態(tài)。
② 語法:TabControl.State(iState)
③ 參數(shù):iState為數(shù)值表達式,用于確定標(biāo)簽頁的位置。
④ 示例:dlg.Control("Tab").State(3)
⑤ Value屬性:該方法用于返回或設(shè)置當(dāng)前標(biāo)簽頁的位置。
⑥ 語法:TabControl.Value[=tab]
⑦ 參數(shù):Tab為用數(shù)值表達式確定標(biāo)簽頁的位置或用文本串表達式確定標(biāo)簽頁標(biāo)題。
(12)TreeItem(樹形條目)
① Select:該方法可設(shè)置樹形條目的選擇狀態(tài)。
② 語法:TreeItem.Select(flag)
③ 參數(shù):flag為數(shù)值表達式,可能具有表8-17所列的值。
表8-17 TreeItem.Select flag值

④ 示例:item.Select(true)
⑤ Expand:該方法可設(shè)置樹形條目的展開狀態(tài)。
⑥ 語法:TreeItem.Expand(flag)
⑦ 參數(shù):flag為數(shù)值表達式,可能具有表8-18所列的值。
表8-18 TreeItem.Expand flag值

⑧ 示例:item.Expand(true)
⑨ Focus:該方法用于設(shè)置樹形條目至條目的焦點。
⑩ 語法:TreeItem.Focus()
?示例:item.Focus(1)
(13)TreeView(樹形視圖)
① Item方法:該方法可返回一個TreeItem對象。
② 語法:TreeView.Item(itemname)
③ 參數(shù):itmname為確定條目名稱的字符串表達式。
④ 示例:item = tree.Item("Net Objects\Nets\end")
⑤ BeginDrag方法:該方法仿效拖曳條目離開目錄樹。
⑥ 語法:TreeView.BeginDrag(itemname)
⑦ 參數(shù):itemname為確定拖曳條目名稱的字符串表達式。
⑧ Copy方法:該方法用于復(fù)制所選的條目至剪貼板。
⑨ 語法:TreeView.Copy(itemname)
⑩ Drop方法:該方法用于仿效在條目上拖曳條目。
?語法:TreeView.Drop(itemname)
?Paste方法:該方法用于粘貼剪貼板中內(nèi)容至所選的分支。
?語法:TreeView.Paste(itemname)
?參數(shù):itemname為確定粘貼條目名稱的文本串表達式。
?CreateNewItem方法:該方法可在所選的分支中創(chuàng)建新的條目。該方法可返回與創(chuàng)建條目對應(yīng)的TreeItem對象。
?語法:TreeView.CreateNewItem(itemname)
?參數(shù):itemname為確定創(chuàng)建條目名稱的字符串表達式。
8)內(nèi)置宏對象PADS中內(nèi)置的宏對象包括以下所列的對象。
Application Object
Dialog Objects
Document Object
HelpContents Object
HelpContentsItem Object
HelpPane Object
Main View Object
Project Explorer Object
(1)Application對象。該對象具有以下11種方法。
① CreateNewDocument方法。該方法可創(chuàng)建一個空文件。其語法結(jié)構(gòu):
Application.CreateNewDocument
② ExecuteCommand方法。該方法可執(zhí)行程序的其中一個命令。其語法結(jié)構(gòu)為:
Application.ExecuteCommand(command, [arg1,...])
參數(shù):command為確定一個PADS產(chǎn)品命令的文本串表達式。arg1,…為可選的、確定可選的參數(shù)
示例:
Application.ExecuteCommand("ID_VIEW_BOARD") Application.ExecuteCommand("Open", "c:\My Documents\PADS Projects\prevfiew.pcb")
③ Help方法。該方法用于調(diào)用Help。其語法結(jié)構(gòu)為:
Application.Help()
④ HelpContents方法。該方法可在Help Contens窗口中返回Help內(nèi)容。其語法內(nèi)容為:
Application.HelpContents
示例:
Set var = Application.HelpContents
⑤ HelpPane方法。該方法可返回Help窗口。其語法內(nèi)容為:
Application.HelpPane
示例:
Set var = Application.HelpPane
⑥ OpenCustomizeDialog方法。該方法可打開自定義模式對話框。其方法為:
Application.OpenCustomizeDialog()
⑦ OpenDocument方法。該方法可打開通過路徑參數(shù)打開已有的文件。其語法結(jié)構(gòu)為:
Application.OpenDocument(path)
參數(shù):path為包括文件路徑的字符串表達式
示例:Application.OpenDocument("C:\My Documents\PADS Projects.preview.pcb")
⑧ OpenOptionsDialog方法。該方法可打開Options modeless對話框。其語法格式為:
Application.OpenOptionsDialog()
⑨ OpenProperitesDialog方法。該方法可打開Properites modeless對話框。其語法結(jié)構(gòu)為:
Application.OpenPropertiesDialog()
⑩ Quit方法。該方法可退出應(yīng)用程序。其語法結(jié)構(gòu)為:
Application.Quit()
?RunMacro方法。該方法可執(zhí)行一個程序命令。其語法結(jié)構(gòu)為:
Application.RunMacro(path[, function [, arg1, ...]])
參數(shù):path為包括運行宏的路徑的字符串表達式。function為可選的函數(shù)名稱或宏文件中調(diào)用的sub。arg1,…為可選的通過函數(shù)的參數(shù)
示例:
Application.RunMacro("C:\My Docuements\PADS Projects\mymacro.mcr") Var = Application.RunMacro(“c:\y Docuements\PADS Projects\mymacro.mcr”, myfunction”, 1, 2, 3)
(2)Dialog對象。該對象具有以下5種方法。
① Control方法。該方法可返回一個對話框控制。其語法結(jié)構(gòu)為:
Dialog.Control(controlname)
參數(shù):controlname為確定控制名稱的字符串表達式
示例:返回OK按鈕的示例:
set obj = dlg.Control("OK")
② HeopPane方法。該方法可顯示對話框的Fly-out Help窗口。
③ CloseHelpPane方法。該方法可關(guān)閉在對話框中打開的Help面板。其語法結(jié)構(gòu)為:
Dialog.CloseHelpPane
④ OpenHelpPane方法。該方法可顯示對話框的Help面板。其語法結(jié)構(gòu)為:
Dialog.OpenHelpPane
⑤ ShowHelpFor方法。該方法用于顯示指定控制的幫助信息。其語法結(jié)構(gòu)為:
Dialog.ShowHelpFor(controlname)
參數(shù):controlname為控制的名稱
示例。該示例為Apply按鈕顯示幫助信息:
Dialog.ShowHelpFor("Apply")
(3)Document對象:該對象具有以下5種方法。
① Print方法。該方法用于打印文件。其語法結(jié)構(gòu)為:
Document.Print()
② PrintSetup方法。該方法可打開Print Setup對話框。其語法結(jié)構(gòu)為:
Document.PrintSetup()
③ RepeatLastAction方法。該方法用于重復(fù)當(dāng)前會話過程中執(zhí)行的最后一個動作。其語法結(jié)構(gòu)為:
Document.RepeatLastAction()
④ Save方法。該方法用于保持文件。其語法結(jié)構(gòu)為:
Document.Save()
⑤ SaveAs方法。該方法用于保持文件至一個設(shè)計人員定義的名稱或路徑。其語法結(jié)構(gòu)為:
Document.SaveAs(path)
參數(shù):path為確定保持文件路徑的字符串表達式
(4)HelpContents對象
① Item:該屬性用于在當(dāng)前內(nèi)容樹中查找Help內(nèi)容的位置。
② 語法:Application.HelpContents.Item (path)
③ 示例:Set item = Application.HelpContents.Item("File Operations\To Restore Files")
(5)HelpContentsItem對象:該對象具有以下4種屬性和所選的一種方法。
① Location屬性。該屬性用于返回條目的位置。其語法結(jié)構(gòu)為:
Item.Location
示例:
Set item = Application.HelpContents.Item("File Operations\To Restore Files") item_loc = item.Location
② Name屬性。該屬性可返回條目的名稱。其語法格式為:
Item.Name
示例:
Set item = Application.HelpContents.Item("File Operations\To Restore Files") item_name = item.Name
③ Select方法。該方法用于選擇條目。其語法結(jié)構(gòu)為:
Item.Select
示例:
Set item = Application.HelpContents.Item("File Operations").SubItem(3) item.Select
④ SubItem屬性。該屬性可在其位置返回條目的子條目。其語法結(jié)構(gòu)為:
Item.SubItem(pos)
示例:
Set item = Application.HelpContents.Item("File Operations").SubItem(3) item_name = item.Name
⑤ SubItemCount屬性。該屬性可返回在條目中子條目的數(shù)量。其語法結(jié)構(gòu)為:
Item.SubItemCount
示例:
Set item = Application.HelpContents.Item("File Operations") count = item.SubItemCount
(6)HelpPane對象
Docuement屬性:該屬性用于在Help窗口中顯示HTML文件。該順序使用Document Object Model(DOM)。
(7)Main View對象:該對象使用以下9種方法。
① ActiveLayer方法。該方法可顯示活動層組合框。其語法結(jié)構(gòu)為:
MainView.ActiveLayer
示例:
set layerCombo = MainView.ActiveLayer
② ToggleFullScreen方法。該方法用于打開全屏模式。其語法格式為:
MainView.ToggleFullScreen()
③ MouseDown方法。該法用于仿效按下鼠標(biāo)按鈕。其語法格式為:
MainView.MouseDown(x, y, button)
參數(shù):x為任意數(shù)值表達式,光標(biāo)的x坐標(biāo)。y為任意數(shù)值表達式,光標(biāo)的y坐標(biāo)。button為按下按鈕的字符串表達式。
按鈕的參數(shù)可能包括一個或多個以下所列的值和修改,見表8-19。
表8-19 MainView.MouseDown button值

④ MouseEndDrag方法。該方法用于仿效結(jié)束鼠標(biāo)拖曳操作。其語法結(jié)構(gòu)為:
MainView.MouseEndDrag(x, y, button)
參數(shù):x為任意數(shù)值表達式,光標(biāo)對應(yīng)的x坐標(biāo)。y為任意數(shù)值表達式,光標(biāo)對應(yīng)的y坐標(biāo)。button為按下按鈕的字符串表達式,見表8-20。
表8-20 MainView.MouseEndDrag button值

⑤ MouseMove方法。該方法用于仿效鼠標(biāo)移動。其語法結(jié)構(gòu)為:
MainView.MouseMove(x, y, button)
參數(shù):x為任意數(shù)值表達式,光標(biāo)對應(yīng)的x坐標(biāo)。y為任意數(shù)值表達式,光標(biāo)對應(yīng)的y坐標(biāo)。button為字符串表達式,見表8-21
表8-21 MainView.MouseMove button值

示例:MainView.MouseMove(300,350,"+L")
⑥ MouseStartDrag方法。該方法用于仿效開始一個鼠標(biāo)拖曳操作。其語法格式為:
MainView.MouseStartDrag(x, y, button)
參數(shù):x為任意數(shù)值表達式,光標(biāo)對應(yīng)的x坐標(biāo)。y為任意數(shù)值表達式,光標(biāo)對應(yīng)的y坐標(biāo)。button為字符串表達式,見表8-22。
表8-22 MainView.MouseStartDrag button值

⑦ MouseUp方法。該方法用于仿效釋放鼠標(biāo)按鈕。其語法結(jié)構(gòu)為:
MainView.MouseUp(x, y, button)
參數(shù):x為任意數(shù)值表達式,光標(biāo)對應(yīng)的x坐標(biāo)。y為任意數(shù)值表達式,光標(biāo)對應(yīng)的y坐標(biāo)。button為字符串表達式,見表8-23。
表8-23 MainView.MouseUp button值

⑧ Print方法。該方法用于打印當(dāng)前視圖。其語法結(jié)構(gòu)為:
MainView.Print()
⑨ PrintPreview方法。該方法用于打開打印預(yù)覽模式。其語法結(jié)構(gòu)為:
MainView.PrintPreview()
(8)Project Explorer對象:該對象是樹形視圖類型,體現(xiàn)為該程序的項目瀏覽器。
- Hands-On MQTT Programming with Python
- 無線局域網(wǎng)設(shè)計與優(yōu)化
- 路由與交換技術(shù)
- 電子電路設(shè)計與應(yīng)用手冊
- 天線測量實用手冊(第2版)
- 5G移動通信:無線網(wǎng)絡(luò)優(yōu)化技術(shù)與實踐
- LED照明電路設(shè)計100例
- 綠色數(shù)據(jù)中心基礎(chǔ)設(shè)施建設(shè)及應(yīng)用指南
- 新型諾基亞手機維修技巧
- 軌道交通信號基礎(chǔ)設(shè)備應(yīng)用與維護
- 彩色電視機元器件檢測·選用·代換手冊
- 中老年人輕松玩轉(zhuǎn)智能手機
- Android Studio移動應(yīng)用開發(fā)從入門到實戰(zhàn)(微課版)
- 電子工程師自學(xué)速成:設(shè)計篇
- EMP芯片組手機電路原理與維修