![UG NX 8.0數(shù)控加工基礎(chǔ)教程【蒼松書苑】_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/790f55cd-28bd-47ea-a9e1-c59f2f034329/790f55cd-28bd-47ea-a9e1-c59f2f0343291.gif)
![UG NX 8.0數(shù)控加工基礎(chǔ)教程【蒼松書苑】_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/790f55cd-28bd-47ea-a9e1-c59f2f034329/790f55cd-28bd-47ea-a9e1-c59f2f0343292.gif)
![UG NX 8.0數(shù)控加工基礎(chǔ)教程【蒼松書苑】_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/790f55cd-28bd-47ea-a9e1-c59f2f034329/790f55cd-28bd-47ea-a9e1-c59f2f0343293.gif)
![UG NX 8.0數(shù)控加工基礎(chǔ)教程【蒼松書苑】_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/790f55cd-28bd-47ea-a9e1-c59f2f034329/790f55cd-28bd-47ea-a9e1-c59f2f0343294.gif)
![UG NX 8.0數(shù)控加工基礎(chǔ)教程【蒼松書苑】_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/790f55cd-28bd-47ea-a9e1-c59f2f034329/790f55cd-28bd-47ea-a9e1-c59f2f0343295.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第7章 后置處理,平面銑、型腔銑、固定軸曲面輪廓銑和車削加工,其操作結(jié)果是生成刀具軌跡(即刀位文件),該文件無(wú)法被數(shù)控機(jī)床識(shí)別,須將該文件轉(zhuǎn)化為機(jī)床可識(shí)別的文件格式。而不同廠商生產(chǎn)的機(jī)床硬件條件和數(shù)控系統(tǒng)不同。因此,刀具位置源文件需要經(jīng)過(guò)后置處理,將刀具軌跡轉(zhuǎn)化為數(shù)控程序,以適合不同機(jī)床控制系統(tǒng)的特定要求。這種根據(jù)機(jī)床參數(shù)格式化刀位文件,并生成特定機(jī)床可以識(shí)別的NC程序的過(guò)程稱為后置處理,1,實(shí)際生產(chǎn)中,數(shù)控機(jī)床的類型很多,每種類型的機(jī)床都有其獨(dú)特的硬件性能和要求,比如它可以有垂直或水平的主軸,可以2-5軸聯(lián)動(dòng)等。另外,每種機(jī)床又受其控制器(controller)的控制,控制器接受刀位文件并指
2、揮刀具的運(yùn)動(dòng)或其它的行為(比如冷卻液的開關(guān)),但控制器也無(wú)法接受這種未經(jīng)處理的刀位文件。因此,刀位文件必須經(jīng)后處理修改成適合于不同機(jī)床/控制器的特定參數(shù)。后處理最基本的兩個(gè)要素就是刀軌數(shù)據(jù)(Tool Path Data)和后處理器(A Postprocessor)。如圖7-1所示,圖7-1 后處理,2,NX軟件提供了兩種后處理方法:一種是用圖形后處理模塊GPM(Graphics Postprocessor Module)進(jìn)行后置處理,另一種是用NX POST后處理器進(jìn)行后置處理。GPM后處理方法是一種傳統(tǒng)的方法,用GPM進(jìn)行后置處理時(shí),需要使用機(jī)床數(shù)據(jù)文件(MDF),機(jī)床數(shù)據(jù)文件包含對(duì)刀具路徑
3、進(jìn)行后置處理時(shí)所需的機(jī)床數(shù)據(jù)。 NX POST通過(guò)建立與機(jī)床控制系統(tǒng)相匹配的兩個(gè)文件事件處理文件和定義文件,可以輕松完成從簡(jiǎn)單到任意復(fù)雜機(jī)床控制系統(tǒng)的后處理,用戶甚至可以直接修改這兩個(gè)文件實(shí)現(xiàn)用戶特定的信息處理,3,圖形后置處理器(GPM)是一個(gè)可執(zhí)行文件,其名稱為GPM.EXE。圖形后置處理器可以將機(jī)床數(shù)據(jù)文件轉(zhuǎn)換為特定格式的數(shù)控程序,從而控制特定的數(shù)控機(jī)床進(jìn)行加工。機(jī)床數(shù)據(jù)文件(Machine Date File,簡(jiǎn)寫MDFA)是一種包括特定數(shù)控機(jī)床信息和數(shù)據(jù)程序輸出規(guī)則等內(nèi)容的文件,其后綴有兩種:MDF和MDFA,其中MDF為二進(jìn)制文件,MDFA為文本文件,這兩類文件都可以用圖形后置處理
4、器進(jìn)行后置處理。圖形后置處理器后置處理過(guò)程如圖7-2所示,首先在加工應(yīng)用中生成刀具位置源文件(CLSF),并用機(jī)床數(shù)據(jù)文件生成器(MDFC)建立機(jī)床數(shù)據(jù)文件(MDF),然后,進(jìn)入GPM模塊,對(duì)刀具位置源文件進(jìn)行后置處理。GPM和MDF文件相互依賴,GPM必須根據(jù)MDF文件中的數(shù)據(jù)來(lái)設(shè)置其開關(guān)量,同時(shí)MDF文件也只能用于GPM進(jìn)行后置處理,最后利用圖形后置處理器對(duì)機(jī)床數(shù)控文件進(jìn)行處理,輸出特定格式的數(shù)控程序,4,7.3.1 NX POST后置處理器簡(jiǎn)介 NX POST以NX CAM中生成的零件加工刀軌作為輸入,輸出符合機(jī)床控制系統(tǒng)要求的NC代碼。與圖形后置處理器相比,NX POST可直接從零件的
5、刀具路徑中提取路徑信息進(jìn)行后置處理,而不必生成刀具位置源文件,因此使用起來(lái)更方便。后置處理過(guò)程中,用戶可以通過(guò)NX POST建立和機(jī)床控制系統(tǒng)相關(guān)的事件處理文件和事件定義文件,然后通過(guò)NX整合在一起,完成簡(jiǎn)單或任意復(fù)雜機(jī)床的后處理。NX POST通過(guò)與圖形后置處理器相似的途徑,將產(chǎn)生的刀具路徑轉(zhuǎn)換成指定的機(jī)床控制系統(tǒng)所能接收的加工指令,5,圖7-3 后處理原理圖,刀位文件 (CLSF,圖形后置處理器 (GPW Post,數(shù)據(jù)程序(NC,機(jī)床數(shù)據(jù)文件 (MDFA,6,事件生成器 事件生成器(Event Generator)是一個(gè)提取零件的刀具路徑數(shù)據(jù)的文件,它能將提取的刀具路徑數(shù)據(jù)作為事件和參數(shù)
6、傳遞給加工輸出管理器。每一特定事件在機(jī)床運(yùn)行時(shí)將導(dǎo)致一些特別的機(jī)床動(dòng)作,存儲(chǔ)在與這個(gè)事件相關(guān)的參數(shù)中的信息用來(lái)進(jìn)一步確定這些特別的機(jī)床動(dòng)作。例如,一個(gè)“Linear-Move”事件將導(dǎo)致機(jī)床驅(qū)動(dòng)刀具沿直線移動(dòng),而具體移動(dòng)到的位置則由存儲(chǔ)在與此事件相關(guān)的參數(shù)X、Y、Z中的數(shù)值來(lái)進(jìn)一步確定。在這個(gè)例子中,事件生成器將觸發(fā)“Linear-Move”事件,并且將代表終點(diǎn)位置的數(shù)據(jù)裝入相應(yīng)的參數(shù)X、Y、Z,然后這些信息傳送到MOM去處理。 事件處理器 事件處理器(Event Handler)是描述機(jī)床配置的兩個(gè)文件之一,是為特定機(jī)床及其控制系統(tǒng)開發(fā)的一套程序。它包含根據(jù)機(jī)床控制器定義的一系列事件處理指令
7、,這些指令將定義刀軌數(shù)據(jù)如何被處理,以及每個(gè)事件在機(jī)床上如何被執(zhí)行。用來(lái)定義事件處理器指令的計(jì)算機(jī)語(yǔ)言是TCL(Tool command language),故該文件的擴(kuò)展名為.tcl。TCL是一種解釋型的計(jì)算機(jī)語(yǔ)言,以其小巧、靈活、功能強(qiáng)大、易于擴(kuò)展、易于集成而聞名。當(dāng)UG/Post進(jìn)行后處理時(shí),TCL語(yǔ)言的解釋器充當(dāng)了UG/Post的轉(zhuǎn)換器,7,事件定義文件 事件定義文件(Definition File)定義事件處理后輸出的數(shù)據(jù)格式,是包含特定機(jī)床靜態(tài)信息的文件,包括:輸出格式、有效字符(X、Y等)及一般機(jī)床屬性等。該文件的擴(kuò)展名為.def。 后處理用戶界面文件 通過(guò)它用戶可利用Post
8、Builder 來(lái)修改事件處理文件和事件定義文件。 輸出文件 在UG/post執(zhí)行時(shí),即后處理時(shí),用戶指定一個(gè)文件來(lái)存儲(chǔ)后處理生成的NC指令,這個(gè)指定的文件就是輸出文件。輸出文件的內(nèi)容由事件處理器來(lái)控制,而輸出文件中NC指令的格式由定義文件來(lái)控制,8,7.3.2 NX POST進(jìn)行后置處理,NX POST進(jìn)行后置處理的步驟為: 生成工件的刀具路徑; 通過(guò)后處理構(gòu)建器Post Builder生成事件管理器文件和定義文件,并將生成的事件管理器文件和定義文件增添到后置處理模板中; 進(jìn)入NX POST后置處理環(huán)境進(jìn)行后置處理,從而生成可用于指定機(jī)床的數(shù)控程序,9,7.4 后置處理構(gòu)造器,后置處理構(gòu)造器
9、(Post Builder)是為特定機(jī)床和數(shù)控系統(tǒng)定制后置處理器的一種工具。它是一個(gè)圖形界面編輯工具,應(yīng)用后置處理構(gòu)造器可以建立兩個(gè)與特定機(jī)床相關(guān)的后置處理文件:事件管理器文件(.tcl)和定義文件(.def),同時(shí)產(chǎn)生一個(gè).pui文件。 后置處理構(gòu)造器可以靈活定義NC程序輸出的格式和順序、程序頭尾、操作頭尾、換刀以及循環(huán)等。 目前后置處理構(gòu)造器可以定義下列的機(jī)床的后處理: 3軸機(jī)床 3軸車銑 4軸帶轉(zhuǎn)臺(tái)或擺頭機(jī)床 5軸帶雙轉(zhuǎn)臺(tái)或雙擺頭機(jī)床 5軸帶一轉(zhuǎn)臺(tái)一擺頭機(jī)床 2軸車床,10,7.4.1后置處理構(gòu)建器簡(jiǎn)介,1. 進(jìn)入后置處理構(gòu)建器 在WINDOWS操作系統(tǒng)中,單擊“開始”“程序”“Siem
10、ens NX8.0”“加工”“后處理構(gòu)造器”,即可進(jìn)入“后置處理構(gòu)造器”起始對(duì)話框,如圖7-9所示,11,圖7-9 后置處理構(gòu)建器對(duì)話框,在圖7-9對(duì)話框中單擊圖標(biāo),彈出如圖7-10所示對(duì)話框。新建機(jī)床后置處理文件時(shí),首先需在對(duì)話框的Post Name文本框中輸入后置處理文件名稱,然后指定后置處理輸出的單位并選取機(jī)床的類型,設(shè)置各選項(xiàng)后,最后單擊【OK】,進(jìn)入圖7-12所示的機(jī)床后置處理參數(shù)設(shè)置對(duì)話框,12,圖7-10 新建機(jī)床后對(duì)話框,13,圖7-11 機(jī)床對(duì)話框,14,2. 機(jī)床參數(shù)設(shè)置 如圖7-11所示的對(duì)話框,即可進(jìn)行所選機(jī)床后置處理參數(shù)設(shè)置。在對(duì)話框的頂排選項(xiàng)中選取機(jī)床選項(xiàng)(Mach
11、ine Tool),顯示機(jī)床的相關(guān)參數(shù)。 機(jī)床各參數(shù)的設(shè)置方法說(shuō)明如下。 (1)Display Machine Tool(顯示機(jī)床) 單擊Display Machine Tool按鈕,彈出所選機(jī)床類型的結(jié)構(gòu)示意圖。如圖7-12所示。 (2)General Parameters(通用參數(shù)) 在圖7-11中選取該選項(xiàng),可以設(shè)置機(jī)床各坐標(biāo)軸的最大行程、機(jī)床原點(diǎn)的坐標(biāo)位置、機(jī)床直線移動(dòng)的最小步距、機(jī)床快速移動(dòng)的最大速度等參數(shù),15,圖7-12 機(jī)床參數(shù)示意圖,16,3. 程序與刀具路徑 (ProgramTool Path) 在圖7-11最上部一排選項(xiàng)中,選取程序與刀具路徑選項(xiàng)圖標(biāo),對(duì)話框切換為如圖7-
12、13所示形式。這里,可設(shè)置程序與刀具路徑的相關(guān)參數(shù)。 (1)Program(程序) 在圖7-13所示對(duì)話框中,可設(shè)置與程序相關(guān)的參數(shù)。如程序的起始順序、操作的起始順序、刀具路徑(機(jī)床控制、刀具運(yùn)動(dòng)等)、操作結(jié)束順序、程序結(jié)束順序等。 (2)G Codes(G代碼) 單擊圖7-13中的G Codes選項(xiàng),對(duì)話框切換到G代碼設(shè)置對(duì)話框,可以根據(jù)機(jī)床控制器,為各種機(jī)床運(yùn)動(dòng)或加工操作設(shè)置G代碼。如直線插補(bǔ)運(yùn)動(dòng)設(shè)置為G01,順圓弧插補(bǔ)運(yùn)動(dòng)設(shè)置為G02,快速運(yùn)動(dòng)設(shè)置為G00等。 (3)M Codes(M代碼) 單擊圖7-13中的M Codes選項(xiàng),對(duì)話框切換到M代碼設(shè)置對(duì)話框,可以設(shè)置各種輔助功能代碼,如
13、主軸的起停、冷卻液的開關(guān)、主軸的順時(shí)針旋轉(zhuǎn)或逆時(shí)針旋轉(zhuǎn)、刀具的換刀等。對(duì)于M代碼的分配需根據(jù)具體機(jī)床的輔助功能進(jìn)行設(shè)置,17,4)Word Summary(字綜合) 該選項(xiàng)用于綜合設(shè)置數(shù)控程序中可能出現(xiàn)的各種代碼。如代碼的數(shù)據(jù)類型(文本類型或數(shù)值型)、代碼符號(hào)、整數(shù)的位數(shù)、是否帶小數(shù)及小數(shù)位數(shù)等。 (5)Word Sequencing(字順序) 該選項(xiàng)設(shè)置程序段中各代碼的順序。如設(shè)置每一程序語(yǔ)句中的G代碼、輔助代碼、各坐標(biāo)軸的坐標(biāo)值等參數(shù)的順序。 (6)Custom Command(用戶命令) 該選項(xiàng)用于自定義后置處理命令,18,圖7-14 機(jī)床后置處理參數(shù)設(shè)置對(duì)話框,19,NC數(shù)據(jù)定義 在圖
14、7-11最上部一排選項(xiàng)中,選取“NC數(shù)據(jù)定義(NC Data Definitions)”選項(xiàng)圖標(biāo),系統(tǒng)彈出如圖7-14所示對(duì)話框,可定義相關(guān)NC數(shù)據(jù)。 (1)BLOCK (塊) 該選項(xiàng)定義各種代碼和操作的程序塊。例如,輔助功能應(yīng)包括哪些字符,循環(huán)鉆孔應(yīng)包括哪些代碼和字符等。 (2)WORD(字) 該選項(xiàng)定義數(shù)控程序中可能出現(xiàn)的各種代碼及其格式。例如,坐標(biāo)軸代碼、準(zhǔn)備功能代碼、進(jìn)給量代碼、刀具代碼等分別采用哪個(gè)字符表示,以及它們的格式等。 (3)FORMAT(格式) 該選項(xiàng)定義數(shù)控程序中可能出現(xiàn)的各種數(shù)據(jù)格式。如坐標(biāo)值、準(zhǔn)備功能代碼、進(jìn)給量、主軸轉(zhuǎn)速等參數(shù)的數(shù)據(jù)格式。 (4)Other Data
15、 Elements(其它數(shù)據(jù)元素) 該選項(xiàng)定義其他數(shù)據(jù),如程序序號(hào)的起始值、增量以及跳過(guò)程序段的首字符等,20,圖7-15 機(jī)床后置處理參數(shù)設(shè)置對(duì)話框,21,5. Output Settings(輸出設(shè)定) 在圖7-11最上部一排選項(xiàng)中,選取Output Settings圖標(biāo),系統(tǒng)彈出如圖7-15所示的對(duì)話框,可控制列表文件是否輸出和輸入內(nèi)容以及其它控制內(nèi)容。 (1)Listing File (列表文件) 輸出項(xiàng)目有X,Y,Z坐標(biāo)值,第四、第五軸角度值,還有轉(zhuǎn)速和進(jìn)給。可以定義打印頁(yè)的長(zhǎng)、寬及文件的后綴。 (2)Other Options(其它選擇) “確定”按鈕Output Warning
16、Message(輸出錯(cuò)誤信息),該選項(xiàng)設(shè)置設(shè)置為ON,后置處理時(shí)輸出錯(cuò)誤信息log文件。 Display Verbose Error Message(顯示錯(cuò)誤信息),該選項(xiàng)設(shè)置設(shè)置為ON,后置處理時(shí)顯示錯(cuò)誤信息。 Source Users Tcl file(源用戶Tcl 文件),選擇一個(gè)Tcl 源文件。 Generate Virtual N/C Controller (VMC)(產(chǎn)生虛擬控制器),該選項(xiàng)設(shè)置設(shè)置為ON,用于集成仿真與校驗(yàn)(ISV),系統(tǒng)會(huì)另外產(chǎn)生一個(gè)*_vnc.tcl文件,22,圖7-16 機(jī)床后置處理參數(shù)設(shè)置對(duì)話框,23,24,3)Post File Proview(文件預(yù)覽
17、) 在圖7-11最上部一排選項(xiàng)中,選取Post File Preview圖標(biāo),系統(tǒng)彈出如圖7-17所示的對(duì)話框,可以在后處理文件在保存之前瀏覽定義文件和事件處理文件。上面的窗口為改動(dòng)后最新內(nèi)容,下面的窗口為舊內(nèi)容,25,7.5 定制后處理,7.5.1 UG/Post的開發(fā)方法 UG/Post的開發(fā),其核心是TCL語(yǔ)言的運(yùn)用。TCL是一種解釋型的計(jì)算機(jī)語(yǔ)言,由John K. Ousterhout于加洲大學(xué)伯克利分校開發(fā)成功,目前由SUN微系統(tǒng)公司提供支持和維護(hù)。TCL是一款自由軟件,并且它可支持Unigraphics NX當(dāng)前支持的所有平臺(tái)。雖然本質(zhì)上都是使用TCL語(yǔ)言,但具體實(shí)現(xiàn)上卻有兩種途經(jīng)
18、:PostBuilder和手工編程 PostBuilder是UG系統(tǒng)為用戶提供的后處理器開發(fā)工具。使用它用戶只需要根據(jù)自己機(jī)床的特點(diǎn),在GUI環(huán)境下進(jìn)行一系列的設(shè)置即可完成后處理器的開發(fā)。值得一提是,使用PostBuilder不僅生成事件處理器文件(*.tcl)、定義文件(*.def),還生成一個(gè)特別的文件(*.pui)。這個(gè)文件是專供PostBuilder使用的,記錄著關(guān)閉PostBuilder時(shí)的配置,對(duì)后處理器來(lái)說(shuō),這個(gè)文件是多余的。關(guān)于 PostBuilder的更多信息可參見UG幫助文檔。 手工開發(fā)后處理器,就是直接用TCL語(yǔ)言編寫事件處理器文件(*.tcl)和定義文件(*.def)。
19、這要求用戶具有TCL語(yǔ)言的基本知識(shí),同時(shí),還要了解UG對(duì)TCL語(yǔ)言的擴(kuò)展部分。雖然手工開發(fā)后處理器對(duì)用戶技能要求較高,但手工開發(fā)靈活、方便,開發(fā)的后處理器精煉、易懂、執(zhí)行效率高,26,7.5.2 TCL語(yǔ)言簡(jiǎn)介,TCL(Tool Command Language)即腳本命令語(yǔ)言,它是一種易學(xué)易用易于擴(kuò)展的腳本語(yǔ)言,主要用于發(fā)布命令給一些交互程序如文本編輯器、調(diào)試器和shell,它有一個(gè)簡(jiǎn)單的語(yǔ)法和很強(qiáng)可擴(kuò)充性,可以創(chuàng)建新的過(guò)程以增強(qiáng)其內(nèi)建命令的能力。其次,它由作為基本命令解釋器嵌入到工具(比如編輯器、調(diào)試器等)中的一個(gè)庫(kù)包組成,可以被嵌入應(yīng)用程序。這個(gè)庫(kù)提供了一個(gè)分析器,一組內(nèi)置的實(shí)用命令和一
20、個(gè)C接口,其中,分析器用于執(zhí)行內(nèi)部命令的例程和可以使之?dāng)U充(定義新的過(guò)程)的庫(kù)函數(shù),這個(gè)庫(kù)還實(shí)現(xiàn)了提供通用的編程構(gòu)造的一組內(nèi)置命令,比如變量、列表、表達(dá)式、條件、循環(huán)和過(guò)程。單個(gè)的應(yīng)用程序可以用特定于應(yīng)用的命令來(lái)擴(kuò)展基本的 TCL 語(yǔ)言;工具通過(guò)C接口用特定于工具的命令增加內(nèi)置命令。TCL在與窗口組件庫(kù)整合的時(shí)候特別有吸引力,它通過(guò)提供變量、過(guò)程、表達(dá)式等機(jī)制增進(jìn)了組件的可編程性并允許用戶修改編程組件的外觀和動(dòng)作并且它在交互式程序之間提供一個(gè)簡(jiǎn)單但強(qiáng)力的通信機(jī)制,27,7.5.2 TCL語(yǔ)言簡(jiǎn)介,TCL 語(yǔ)言有三個(gè)特色: (1)語(yǔ)法簡(jiǎn)單,容易上手; (2)TCL用來(lái)執(zhí)行與控制系統(tǒng)相關(guān)的程序,T
21、CL具備足夠的程序化能力與存取檔案、程序及網(wǎng)絡(luò)的功能,供組裝既有軟件組件以建立符合需求的新工具。 (3)可內(nèi)嵌到應(yīng)用程序中,讓軟件使用者透過(guò)程序員提供的高階 TCL 指令,自訂應(yīng)用程序的行為。 除了上述三個(gè)主要特色外,下面幾點(diǎn)也是 TCL 語(yǔ)言成功的原因: 跨平臺(tái),可在各種系統(tǒng) (UNIX、Windows、Macintosh 等) 執(zhí)行 TCL 程序 強(qiáng)大的字符串處理能力,協(xié)助程序員使用表示式的規(guī)則或樣式,用來(lái)搜尋、比對(duì)、粹取或是取代符合樣式的復(fù)雜字符串。 可用 C 語(yǔ)言開發(fā) TCL Extension Library,擴(kuò)充 TCL 的指令與能力。 總結(jié)來(lái)說(shuō),TCL 語(yǔ)言就像是一瓶膠水一般,只
22、要收集可運(yùn)用的應(yīng)用程序與 TCL Package,在這些接口上涂涂抹抹,寫個(gè)簡(jiǎn)單的 TCL Script (TCL 指令的集合),在短暫的時(shí)間內(nèi)就可組裝出一個(gè)新工具來(lái),28,7.5.3 TCL語(yǔ)法簡(jiǎn)介,1基本語(yǔ)法 TCL語(yǔ)言的語(yǔ)法實(shí)際上是一些TCL解釋器怎樣對(duì)TCL命令進(jìn)行分析的規(guī)則的集合,TCL 的基本語(yǔ)法類似于 UNIX shell:命令由用空格或 TAB 分隔的一個(gè)或多個(gè)字段組成。第一個(gè)字段是命令的名字,它可以是內(nèi)置命令、特定于應(yīng)用的命令、或者是由一系列的 TCL命令組成的過(guò)程。在第一個(gè)單詞后面的字段都作為參數(shù)傳遞給命令。 (1)注釋 關(guān)于TCL的注釋有一個(gè)特殊的要求:必須出現(xiàn)在TCL解
23、釋器期望命令的第一個(gè)字符出現(xiàn)的地方,才被當(dāng)作注釋。 例如: set a 1 # Not a comment set b 2 ; # this is a comment 第一個(gè)例子中#及其后面的內(nèi)容會(huì)被當(dāng)作set 的參數(shù)而非注釋從而導(dǎo)致參數(shù)個(gè)數(shù)錯(cuò)誤;但第二個(gè)被解釋為注釋,因?yàn)?前面有一個(gè)分號(hào),而分號(hào)和換行一樣被看作是命令的分隔符。 (2)eval命令 eval命令是一個(gè)用來(lái)構(gòu)造和執(zhí)行TCL腳本的命令,其語(yǔ)法為,29,eval arg arg . 它可以接收一個(gè)或多個(gè)參數(shù),然后把所有的參數(shù)以空格隔開組合到一起成為一個(gè)腳本,然后對(duì)這個(gè)腳本進(jìn)行求值。 (3)source命令 source命令讀一個(gè)文件
24、并把這個(gè)文件的內(nèi)容作為一個(gè)腳本進(jìn)行求值。例如: source e:/tcl# 注意!變量名稱是 PI*2 puts $PI*2 set PI TCL 的 set 指令除了有設(shè)定變量值的用途外,也可以用來(lái)取出變量的內(nèi)容,如上列程序最后一行使用 set 指令取出 PI的值 (注意!這邊不用在變量名稱前加上 $ 符號(hào))。 (2)unset 指令用來(lái)刪除一個(gè)或多個(gè)變量,來(lái)釋放內(nèi)存空間: unset x y PI,38,TCL變量 TCL只支持一種數(shù)據(jù)類型:字符串(string)。所有的命令,命令的所有的參數(shù),命令的結(jié)果,所有的變量都是字符串。TCL變量根據(jù)其結(jié)構(gòu)的復(fù)雜程度分為“簡(jiǎn)單變量”和“數(shù)組變量”
25、兩類。 1簡(jiǎn)單變量 一個(gè)TCL的簡(jiǎn)單變量包含兩個(gè)部分:名字和值,其中名字和值都可以是任意字符串。不過(guò)為了更好的使用變量置換功能,變量名最好按CC+語(yǔ)言中標(biāo)識(shí)符的命名規(guī)則命名。這是因?yàn)門CL解釋器在分析一個(gè)變量置換時(shí),只把從符號(hào)往后直到第一個(gè)不是字母、數(shù)字或下劃線的字符之間的單詞符號(hào)作為要被置換的變量的名字。例如: set a 2 set a.1 5 set b $a.1 在最后一個(gè)命令行,我們希望把變量a.1的值付給b,但是TCL解釋器在分析時(shí)只把$符號(hào)之后直到第一個(gè)不是字母、數(shù)字或下劃線的字符(這里是.)之間的單詞符號(hào)(這里是a)當(dāng)作要被置換的變量的名字,所以TCL解釋器把a(bǔ)置換成2,然后把
26、字符串“2.1”付給變量b。這顯然與我們的初衷不同。當(dāng)然,如果變量名中有不是字母、數(shù)字或下劃線的字符又要用變量置換,可以用花括號(hào)把變量名括起來(lái)。例如,39,set b $a.1 2數(shù)組變量 數(shù)組是一些元素的集合。TCL的數(shù)組和一般編程語(yǔ)言中的數(shù)組有很大的區(qū)別。在TCL中,不能單獨(dú)聲明一個(gè)數(shù)組,數(shù)組只能和數(shù)組元素一起聲明。數(shù)組中數(shù)組元素的名字包含兩部分:數(shù)組名和數(shù)組中元素的名字,TCL中數(shù)組元素的名字(下標(biāo))可以為任何字符串。 例如: set day(Monday) 1 set day(Tuesday) 2 第一個(gè)命令生成一個(gè)名為day的數(shù)組,同時(shí)在數(shù)組中生成一個(gè)名為Monday的數(shù)組元素,并把
27、值置為1,第二個(gè)命令生成一個(gè)名為Tuesday的數(shù)組元素,并把值置為2。 在數(shù)組元素的置換中,除了有括號(hào)之外,數(shù)組元素的置換和簡(jiǎn)單變量類似。例如,40,set a Monday set day(Monday) 1 set b $day(Monday) /b的值為1,即day(Monday)的值。 set c $day($a) /c的值為1,即day(Monday)的值。 3相關(guān)指令 (1)set 指令:TCL 的變量可以隨時(shí)建立不用事先宣告,變量名稱的取法也沒(méi)有任何限制,所以可以使用任何字符來(lái)為變量命名,甚至變量名和指令名稱相同也沒(méi)問(wèn)題。使用時(shí)只有一點(diǎn)要注意的就是 TCL 是大小寫有區(qū)別的語(yǔ)言
28、。通常,我們以 set 指令來(lái)設(shè)定變量值: set x 5 set y 6 set PI 3.14 set PI*2 6.28 ;# 注意!變量名稱是 PI*2 puts $PI*2 set PI TCL 的 set 指令除了有設(shè)定變量值的用途外,也可以用來(lái)取出變量的內(nèi)容,如上列程序最后一行使用 set 指令取出 PI的值 (注意!這邊不用在變量名稱前加上 $ 符號(hào))。 (2)unset 指令用來(lái)刪除一個(gè)或多個(gè)變量,來(lái)釋放內(nèi)存空間: unset x y PI,41,7.5.5 數(shù)據(jù)型態(tài) TCL 語(yǔ)言的基本數(shù)據(jù)型態(tài)有:string、list、array、handle(不經(jīng)常使用,不作介紹)。 1
29、string 字符串?dāng)?shù)據(jù)型態(tài) 字符串是 TCL 語(yǔ)言最基本的數(shù)據(jù)型態(tài),常見的字符串處理指令有:string、append、format、scan 以及 binary。 (1)string指令 語(yǔ)法:string subcmd arg arg. string命令具有強(qiáng)大的操作字符串的功能,并通過(guò)其中的subcmd來(lái)區(qū)別具體將要執(zhí)行的string操作。他們中的一些如下: string length string:傳回字符串的字符數(shù) string range string i j:取出string字符串中從i到j(luò)位置的字符 string index string charIndex:傳回index位
30、置所在的字符 string tolower string first last:將所定義的字符串范圍中之字符轉(zhuǎn)換為小寫字符 string replace string first last newstring:以空字符串或 newstring取代指定范圍的字符串,42,string equal -nocase -length int string1 string2:比較string1和string2的內(nèi)容,若相同傳回1,否則傳回0 string match -nocase pattern string:如果pattern 匹配string,那么返回1,否則返回0 string compare
31、-nocase -length int string1 string2:如果有 -length 參數(shù),那么只比較前 int 個(gè)字符 string first string1 string2 startindex:在string2 中從頭查找與string1匹配的字符序列,如果找到,那么就返回匹配的第一個(gè)字母所在的位置(0-based)。如果沒(méi)有找到,那么返回-1 string trim string chars 返回值為:從string字符串的首尾刪除掉了字符集合chars中的字符后的字符串。如果沒(méi)有給出chars,那么將刪除掉spaces、tabs、newlines、carriage ret
32、urns這些字符,43,2)append指令 append 指令用來(lái)將新的項(xiàng)目附加到指定變量的內(nèi)容后。 例: % set foo rick rick % append foo i love you rickiloveyou (3)format指令 與C語(yǔ)言中的printf十分相似的指令,format指令依據(jù)指定的格式將字符串格式化。 format spec value1 value2 (4)scan指令 與C語(yǔ)言中的scanf十分相似的指令,scan指令依據(jù)指定的格式化條件剖析字符串并將結(jié)果放入變量中。 scan string format ?varName? ?varName? (5)bin
33、ary指令 binary format template value ?value .? binary scan value template variable ?variable ? binary指令比較復(fù)雜,只需看幾個(gè) binary 指令常用的用法即可 使用 c 為模板(template),將數(shù)值 97 格式化為 ASCII字符: % binary format c 97 =a 使用 c 為模板(template),將字符 6 的 ASCII 值讀進(jìn) var1 變數(shù)中: % set input 6 % binary scan $input c var1 % set var1 = 54,44
34、,2list串行數(shù)據(jù)型態(tài) list這個(gè)概念在TCL中是用來(lái)表示集合的。TCL中l(wèi)ist是由一堆元素組成的有序集合,list可以嵌套定義,list每個(gè)元素可以是任意字符串,也可以是list。TCL提供了很多基本命令對(duì)list進(jìn)行操作: (1)list指令 語(yǔ)法:list value value.:這個(gè)命令生成一個(gè)list,list的元素就是所有的value。 (2)concat指令 語(yǔ)法:concat list list.:這個(gè)命令把多個(gè)list合成一個(gè)list。 (3)llength指令 語(yǔ)法:llength list:返回list的元素個(gè)數(shù)。 (4)lindex指令 語(yǔ)法:lindex list index:返回list的第index個(gè)(0-based)元素。 (5)lrange指令 語(yǔ)法:lrange list first last:返回list的第first (0-based)到第last (0-based)元素組成的串,如果last的值是end,就是從第first個(gè)直到串的最后。 (
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年脫扣器自動(dòng)拍打清洗機(jī)項(xiàng)目可行性研究報(bào)告
- 2025年玻璃濾片包裝回收箱項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)變速箱吊掛行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)鋼絲喉箍數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)車輛舉升機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年圣誕熱氣球項(xiàng)目投資價(jià)值分析報(bào)告
- 船舶行業(yè)綠色船舶與智能船舶研發(fā)方案
- 標(biāo)準(zhǔn)設(shè)備租賃合同
- 智慧城市建設(shè)方案編制指南
- 航空餐食液氮運(yùn)輸服務(wù)協(xié)議
- 駐場(chǎng)保潔方案
- 中國(guó)心理衛(wèi)生協(xié)會(huì)家庭教育指導(dǎo)師參考試題庫(kù)及答案
- 智能廣告投放技術(shù)方案
- 知識(shí)產(chǎn)權(quán)保護(hù)執(zhí)法
- 高質(zhì)量社區(qū)建設(shè)的路徑與探索
- 數(shù)字化時(shí)代的酒店員工培訓(xùn):技能升級(jí)
- 足球守門員撲救技巧:撲救結(jié)合守護(hù)球門安全
- 《學(xué)術(shù)規(guī)范和論文寫作》課件全套 第1-10章 知:認(rèn)識(shí)研究與論文寫作 - 引文規(guī)范
- 起重機(jī)更換卷筒施工方案
- 01智慧物流信息技術(shù)概述
- 精神發(fā)育遲滯的護(hù)理查房
評(píng)論
0/150
提交評(píng)論