UG外掛開(kāi)發(fā)教程3_GRIP編程規(guī)則_第1頁(yè)
UG外掛開(kāi)發(fā)教程3_GRIP編程規(guī)則_第2頁(yè)
UG外掛開(kāi)發(fā)教程3_GRIP編程規(guī)則_第3頁(yè)
UG外掛開(kāi)發(fā)教程3_GRIP編程規(guī)則_第4頁(yè)
UG外掛開(kāi)發(fā)教程3_GRIP編程規(guī)則_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、CAD 軟件二次開(kāi)發(fā)技術(shù)基礎(chǔ)軟件二次開(kāi)發(fā)技術(shù)基礎(chǔ)24苗苗 盈盈102CAD軟件二次開(kāi)發(fā)軟件二次開(kāi)發(fā)技術(shù)基礎(chǔ)技術(shù)基礎(chǔ)第二章 GRIP編程基礎(chǔ)(二)3lGRIP書(shū)寫(xiě)規(guī)則l變量、數(shù)組和字符串l轉(zhuǎn)移結(jié)構(gòu)、邏輯結(jié)構(gòu)和循環(huán)結(jié)構(gòu)l子程序的應(yīng)用l文件管理本章主要內(nèi)容本章主要內(nèi)容4l變量的種類(lèi)、聲明和賦值l數(shù)組與子集l字符串的運(yùn)算、編輯2.2 變量、數(shù)組和字符串變量、數(shù)組和字符串5l變量的種類(lèi)l數(shù)字變量l簡(jiǎn)單變量:唯一不用聲明的變量種類(lèi)。indx=1flag=2l數(shù)組變量:包含一維數(shù)組變量、二維數(shù)組變量、三維數(shù)組變量。flag(1)=0flag(1,1)=1falg(1,1,1)=2l字符串變量Str=unig

2、raphics$簡(jiǎn)單字符串變量Str(1)=unigraphics$一維字符串變量Str(1,1)=unigraphics $二維字符串變量2.2.1 變量的種類(lèi)、聲明和賦值變量的種類(lèi)、聲明和賦值6l變量的種類(lèi)l實(shí)體變量Pt=point/0,0,0$簡(jiǎn)單實(shí)體變量Pt(1)=point/1,2,3$一維實(shí)體變量Ln(1,1)=line/0,0,0,1,1,1$二維實(shí)體變量Ln(1,1,1)=line/1,2,3,4,5,6$三維實(shí)體變量l有關(guān)變量名的規(guī)定l一般情況下,變量名的有效長(zhǎng)度是32個(gè)字符,但未聲明的簡(jiǎn)單數(shù)字變量的有效長(zhǎng)度是6個(gè)字符;l變量名必須是以字母開(kāi)頭的字母或字母與數(shù)字的組合;l變量

3、名中不得含有非字母和數(shù)字的其他一切字符;l不得將任何主詞或輔詞作為變量名。 2.2.1 變量的種類(lèi)、聲明和賦值變量的種類(lèi)、聲明和賦值7l變量的聲明 一般情況下,除了簡(jiǎn)單數(shù)字變量不許聲明外,其他所有變量必須聲明。l數(shù)字變量格式:number/name(dim1,dim2,dim3),name(dim1,dim2,dim3)+name:變量名;dim1,dim2,dim3:數(shù)字?jǐn)?shù)組變量的維數(shù)。2.2.1 變量的種類(lèi)、聲明和賦值變量的種類(lèi)、聲明和賦值number/flag$簡(jiǎn)單數(shù)字變量number/flag(10)$一維數(shù)字?jǐn)?shù)組變量number/flag(10,10)$二維數(shù)字?jǐn)?shù)組變量number/

4、flag(10,10,10)$三維數(shù)字?jǐn)?shù)組變量8l變量的聲明l字符串變量格式:string/name(dim1,dim2,n),name(dim1,dim2),n+name:變量名;dim1,dim2:字符串?dāng)?shù)組變量的維數(shù);n:字符串的長(zhǎng)度,n132。2.2.1 變量的種類(lèi)、聲明和賦值變量的種類(lèi)、聲明和賦值String/str(10)$簡(jiǎn)單字符串變量String/str(3,10)$一維字符串?dāng)?shù)組變量String/str(2,2,10)$二維字符串?dāng)?shù)組變量9l變量的聲明l實(shí)體變量格式:entity/name(dim1,dim2,dim3),name(dim1,dim2,dim3)+name:變

5、量名;dim1,dim2,dim3:實(shí)體數(shù)組變量的維數(shù)。2.2.1 變量的種類(lèi)、聲明和賦值變量的種類(lèi)、聲明和賦值Entity/pt$簡(jiǎn)單實(shí)體變量Entity/ln(10)$一維實(shí)體數(shù)組變量Entity/face(10,10)$二維實(shí)體數(shù)組變量Entity/body(10,10,10)$三維實(shí)體數(shù)組變量10l變量的賦值 變量的賦值有三種方式:一般賦值語(yǔ)句、data賦值語(yǔ)句、實(shí)體賦值語(yǔ)句。l一般賦值語(yǔ)句 一般賦值語(yǔ)句就是利用算術(shù)運(yùn)算符對(duì)數(shù)字和字符串變量進(jìn)行賦值。Num=10+4*indx/6-sh*5$對(duì)數(shù)字變量進(jìn)行賦值Str=unigraphics$對(duì)字符串變量進(jìn)行賦值lData賦值語(yǔ)句格式:d

6、ata/name,value,value+,name,value,value+name:變量名;value:賦予變量名的值。2.2.1 變量的種類(lèi)、聲明和賦值變量的種類(lèi)、聲明和賦值Number/flag(2)String/str(2,20)Data/flag,10,20,str, unigraphics ,grip利用上式的data語(yǔ)句賦值之后,flag(1)=10,flag(2)=20,str(1)= unigraphics ,str(2)=grip。11l實(shí)體賦值語(yǔ)句 實(shí)體賦值就是調(diào)用函數(shù)生成一個(gè)實(shí)體。此外,還可以用&nulent對(duì)實(shí)體賦空值2.2.1 變量的種類(lèi)、聲明和賦值變量的

7、種類(lèi)、聲明和賦值entity/pt,cenpt=point/0,1,0cen=circle/center,pt,radius,1,start,0,end,180entity/ptpt=&nulent12 GRIP規(guī)定數(shù)組的最大維數(shù)是三維。數(shù)組可分為數(shù)字?jǐn)?shù)組、字符串?dāng)?shù)組、實(shí)體數(shù)組。一個(gè)數(shù)組的一部分元素的集合稱(chēng)為子集。l子集的使用規(guī)定l子集的上標(biāo)必須大于下標(biāo),否則程序運(yùn)行時(shí)將出錯(cuò);l除在data賦值語(yǔ)句中不能使用子集外。程序的其他任何地方都能使用子集;l子集的上標(biāo)和下標(biāo)可以是常數(shù)或數(shù)學(xué)表達(dá)式。l子集的表示方法l常數(shù)子集。子集的下標(biāo)和上標(biāo)都是常數(shù),如a(1.5),b(2*3.9)。l固定數(shù)組

8、子集。子集的下標(biāo)是變量,上標(biāo)是常數(shù),如a(i.i+3)。l變量數(shù)組子集。子集的下標(biāo)和上標(biāo)是任意的數(shù)學(xué)表達(dá)式,如a(absf(x).j+3)。2.2.2 數(shù)組與子集數(shù)組與子集13l字符串的運(yùn)算l字符串之間可以進(jìn)行運(yùn)算。l若字符串變量的聲明長(zhǎng)度大于字符串長(zhǎng)度,則尾部保留空字符;反之,則保留與聲明長(zhǎng)度一致的被截尾字符串。l利用lenf函數(shù)可以計(jì)算字符串的長(zhǎng)度,具體格式是:lenf(string)。2.2.3 字符串的運(yùn)算、編輯字符串的運(yùn)算、編輯String/str1(30),str2(30),addstr(50)str1=unigraphicsstr2=open gripaddstr=str1+st

9、r2$addstr的值為:unigraphics open grip14l字符串的編輯 字符串的編輯主要有:字符串的提取、字符串的替換、字符串的比較和字符串的搜索l字符串的提取格式:substr(object string,pos,count)object string:目標(biāo)字符串;pos:字符串的提取位置;count:提取的字符串個(gè)數(shù)。2.2.3 字符串的運(yùn)算、編輯字符串的運(yùn)算、編輯String/str1(10),str2(10)str1=unigraphicsstr2=substr(str1,3,4) $str2為:igraprint/str215l字符串的編輯l字符串的替換格式:reps

10、tr(object string,search string,replace string,pos)object string:目標(biāo)字符串;search string:目標(biāo)字符串中被替換的字符串;replace string:用于替換的字符串;pos:搜索search string的開(kāi)始位置。2.2.3 字符串的運(yùn)算、編輯字符串的運(yùn)算、編輯String/object(80),search(10),replace(10),str1(80),str2(80)object=object string_search stringsearch=stringrepalce=charactersstr1=r

11、epstr(object,search,replace,1)str2=repstr(object,search,replace,15)print/str1,str2$str1為object characters_search string$str2為object string_search characters16l字符串的編輯l字符串的比較格式:cmpstr(string1, string2)字符串的比較實(shí)際上是比較它們的ASCII碼。若兩者的ASCII碼相等,則返回0;若string1string2,則返回-1;若string1string2,則返回1。2.2.3 字符串的運(yùn)算、編輯字符串

12、的運(yùn)算、編輯17l字符串的編輯l字符串的搜索格式:fndstr(object string,search string, pos)object string:目標(biāo)字符串;search string:搜索的字符串;pos:開(kāi)始搜索的位置。 若目標(biāo)字符串不包含搜索的字符串,則返回值為0;若包含要搜索的字符串,則返回第一次發(fā)現(xiàn)搜索字符串的位置。2.2.3 字符串的運(yùn)算、編輯字符串的運(yùn)算、編輯18l轉(zhuǎn)移結(jié)構(gòu)及應(yīng)用實(shí)例l無(wú)條件轉(zhuǎn)移結(jié)構(gòu)l條件轉(zhuǎn)移結(jié)構(gòu)l邏輯結(jié)構(gòu)及其應(yīng)用實(shí)例l關(guān)系運(yùn)算符和邏輯運(yùn)算式lIF語(yǔ)句(邏輯IF語(yǔ)句、條件IF語(yǔ)句、塊IF語(yǔ)句)l循環(huán)結(jié)構(gòu)及其應(yīng)用實(shí)例lIF函數(shù)與JUMP語(yǔ)句循環(huán)lDO循環(huán)

13、l循環(huán)嵌套2.3 轉(zhuǎn)移轉(zhuǎn)移/邏輯邏輯/循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)19轉(zhuǎn)移結(jié)構(gòu)是GRIP程序最常見(jiàn)的結(jié)構(gòu)形式之一。l無(wú)條件轉(zhuǎn)移結(jié)構(gòu) 所謂無(wú)條件轉(zhuǎn)移結(jié)構(gòu),就是程序執(zhí)行到該語(yǔ)句時(shí)必須轉(zhuǎn)向某個(gè)語(yǔ)句標(biāo)號(hào),執(zhí)行該語(yǔ)句標(biāo)號(hào)下的程序指令。l條件轉(zhuǎn)移結(jié)構(gòu)所謂條件轉(zhuǎn)移結(jié)構(gòu),就是程序按照用戶(hù)的選擇有條件的確定程序執(zhí)行指令。格式:JUMP/ label:+ ,expression2. 3. 1 轉(zhuǎn)移結(jié)構(gòu)及其應(yīng)用實(shí)例轉(zhuǎn)移結(jié)構(gòu)及其應(yīng)用實(shí)例【例2.2】20GRIP語(yǔ)言有六種關(guān)系運(yùn)算符和三種邏輯運(yùn)算式。l關(guān)系運(yùn)算符 關(guān)系運(yùn)算符只能用于算術(shù)表達(dá)式之間的比較,不能用于實(shí)體變量和字符串變量之間的比較。比較的結(jié)果不是一個(gè)數(shù)值,而是一個(gè)邏輯值,

14、即“真”或“假”。2. 3. 2 邏輯結(jié)構(gòu)及其應(yīng)用實(shí)例邏輯結(jié)構(gòu)及其應(yīng)用實(shí)例關(guān)系運(yùn)算符關(guān)系運(yùn)算符含義含義關(guān)系運(yùn)算符關(guān)系運(yùn)算符含義含義=等于不等于小于大于=大于或等于21l邏輯運(yùn)算式三種邏輯運(yùn)算式:AND(邏輯與)、OR(邏輯或)、NOT(邏輯非)。2. 3. 2 邏輯結(jié)構(gòu)及其應(yīng)用實(shí)例邏輯結(jié)構(gòu)及其應(yīng)用實(shí)例ABNOT ANOT BA AND BA OR B真真假假真真真假假真假真假真真假假真假假真真假假22lIF語(yǔ)句l邏輯IF語(yǔ)句格式:IF/logical expression,statement若邏輯表達(dá)式logical expression為真,則執(zhí)行statement語(yǔ)句;若不為真,則不執(zhí)行s

15、tatement語(yǔ)句。l條件IF語(yǔ)句格式:IF/numerical expression,label1:,label2:,label3:若算數(shù)表達(dá)式numerical expression0,則轉(zhuǎn)向語(yǔ)句標(biāo)號(hào)label1:若算數(shù)表達(dá)式numerical expression=0,則轉(zhuǎn)向語(yǔ)句標(biāo)號(hào)labe2:若算數(shù)表達(dá)式numerical expression0,則轉(zhuǎn)向語(yǔ)句標(biāo)號(hào)labe3:l塊IF語(yǔ)句2.3.2 邏輯結(jié)構(gòu)及應(yīng)用實(shí)例邏輯結(jié)構(gòu)及應(yīng)用實(shí)例23lIF語(yǔ)句l塊IF語(yǔ)句格式:IFTHEN/logical expression1statement block1 ELSEIF/logical exp

16、ression2statement block2 ELSEIF/logical expression3statement block3 ELSEstatement blocks ENDIF2.3.2 邏輯結(jié)構(gòu)及應(yīng)用實(shí)例邏輯結(jié)構(gòu)及應(yīng)用實(shí)例【例2.3】24lIF函數(shù)與jump語(yǔ)句循環(huán) GRIP語(yǔ)言中循環(huán)結(jié)構(gòu)只有一個(gè)DO函數(shù),但調(diào)用DO函數(shù)必須先確定循環(huán)次數(shù)。若循環(huán)次數(shù)不確定,則可采用IF函數(shù)與jump語(yǔ)句相結(jié)合來(lái)實(shí)現(xiàn)程序的循環(huán)。2.3.3 循環(huán)結(jié)構(gòu)及應(yīng)用實(shí)例循環(huán)結(jié)構(gòu)及應(yīng)用實(shí)例【例2.4】25lDO循環(huán)格式:DO/label:,index,start,end,incrementstatement b

17、locklabel:label:語(yǔ)句標(biāo)號(hào);index:循環(huán)變量;start:循環(huán)變量的初值;end:循環(huán)變量的終值;increment:循環(huán)變量的步長(zhǎng),默認(rèn)為1;2.3.3 循環(huán)結(jié)構(gòu)及應(yīng)用實(shí)例循環(huán)結(jié)構(gòu)及應(yīng)用實(shí)例【例2.5】:用于實(shí)現(xiàn)垂直于一條曲線生成多個(gè)平面。26l嵌套循環(huán)所謂循環(huán)嵌套就是一個(gè)循環(huán)內(nèi)又包含另一個(gè)完整的循環(huán)。DO/L10:,i,1,nposlayer/work,i+1mat1=matrix/transl,lnidirDO/L20:j,I,nbar1bar1(j)=transf/mat1,barr(j)L120:call/pt2pt,p12,p23,p12n,p23n,mat1DO

18、/L30:,j,1,nbar2bar2(j)=transf/mat1,barj(2)L30:DO/L40:,j,1,nbar3nbar3(j)=transf/mat1,nbar3(j)L40:group/bar1(1.nbar1),bar2(1.nbar2),bar3(1.nbar3)L10:2.3.3 循環(huán)結(jié)構(gòu)及應(yīng)用實(shí)例循環(huán)結(jié)構(gòu)及應(yīng)用實(shí)例27l嵌套循環(huán)循環(huán)嵌套有以下規(guī)定:l多種循環(huán)都可以嵌套。但循環(huán)不能交叉;l并列的循環(huán)允許用一個(gè)變量作為循環(huán)變量;l嵌套循環(huán)允許用同一語(yǔ)句標(biāo)號(hào)作為程序的結(jié)束;l任何循環(huán)體值允許向循環(huán)體外轉(zhuǎn)移,不能向循環(huán)體內(nèi)轉(zhuǎn)移;l若DO循環(huán)與快IF語(yǔ)句同時(shí)使用,則塊IF語(yǔ)句在循環(huán)體內(nèi)必須完整。2.3.3 循環(huán)結(jié)構(gòu)及應(yīng)用實(shí)例循環(huán)結(jié)構(gòu)及應(yīng)用實(shí)例28 在某個(gè)復(fù)雜的GRIP程序中,為了使程序結(jié)構(gòu)合理、條理清晰,通常將程序中多次出現(xiàn)的程序內(nèi)容或功能單獨(dú)編寫(xiě)程序,這種程序稱(chēng)為子程序。子程序在結(jié)構(gòu)上與主程序基本相似,但子程序也不同于主程序:l子程序的第一個(gè)語(yǔ)句必須是p

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論