




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第7章后置處理平面銑、型腔銑、固定軸曲面輪廓銑和車削加工,其操作結(jié)果是生成刀具軌跡(即刀位文件),該文件無法被數(shù)控機(jī)床識別,須將該文件轉(zhuǎn)化為機(jī)床可識別的文件格式。而不同廠商生產(chǎn)的機(jī)床硬件條件和數(shù)控系統(tǒng)不同。因此,刀具位置源文件需要經(jīng)過后置處理,將刀具軌跡轉(zhuǎn)化為數(shù)控程序,以適合不同機(jī)床/控制系統(tǒng)的特定要求。這種根據(jù)機(jī)床參數(shù)格式化刀位文件,并生成特定機(jī)床可以識別的NC程序的過程稱為后置處理。實(shí)際生產(chǎn)中,數(shù)控機(jī)床的類型很多,每種類型的機(jī)床都有其獨(dú)特的硬件性能和要求,比如它可以有垂直或水平的主軸,可以2-5軸聯(lián)動(dòng)等。另外,每種機(jī)床又受其控制器(controller)的控制,控制器接受刀位文件并指揮刀具的運(yùn)動(dòng)或其它的行為(比如冷卻液的開關(guān)),但控制器也無法接受這種未經(jīng)處理的刀位文件。因此,刀位文件必須經(jīng)后處理修改成適合于不同機(jī)床/控制器的特定參數(shù)。后處理最基本的兩個(gè)要素就是刀軌數(shù)據(jù)(ToolPathData)和后處理器(APostprocessor)。如圖7-1所示。
圖7-1后處理NX軟件提供了兩種后處理方法:一種是用圖形后處理模塊GPM(GraphicsPostprocessorModule)進(jìn)行后置處理,另一種是用NXPOST后處理器進(jìn)行后置處理。GPM后處理方法是一種傳統(tǒng)的方法,用GPM進(jìn)行后置處理時(shí),需要使用機(jī)床數(shù)據(jù)文件(MDF),機(jī)床數(shù)據(jù)文件包含對刀具路徑進(jìn)行后置處理時(shí)所需的機(jī)床數(shù)據(jù)。NXPOST通過建立與機(jī)床控制系統(tǒng)相匹配的兩個(gè)文件——事件處理文件和定義文件,可以輕松完成從簡單到任意復(fù)雜機(jī)床控制系統(tǒng)的后處理,用戶甚至可以直接修改這兩個(gè)文件實(shí)現(xiàn)用戶特定的信息處理。圖形后置處理器(GPM)是一個(gè)可執(zhí)行文件,其名稱為GPM.EXE。圖形后置處理器可以將機(jī)床數(shù)據(jù)文件轉(zhuǎn)換為特定格式的數(shù)控程序,從而控制特定的數(shù)控機(jī)床進(jìn)行加工。機(jī)床數(shù)據(jù)文件(MachineDateFile,簡寫MDFA)是一種包括特定數(shù)控機(jī)床信息和數(shù)據(jù)程序輸出規(guī)則等內(nèi)容的文件,其后綴有兩種:MDF和MDFA,其中MDF為二進(jìn)制文件,MDFA為文本文件,這兩類文件都可以用圖形后置處理器進(jìn)行后置處理。圖形后置處理器后置處理過程如圖7-2所示,首先在加工應(yīng)用中生成刀具位置源文件(CLSF),并用機(jī)床數(shù)據(jù)文件生成器(MDFC)建立機(jī)床數(shù)據(jù)文件(MDF),然后,進(jìn)入GPM模塊,對刀具位置源文件進(jìn)行后置處理。GPM和MDF文件相互依賴,GPM必須根據(jù)MDF文件中的數(shù)據(jù)來設(shè)置其開關(guān)量,同時(shí)MDF文件也只能用于GPM進(jìn)行后置處理,最后利用圖形后置處理器對機(jī)床數(shù)控文件進(jìn)行處理,輸出特定格式的數(shù)控程序。7.3.1NXPOST后置處理器簡介
NXPOST以NXCAM中生成的零件加工刀軌作為輸入,輸出符合機(jī)床控制系統(tǒng)要求的NC代碼。與圖形后置處理器相比,NXPOST可直接從零件的刀具路徑中提取路徑信息進(jìn)行后置處理,而不必生成刀具位置源文件,因此使用起來更方便。后置處理過程中,用戶可以通過NXPOST建立和機(jī)床控制系統(tǒng)相關(guān)的事件處理文件和事件定義文件,然后通過NX整合在一起,完成簡單或任意復(fù)雜機(jī)床的后處理。NXPOST通過與圖形后置處理器相似的途徑,將產(chǎn)生的刀具路徑轉(zhuǎn)換成指定的機(jī)床控制系統(tǒng)所能接收的加工指令。圖7-3后處理原理圖刀位文件(CLSF)圖形后置處理器(GPWPost)數(shù)據(jù)程序(NC)機(jī)床數(shù)據(jù)文件(MDFA)事件生成器 事件生成器(EventGenerator)是一個(gè)提取零件的刀具路徑數(shù)據(jù)的文件,它能將提取的刀具路徑數(shù)據(jù)作為事件和參數(shù)傳遞給加工輸出管理器。每一特定事件在機(jī)床運(yùn)行時(shí)將導(dǎo)致一些特別的機(jī)床動(dòng)作,存儲在與這個(gè)事件相關(guān)的參數(shù)中的信息用來進(jìn)一步確定這些特別的機(jī)床動(dòng)作。例如,一個(gè)“Linear-Move”事件將導(dǎo)致機(jī)床驅(qū)動(dòng)刀具沿直線移動(dòng),而具體移動(dòng)到的位置則由存儲在與此事件相關(guān)的參數(shù)X、Y、Z中的數(shù)值來進(jìn)一步確定。在這個(gè)例子中,事件生成器將觸發(fā)“Linear-Move”事件,并且將代表終點(diǎn)位置的數(shù)據(jù)裝入相應(yīng)的參數(shù)X、Y、Z,然后這些信息傳送到MOM去處理。事件處理器 事件處理器(EventHandler)是描述機(jī)床配置的兩個(gè)文件之一,是為特定機(jī)床及其控制系統(tǒng)開發(fā)的一套程序。它包含根據(jù)機(jī)床控制器定義的一系列事件處理指令,這些指令將定義刀軌數(shù)據(jù)如何被處理,以及每個(gè)事件在機(jī)床上如何被執(zhí)行。用來定義事件處理器指令的計(jì)算機(jī)語言是TCL(Toolcommandlanguage),故該文件的擴(kuò)展名為.tcl。TCL是一種解釋型的計(jì)算機(jī)語言,以其小巧、靈活、功能強(qiáng)大、易于擴(kuò)展、易于集成而聞名。當(dāng)UG/Post進(jìn)行后處理時(shí),TCL語言的解釋器充當(dāng)了UG/Post的轉(zhuǎn)換器。事件定義文件事件定義文件(DefinitionFile)定義事件處理后輸出的數(shù)據(jù)格式,是包含特定機(jī)床靜態(tài)信息的文件,包括:輸出格式、有效字符(X、Y等)及一般機(jī)床屬性等。該文件的擴(kuò)展名為.def。后處理用戶界面文件通過它用戶可利用PostBuilder來修改事件處理文件和事件定義文件。輸出文件
在UG/post執(zhí)行時(shí),即后處理時(shí),用戶指定一個(gè)文件來存儲后處理生成的NC指令,這個(gè)指定的文件就是輸出文件。輸出文件的內(nèi)容由事件處理器來控制,而輸出文件中NC指令的格式由定義文件來控制。7.3.2NXPOST進(jìn)行后置處理NXPOST進(jìn)行后置處理的步驟為:生成工件的刀具路徑;通過后處理構(gòu)建器PostBuilder生成事件管理器文件和定義文件,并將生成的事件管理器文件和定義文件增添到后置處理模板中;進(jìn)入NXPOST后置處理環(huán)境進(jìn)行后置處理,從而生成可用于指定機(jī)床的數(shù)控程序。7.4后置處理構(gòu)造器后置處理構(gòu)造器(PostBuilder)是為特定機(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)臺或擺頭機(jī)床5軸帶雙轉(zhuǎn)臺或雙擺頭機(jī)床5軸帶一轉(zhuǎn)臺一擺頭機(jī)床2軸車床7.4.1后置處理構(gòu)建建器簡介1.進(jìn)入后置處理理構(gòu)建器在WINDOWS操作系統(tǒng)中,,單擊“開始始”→“程序”→“SiemensNX8.0”→“加工”→“后處理構(gòu)造造器”,即可可進(jìn)入“后置置處理構(gòu)造器器”起始對話話框,如圖7-9所示。圖7-9后置處理構(gòu)建建器對話框在圖7-9對話框中單擊擊圖標(biāo),彈出出如圖7-10所示對話框。。新建機(jī)床后后置處理文件件時(shí),首先需需在對話框的的PostName文本框中輸入入后置處理文文件名稱,然然后指定后置置處理輸出的的單位并選取取機(jī)床的類型型,設(shè)置各選選項(xiàng)后,最后后單擊【OK】,進(jìn)入圖7-12所示的機(jī)床后后置處理參數(shù)數(shù)設(shè)置對話框框。圖7-10新建機(jī)床后對對話框圖7-11機(jī)床對話框2.機(jī)床參數(shù)設(shè)置置如圖7-11所示的對話框框,即可進(jìn)行行所選機(jī)床后后置處理參數(shù)數(shù)設(shè)置。在對對話框的頂排排選項(xiàng)中選取取機(jī)床選項(xiàng)((MachineTool),顯示機(jī)床床的相關(guān)參數(shù)數(shù)。機(jī)床各參數(shù)的的設(shè)置方法說說明如下。(1)DisplayMachineTool(顯示機(jī)床))單擊DisplayMachineTool按鈕,彈出所所選機(jī)床類型型的結(jié)構(gòu)示意意圖。如圖7-12所示。(2)GeneralParameters(通用參數(shù)))在圖7-11中選取該選項(xiàng)項(xiàng),可以設(shè)置置機(jī)床各坐標(biāo)標(biāo)軸的最大行行程、機(jī)床原原點(diǎn)的坐標(biāo)位位置、機(jī)床直直線移動(dòng)的最最小步距、機(jī)機(jī)床快速移動(dòng)動(dòng)的最大速度度等參數(shù)。圖7-12機(jī)床參數(shù)示意意圖3.程序與刀具路路徑(Program&ToolPath)在圖7-11最上部一排選選項(xiàng)中,選取取程序與刀具具路徑選項(xiàng)圖圖標(biāo),對話框框切換為如圖圖7-13所示形式。這這里,可設(shè)置置程序與刀具具路徑的相關(guān)關(guān)參數(shù)。(1)Program(程序)在圖7-13所示對話框中中,可設(shè)置與與程序相關(guān)的的參數(shù)。如程程序的起始順順序、操作的的起始順序、、刀具路徑((機(jī)床控制、、刀具運(yùn)動(dòng)等等)、操作結(jié)結(jié)束順序、程程序結(jié)束順序序等。(2)GCodes(G代碼)單擊圖7-13中的GCodes選項(xiàng),對話框框切換到G代碼設(shè)置對話話框,可以根根據(jù)機(jī)床控制制器,為各種種機(jī)床運(yùn)動(dòng)或或加工操作設(shè)設(shè)置G代碼。如直線線插補(bǔ)運(yùn)動(dòng)設(shè)設(shè)置為G01,順圓弧插補(bǔ)補(bǔ)運(yùn)動(dòng)設(shè)置為為G02,快速運(yùn)動(dòng)設(shè)設(shè)置為G00等。(3)MCodes(M代碼)單擊圖7-13中的MCodes選項(xiàng),對話框框切換到M代碼設(shè)置對話話框,可以設(shè)設(shè)置各種輔助助功能代碼,,如主軸的起起停、冷卻液液的開關(guān)、主主軸的順時(shí)針針旋轉(zhuǎn)或逆時(shí)時(shí)針旋轉(zhuǎn)、刀刀具的換刀等等。對于M代碼的分配需需根據(jù)具體機(jī)機(jī)床的輔助功功能進(jìn)行設(shè)置置。(4)WordSummary(字綜合)該選項(xiàng)用于綜綜合設(shè)置數(shù)控控程序中可能能出現(xiàn)的各種種代碼。如代代碼的數(shù)據(jù)類類型(文本類類型或數(shù)值型型)、代碼符符號、整數(shù)的的位數(shù)、是否否帶小數(shù)及小小數(shù)位數(shù)等。。(5)WordSequencing(字順序)該選項(xiàng)設(shè)置程程序段中各代代碼的順序。。如設(shè)置每一一程序語句中中的G代碼、輔助代代碼、各坐標(biāo)標(biāo)軸的坐標(biāo)值值等參數(shù)的順順序。(6)CustomCommand(用戶命令))該選項(xiàng)用于自自定義后置處處理命令。圖7-14機(jī)床后置處理理參數(shù)設(shè)置對對話框N/C數(shù)據(jù)據(jù)定定義義在圖圖7-11最上上部部一一排排選選項(xiàng)項(xiàng)中中,,選選取取““N/C數(shù)據(jù)據(jù)定定義義((N/CDataDefinitions)””選選項(xiàng)項(xiàng)圖圖標(biāo)標(biāo),,系系統(tǒng)統(tǒng)彈彈出出如如圖圖7-14所示示對對話話框框,,可可定定義義相相關(guān)關(guān)N/C數(shù)據(jù)據(jù)。。(1)BLOCK(塊塊))該選選項(xiàng)項(xiàng)定定義義各各種種代代碼碼和和操操作作的的程程序序塊塊。。例例如如,,輔輔助助功功能能應(yīng)應(yīng)包包括括哪哪些些字字符符,,循循環(huán)環(huán)鉆鉆孔孔應(yīng)應(yīng)包包括括哪哪些些代代碼碼和和字字符符等等。。(2)WORD(字字))該選選項(xiàng)項(xiàng)定定義義數(shù)數(shù)控控程程序序中中可可能能出出現(xiàn)現(xiàn)的的各各種種代代碼碼及及其其格格式式。。例例如如,,坐坐標(biāo)標(biāo)軸軸代代碼碼、、準(zhǔn)準(zhǔn)備備功功能能代代碼碼、、進(jìn)進(jìn)給給量量代代碼碼、、刀刀具具代代碼碼等等分分別別采采用用哪哪個(gè)個(gè)字字符符表表示示,,以以及及它它們們的的格格式式等等。。(3)FORMAT(格格式式))該選選項(xiàng)項(xiàng)定定義義數(shù)數(shù)控控程程序序中中可可能能出出現(xiàn)現(xiàn)的的各各種種數(shù)數(shù)據(jù)據(jù)格格式式。。如如坐坐標(biāo)標(biāo)值值、、準(zhǔn)準(zhǔn)備備功功能能代代碼碼、、進(jìn)進(jìn)給給量量、、主主軸軸轉(zhuǎn)轉(zhuǎn)速速等等參參數(shù)數(shù)的的數(shù)數(shù)據(jù)據(jù)格格式式。。(4)OtherDataElements(其其它它數(shù)數(shù)據(jù)據(jù)元元素素))該選選項(xiàng)項(xiàng)定定義義其其他他數(shù)數(shù)據(jù)據(jù),,如如程程序序序序號號的的起起始始值值、、增增量量以以及及跳跳過過程程序序段段的的首首字字符符等等。。圖7-15機(jī)床床后后置置處處理理參參數(shù)數(shù)設(shè)設(shè)置置對對話話框框5.OutputSettings(輸輸出出設(shè)設(shè)定定))在圖圖7-11最上上部部一一排排選選項(xiàng)項(xiàng)中中,,選選取取OutputSettings圖標(biāo)標(biāo),,系系統(tǒng)統(tǒng)彈彈出出如如圖圖7-15所示示的的對對話話框框,,可可控控制制列列表表文文件件是是否否輸輸出出和和輸輸入入內(nèi)內(nèi)容容以以及及其其它它控控制制內(nèi)內(nèi)容容。。(1)ListingFile(列列表表文文件件))輸出出項(xiàng)項(xiàng)目目有有X,Y,Z坐標(biāo)標(biāo)值值,,第第四四、、第第五五軸軸角角度度值值,,還還有有轉(zhuǎn)轉(zhuǎn)速速和和進(jìn)進(jìn)給給。??煽梢砸远ǘx義打打印印頁頁的的長長、、寬寬及及文文件件的的后后綴綴。。(2)OtherOptions(其它選選擇)“確定””按鈕OutputWarningMessage(輸出錯(cuò)錯(cuò)誤信息息),該該選項(xiàng)設(shè)設(shè)置設(shè)置置為ON,后置處處理時(shí)輸輸出錯(cuò)誤誤信息log文件。DisplayVerboseErrorMessage(顯示錯(cuò)錯(cuò)誤信息息),該該選項(xiàng)設(shè)設(shè)置設(shè)置置為ON,后置處處理時(shí)顯顯示錯(cuò)誤誤信息。。SourceUser’sTclfile(源用戶戶Tcl文件),,選擇一一個(gè)Tcl源文件。。GenerateVirtualN/CController(VMC)(產(chǎn)生虛虛擬控制制器),,該選項(xiàng)項(xiàng)設(shè)置設(shè)設(shè)置為ON,用于集集成仿真真與校驗(yàn)驗(yàn)(ISV),系統(tǒng)統(tǒng)會另外外產(chǎn)生一一個(gè)*_vnc.tcl文件。圖7-16機(jī)床后置置處理參參數(shù)設(shè)置置對話框框(3)PostFileProview(文件預(yù)預(yù)覽)在圖7-11最上部一一排選項(xiàng)項(xiàng)中,選選取PostFilePreview圖標(biāo),系系統(tǒng)彈出出如圖7-17所示的對對話框,,可以在在后處理理文件在在保存之之前瀏覽覽定義文文件和事事件處理理文件。。上面的的窗口為為改動(dòng)后后最新內(nèi)內(nèi)容,下下面的窗窗口為舊舊內(nèi)容。。7.5定制后處處理7.5.1UG/Post的開發(fā)方方法UG/Post的開發(fā),,其核心心是TCL語言的運(yùn)運(yùn)用。TCL是一種解解釋型的的計(jì)算機(jī)機(jī)語言,,由JohnK.Ousterhout于加洲大大學(xué)伯克克利分校校開發(fā)成成功,目目前由SUN微系統(tǒng)公公司提供供支持和和維護(hù)。。TCL是一款自自由軟件件,并且且它可支支持UnigraphicsNX當(dāng)前支持持的所有有平臺。。雖然本本質(zhì)上都都是使用用TCL語言,但但具體實(shí)實(shí)現(xiàn)上卻卻有兩種種途經(jīng)::PostBuilder和手工編編程PostBuilder是UG系統(tǒng)為用用戶提供供的后處處理器開開發(fā)工具具。使用用它用戶戶只需要要根據(jù)自自己機(jī)床床的特點(diǎn)點(diǎn),在GUI環(huán)境下進(jìn)進(jìn)行一系系列的設(shè)設(shè)置即可可完成后后處理器器的開發(fā)發(fā)。值得得一提是是,使用用PostBuilder不僅生成成事件處處理器文文件(*.tcl)、定義文文件(*.def),還生成成一個(gè)特特別的文文件(*.pui)。這個(gè)文文件是專專供PostBuilder使用的,,記錄著著關(guān)閉PostBuilder時(shí)的配置置,對后后處理器器來說,,這個(gè)文文件是多多余的。。關(guān)于PostBuilder的更多信信息可參參見UG幫助文檔檔。手工開發(fā)發(fā)后處理理器,就就是直接接用TCL語言編寫寫事件處處理器文文件(*.tcl)和定義文文件(*.def)。這要求求用戶具具有TCL語言的基基本知識識,同時(shí)時(shí),還要要了解UG對TCL語言的擴(kuò)擴(kuò)展部分分。雖然然手工開開發(fā)后處處理器對對用戶技技能要求求較高,,但手工工開發(fā)靈靈活、方方便,開開發(fā)的后后處理器器精煉、、易懂、、執(zhí)行效效率高。。7.5.2TCL語言簡介介TCL(ToolCommandLanguage)即腳本命命令語言,,它是一種種易學(xué)易用用易于擴(kuò)展展的腳本語語言,主要要用于發(fā)布布命令給一一些交互程程序如文本本編輯器、、調(diào)試器和和shell,它有一個(gè)個(gè)簡單的語語法和很強(qiáng)強(qiáng)可擴(kuò)充性性,可以創(chuàng)創(chuàng)建新的過過程以增強(qiáng)強(qiáng)其內(nèi)建命命令的能力力。其次,,它由作為基基本命令解解釋器嵌入入到工具(比如編輯器器、調(diào)試器器等)中的一個(gè)庫庫包組成,,可以被嵌嵌入應(yīng)用程程序。這個(gè)庫提供了一個(gè)個(gè)分析器,,一組內(nèi)置置的實(shí)用命命令和一個(gè)個(gè)C接口,其中中,分析器器用于執(zhí)行內(nèi)內(nèi)部命令的的例程和可可以使之?dāng)U擴(kuò)充(定義義新的過程程)的庫函函數(shù),這個(gè)庫還實(shí)實(shí)現(xiàn)了提供供通用的編編程構(gòu)造的的一組內(nèi)置置命令,比比如變量、、列表、表表達(dá)式、條條件、循環(huán)環(huán)和過程。。單個(gè)的應(yīng)應(yīng)用程序可可以用特定定于應(yīng)用的的命令來擴(kuò)擴(kuò)展基本的的TCL語言;工具通過C接口用特定定于工具的的命令增加加內(nèi)置命令令。TCL在與窗口組組件庫整合合的時(shí)候特特別有吸引引力,它通通過提供變變量、過程程、表達(dá)式式等機(jī)制增增進(jìn)了組件件的可編程程性并允許許用戶修改改編程組件件的外觀和和動(dòng)作并且且它在交互互式程序之之間提供一一個(gè)簡單但但強(qiáng)力的通通信機(jī)制。。7.5.2TCL語言簡介TCL語言有三個(gè)個(gè)特色:(1)語法簡單單,容易上上手;(2)TCL用來執(zhí)行與與控制系統(tǒng)統(tǒng)相關(guān)的程程序,TCL具備足夠的的程序化能能力與存取取檔案、程程序及網(wǎng)絡(luò)絡(luò)的功能,,供組裝既既有軟件組組件以建立立符合需求求的新工具具。(3)可內(nèi)嵌到到應(yīng)用程序序中,讓軟軟件使用者者透過程序序員提供的的高階TCL指令,自訂訂應(yīng)用程序序的行為。。除了上述三三個(gè)主要特特色外,下下面幾點(diǎn)也也是TCL語言成功的的原因:跨平臺,可可在各種系系統(tǒng)(UNIX、Windows、Macintosh等)執(zhí)行TCL程序強(qiáng)大的字符符串處理能能力,協(xié)助助程序員使使用表示式式的規(guī)則或或樣式,用用來搜尋、、比對、粹粹取或是取取代符合樣樣式的復(fù)雜雜字符串。。可用C語言開發(fā)TCLExtensionLibrary,擴(kuò)充TCL的指令與能能力。總結(jié)來說,,TCL語言就像是是一瓶膠水水一般,只只要收集可可運(yùn)用的應(yīng)應(yīng)用程序與與TCLPackage,在這些接接口上涂涂涂抹抹,寫寫個(gè)簡單的的TCLScript(TCL指令的集合合),在短暫的的時(shí)間內(nèi)就就可組裝出出一個(gè)新工工具來。7.5.3TCL語法簡介1.基本語法法TCL語言的語法法實(shí)際上是是一些TCL解釋器怎樣樣對TCL命令進(jìn)行分分析的規(guī)則則的集合,,TCL的基本語法法類似于UNIXshell:命令由用用空格或TAB分隔的一個(gè)個(gè)或多個(gè)字字段組成。。第一個(gè)字字段是命令令的名字,,它可以是是內(nèi)置命令令、特定于于應(yīng)用的命命令、或者者是由一系系列的TCL命令組成的的過程。在在第一個(gè)單單詞后面的的字段都作作為參數(shù)傳傳遞給命令令。(1)注釋關(guān)于TCL的注釋有一一個(gè)特殊的的要求:'#'必須出現(xiàn)在在TCL解釋器期望望命令的第第一個(gè)字符符出現(xiàn)的地地方,才被被當(dāng)作注釋釋。例如:seta1#Notacommentsetb2;#thisisacomment第一個(gè)例子子中'#'及其后面的的內(nèi)容會被被當(dāng)作set的參數(shù)而非非注釋從而而導(dǎo)致參數(shù)數(shù)個(gè)數(shù)錯(cuò)誤誤;但第二二個(gè)被解釋釋為注釋,,因?yàn)?#'前面有一個(gè)個(gè)分號,而而分號和換換行一樣被被看作是命命令的分隔隔符。(2)eval命令eval命令是一個(gè)個(gè)用來構(gòu)造造和執(zhí)行TCL腳本的命令令,其語法法為:evalargarg...它可以接收收一個(gè)或多多個(gè)參數(shù),,然后把所所有的參數(shù)數(shù)以空格隔隔開組合到到一起成為為一個(gè)腳本本,然后對對這個(gè)腳本本進(jìn)行求值值。(3)source命令source命令讀一個(gè)個(gè)文件并把把這個(gè)文件件的內(nèi)容作作為一個(gè)腳腳本進(jìn)行求求值。例如如:sourcee:/tcl&c/hello.tcl注意路徑的的描述應(yīng)該該和UNIX相同,使用用'/'而不是'\'。2.置換(Substitution)setx10sety100+x上面命令執(zhí)執(zhí)行后,y的值是“100+x”而不是我們們期望的110。這是因?yàn)闉門CL解釋器在分分析命令時(shí)時(shí),把所有有的命令參參數(shù)都當(dāng)作作字符串看看待,所以以x被看作了字字符串“100+x”的一部分。。如果我們們想使用x的值'10',就必須告告訴TCL解釋器:我我們在這里里期望的是是變量x的值,而非非字符'x'。怎么告訴訴TCL解釋器呢,,這就要用用到TCL語言中提供供的置換功功能。TCL提供供三三種種形形式式的的置置換換::變變量量置置換換、、命命令令置置換換和和反反斜斜杠杠置置換換。。每每種種置置換換都都會會導(dǎo)導(dǎo)致致一一個(gè)個(gè)或或多多個(gè)個(gè)單單詞詞本本身身被被其其他他的的值值所所代代替替。。置置換換可可以以發(fā)發(fā)生生在在包包括括命命令令名名在在內(nèi)內(nèi)的的每每一一個(gè)個(gè)單單詞詞中中,,而而且且置置換換可可以以嵌嵌套套。。(1)變變量量置置換換((variablesubstitution)變量量置置換換由由一一個(gè)個(gè)$$符符號號標(biāo)標(biāo)記記,,變變量量置置換換會會導(dǎo)導(dǎo)致致變變量量的的值值而而非非變變量量((標(biāo)標(biāo)識識符符))本本身身被被插插入入到到字字符符串串中中。。setx10sety100+$x這時(shí)時(shí),,y的值值還還不不是是我我們們想想要要的的值值110,而而是是10+100,因因?yàn)闉門CL解釋釋器器把把10+100看成成是是一一個(gè)個(gè)字字符符串串而而不不是是表表達(dá)達(dá)式式;;y要想想得得到到值值110,還還必必須須用用命命令令置置換換,,使使得得TCL會把把10+100看成成一一個(gè)個(gè)表表達(dá)達(dá)式式并并求求值值。。(2)命命令令置置換換((commandsubstitution)命令令置置換換是是由由[]括起起來來的的TCL命令令及及其其參參數(shù)數(shù),,命命令令置置換換會會導(dǎo)導(dǎo)致致某某一一個(gè)個(gè)命命令令的的所所有有或或部部分分單單詞詞((參參數(shù)數(shù)))被被另另一一個(gè)個(gè)命命令令的的結(jié)結(jié)果果所所代代替替。。setx10sety[expr100+$x]這時(shí)時(shí),,y的值值就就是是110了。。這這里里當(dāng)當(dāng)TCL解釋釋器器遇遇到到字字符符'['時(shí),,它它就就會會把把隨隨后后的的expr作為為一一個(gè)個(gè)命命令令名名,,從從而而激激活活與與expr對應(yīng)應(yīng)的的C/C++過程程,,并并把把expr命令令中中變變量量置置換換后后得得到到的的'10+110'傳遞遞給給該該命命令令過過程程進(jìn)進(jìn)行行處處理理。。注意意,,[]中必必須須是是一一個(gè)個(gè)合合法法的的TCL腳本本,,長長度度不不限限。。[]中腳腳本本的的值值為為最最后后一一個(gè)個(gè)命命令令的的返返回回值值。。有了了命命令令置置換換,,實(shí)實(shí)際際上上就就表表示示命命令令之之間間是是可可以以嵌嵌套套的的,,即即一一個(gè)個(gè)命命令令的的結(jié)結(jié)果果可可以以作作為為別別的的命命令令的的參參數(shù)數(shù)。。(3)反反斜斜杠杠置置換換((backslashsubtitution)TCL語言言中中的的反反斜斜杠杠置置換換類類似似于于C語言言中中反反斜斜杠杠的的用用法法,,主主要要用用于于在在單單詞詞符符號號中中插插入入諸諸如如換換行行符符、、空空格格、、[、$等被被TCL解釋釋器器當(dāng)當(dāng)作作特特殊殊符符號號對對待待的的字字符符。。例例如如::setmsgmultiple\space如果沒沒有'\'的話,,TCL會報(bào)錯(cuò)錯(cuò),因因?yàn)榻饨忉屍髌鲿寻堰@里里最后后兩個(gè)個(gè)單詞詞之間間的空空格認(rèn)認(rèn)為是是分隔隔符,,于是是發(fā)現(xiàn)現(xiàn)set命令有有多于于兩個(gè)個(gè)參數(shù)數(shù),從從而報(bào)報(bào)錯(cuò)。。加入入了'\'后,空空格不不被當(dāng)當(dāng)作分分隔符符,'multiplespace'被認(rèn)為為是一一個(gè)單單詞(word)。(4)雙引引號和和花括括號除了使使用反反斜杠杠外,,TCL提供另另外兩兩種方方法來來使得得解釋釋器把把分隔隔符和和置換換符等等特殊殊字符符當(dāng)作作普通通字符符,而而不作作特殊殊處理理,這這就要要使用用雙引引號““”和和花括括號{}。TCL解釋器器對雙雙引號號中的的各種種分隔隔符將將不作作處理理,但但是對對換行行符及及$和和[]兩種置置換符符會照照常處處理。。而在在花括括號中中,所所有特特殊字字符都都將成成為普普通字字符,,失去去其特特殊意意義,,TCL解釋器器不會會對其其作特特殊處處理。。TCL變量TCL只支持持一種種數(shù)據(jù)據(jù)類型型:字字符串串(string)。所所有的的命令令,命命令的的所有有的參參數(shù),,命令令的結(jié)結(jié)果,,所有有的變變量都都是字字符串串。TCL變量根根據(jù)其其結(jié)構(gòu)構(gòu)的復(fù)復(fù)雜程程度分分為““簡單單變量量”和和“數(shù)數(shù)組變變量””兩類類。1.簡單單變量量一個(gè)TCL的簡單單變量量包含含兩個(gè)個(gè)部分分:名名字和和值,,其中中名字字和值值都可可以是是任意意字符符串。。不過過為了了更好好的使使用變變量置置換功功能,,變量量名最最好按按C\C++語言中中標(biāo)識識符的的命名名規(guī)則則命名名。這這是因因?yàn)門CL解釋器器在分分析一一個(gè)變變量置置換時(shí)時(shí),只只把從從$符符號往往后直直到第第一個(gè)個(gè)不是是字母母、數(shù)數(shù)字或或下劃劃線的的字符符之間間的單單詞符符號作作為要要被置置換的的變量量的名名字。。例如如:seta2seta.15setb$a.1在最后后一個(gè)個(gè)命令令行,,我們們希望望把變變量a.1的值付付給b,但是是TCL解釋器器在分分析時(shí)時(shí)只把把$符號之之后直直到第第一個(gè)個(gè)不是是字母母、數(shù)數(shù)字或或下劃劃線的的字符符(這里是是'.')之間的的單詞詞符號號(這里是是'a')當(dāng)作要要被置置換的的變量量的名名字,,所以以TCL解釋器器把a(bǔ)置換成成2,然后把把字符符串““2.1”付給變變量b。這顯顯然與與我們們的初初衷不不同。。當(dāng)然然,如如果變變量名名中有有不是是字母母、數(shù)數(shù)字或或下劃劃線的的字符符又要要用變變量置置換,,可以以用花花括號號把變變量名名括起起來。。例如如:setb${a.1}2.?dāng)?shù)組組變量量數(shù)組是是一些些元素素的集集合。。TCL的數(shù)組組和一一般編編程語語言中中的數(shù)數(shù)組有有很大大的區(qū)區(qū)別。。在TCL中,不不能單單獨(dú)聲聲明一一個(gè)數(shù)數(shù)組,,數(shù)組組只能能和數(shù)數(shù)組元元素一一起聲聲明。。數(shù)組組中數(shù)數(shù)組元元素的的名字字包含含兩部部分::數(shù)組組名和和數(shù)組組中元元素的的名字字,TCL中數(shù)組組元素素的名名字((下標(biāo)標(biāo))可可以為為任何何字符符串。。例如::setday(Monday)1setday(Tuesday)2第一個(gè)個(gè)命令令生成成一個(gè)個(gè)名為為day的數(shù)組,,同時(shí)在在數(shù)組中中生成一一個(gè)名為為Monday的數(shù)組元元素,并并把值置置為1,第二個(gè)個(gè)命令生生成一個(gè)個(gè)名為Tuesday的數(shù)組元元素,并并把值置置為2。在數(shù)組元元素的置置換中,,除了有有括號之之外,數(shù)數(shù)組元素素的置換換和簡單單變量類類似。例例如:setaMondaysetday(Monday)1setb$day(Monday)//b的值為1,即day(Monday)的值。setc$day($a)//c的值為1,即day(Monday)的值。3.相關(guān)指指令(1)set指令:TCL的變量可可以隨時(shí)時(shí)建立不不用事先先宣告,,變量名名稱的取取法也沒沒有任何何限制,,所以可可以使用用任何字字符來為為變量命命名,甚甚至變量量名和指指令名稱稱相同也也沒問題題。使用用時(shí)只有有一點(diǎn)要要注意的的就是TCL是大小寫寫有區(qū)別別的語言言。通常常,我們們以set指令來設(shè)設(shè)定變量量值:setx5sety6setPI3.14setPI*26.28;#注意!變變量名稱稱是PI*2puts$PI*2setPITCL的set指令除了了有設(shè)定定變量值值的用途途外,也也可以用用來取出出變量的的內(nèi)容,,如上列列程序最最后一行行使用set指令取出出PI的值(注意!這這邊不用用在變量量名稱前前加上$符號)。(2)unset指令用來來刪除一一個(gè)或多多個(gè)變量量,來釋釋放內(nèi)存存空間::unsetxyPITCL變量TCL只支持一一種數(shù)據(jù)據(jù)類型::字符串串(string)。所有有的命令令,命令令的所有有的參數(shù)數(shù),命令令的結(jié)果果,所有有的變量量都是字字符串。。TCL變量根據(jù)據(jù)其結(jié)構(gòu)構(gòu)的復(fù)雜雜程度分分為“簡簡單變量量”和““數(shù)組變變量”兩兩類。1.簡單變變量一個(gè)TCL的簡單變變量包含含兩個(gè)部部分:名名字和值值,其中中名字和和值都可可以是任任意字符符串。不不過為了了更好的的使用變變量置換換功能,,變量名名最好按按C\C++語言中標(biāo)標(biāo)識符的的命名規(guī)規(guī)則命名名。這是是因?yàn)門CL解釋器在在分析一一個(gè)變量量置換時(shí)時(shí),只把把從$符符號往后后直到第第一個(gè)不不是字母母、數(shù)字字或下劃劃線的字字符之間間的單詞詞符號作作為要被被置換的的變量的的名字。。例如:seta2seta.15setb$a.1在最后一一個(gè)命令令行,我我們希望望把變量量a.1的值付給給b,但是TCL解釋器在在分析時(shí)時(shí)只把$符號之后后直到第第一個(gè)不不是字母母、數(shù)字字或下劃劃線的字字符(這里是'.')之間的單單詞符號號(這里是'a')當(dāng)作要被被置換的的變量的的名字,,所以TCL解釋器把把a(bǔ)置換成2,然后把字字符串““2.1””付給變量量b。這顯然然與我們們的初衷衷不同。。當(dāng)然,,如果變變量名中中有不是是字母、、數(shù)字或或下劃線線的字符符又要用用變量置置換,可可以用花花括號把把變量名名括起來來。例如如:setb${a.1}2.?dāng)?shù)組變變量數(shù)組是一一些元素素的集合合。TCL的數(shù)組和和一般編編程語言言中的數(shù)數(shù)組有很很大的區(qū)區(qū)別。在在TCL中,不能能單獨(dú)聲聲明一個(gè)個(gè)數(shù)組,,數(shù)組只只能和數(shù)數(shù)組元素素一起聲聲明。數(shù)數(shù)組中數(shù)數(shù)組元素素的名字字包含兩兩部分::數(shù)組名名和數(shù)組組中元素素的名字字,TCL中數(shù)組元元素的名名字(下下標(biāo))可可以為任任何字符符串。例如:setday(Monday)1setday(Tuesday)2第一個(gè)命命令生成成一個(gè)名名為day的數(shù)組,,同時(shí)在在數(shù)組中中生成一一個(gè)名為為Monday的數(shù)組元元素,并并把值置置為1,第二個(gè)個(gè)命令生生成一個(gè)個(gè)名為Tuesday的數(shù)組元元素,并并把值置置為2。在數(shù)組元元素的置置換中,,除了有有括號之之外,數(shù)數(shù)組元素素的置換換和簡單單變量類類似。例例如:setaMondaysetday(Monday)1setb$day(Monday)//b的值值為為1,即即day(Monday)的值值。。setc$day($a)//c的值值為為1,即即day(Monday)的值值。。3.相相關(guān)關(guān)指指令令(1)set指令令::TCL的變變量量可可以以隨隨時(shí)時(shí)建建立立不不用用事事先先宣宣告告,,變變量量名名稱稱的的取取法法也也沒沒有有任任何何限限制制,,所所以以可可以以使使用用任任何何字字符符來來為為變變量量命命名名,,甚甚至至變變量量名名和和指指令令名名稱稱相相同同也也沒沒問問題題。。使使用用時(shí)時(shí)只只有有一一點(diǎn)點(diǎn)要要注注意意的的就就是是TCL是大小小寫有有區(qū)別別的語語言。。通常常,我我們以以set指令來來設(shè)定定變量量值::setx5sety6setPI3.14setPI*26.28;#注意??!變量量名稱稱是PI*2puts$PI*2setPITCL的set指令除除了有有設(shè)定定變量量值的的用途途外,,也可可以用用來取取出變變量的的內(nèi)容容,如如上列列程序序最后后一行行使用用set指令取取出PI的值(注意!!這邊邊不用用在變變量名名稱前前加上上$符號)。(2)unset指令用用來刪刪除一一個(gè)或或多個(gè)個(gè)變量量,來來釋放放內(nèi)存存空間間:unsetxyPI7.5.5數(shù)據(jù)型型態(tài)TCL語言的的基本本數(shù)據(jù)據(jù)型態(tài)態(tài)有::string、list、array、handle(不經(jīng)經(jīng)常使使用,,不作作介紹紹)。。1.string字符串串?dāng)?shù)據(jù)據(jù)型態(tài)態(tài)字符串串是TCL語言最最基本本的數(shù)數(shù)據(jù)型型態(tài),,常見見的字字符串串處理理指令令有::string、append、format、scan以及binary。(1)string指令語法:stringsubcmdarg[arg...]string命令具具有強(qiáng)強(qiáng)大的的操作作字符符串的的功能能,并通過過其中中的subcmd來區(qū)別別具體體將要要執(zhí)行行的string操作。他們中中的一些如下下:stringlengthstring:傳回字符串串的字符數(shù)stringrangestringij:取出string字符串中從i到j(luò)位置的字符stringindexstringcharIndex:傳回index位置所在的字字符stringtolowerstring[first][last]:將所定義的的字符串范圍圍中之字符轉(zhuǎn)轉(zhuǎn)換為小寫字字符stringreplacestringfirstlast[newstring]:以空字符串串或newstring取代指定范圍圍的字符串stringequal[-nocase][-lengthint]string1string2:比較string1和string2的內(nèi)容,若相相同傳回1,否則傳回0stringmatch[-nocase]patternstring:如果pattern匹配string,那么返回1,否則返回0stringcompare[-nocase][-lengthint]string1string2:如果有-length參數(shù),那么只只比較前int個(gè)字符stringfirststring1string2[startindex]:在string2中從頭查找與與string1匹配的字符序序列,如果找找到,那么就就返回匹配的的第一個(gè)字母母所在的位置置(0-based)。如果沒有找找到,那么返返回-1stringtrimstring[chars]返回值為:從string字符串的首尾尾刪除掉了字字符集合chars中的字符后的的字符串。如如果沒有給出出chars,那么將刪除除掉spaces、tabs、newlines、carriagereturns這些字符(2)append指令append指令用來將新新的項(xiàng)目附加加到指定變量量的內(nèi)容后。。例:%setfoorickrick%appendfooiloveyourickiloveyou(3)format指令與C語言中的printf十分相似的指指令,format指令依據(jù)指定定的格式將字字符串格式化化。formatspecvalue1value2……(4)scan指令與C語言中的scanf十分相似的指指令,scan指令依據(jù)指定定的格式化條條件剖析字符符串并將結(jié)果果放入變量中中。scanstringformat?varName??varName?……(5)binary指令binaryformattemplatevalue?value…….?binaryscanvaluetemplatevariable?variable……?binary指令比較復(fù)雜雜,只需看幾幾個(gè)binary指令常用的用用法即可使用c為模板(template),將數(shù)值97格式化為ASCII字符:%binaryformatc97=>a使用c為模板(template),將字符6的ASCII值讀進(jìn)var1變數(shù)中:%setinput6%binaryscan$inputcvar1%setvar1=>542.list串行數(shù)據(jù)型態(tài)態(tài)list這個(gè)概念在TCL中是用來表示示集合的。TCL中l(wèi)ist是由一堆元素素組成的有序序集合,list可以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年交通設(shè)備制造業(yè)數(shù)字化轉(zhuǎn)型升級政策環(huán)境分析報(bào)告
- 2025年工業(yè)互聯(lián)網(wǎng)平臺傳感器網(wǎng)絡(luò)自組網(wǎng)技術(shù)在航空航天領(lǐng)域的應(yīng)用分析
- 2025年分布式能源系統(tǒng)生物質(zhì)能源應(yīng)用中的能源互聯(lián)網(wǎng)發(fā)展優(yōu)化報(bào)告
- 2025年鄉(xiāng)村振興背景下職業(yè)技能培訓(xùn)的可持續(xù)發(fā)展策略報(bào)告
- 2025年CCS項(xiàng)目在能源領(lǐng)域應(yīng)用的經(jīng)濟(jì)效益與投資決策支持研究報(bào)告
- 2025年醫(yī)療美容消費(fèi)者心理特點(diǎn)與服務(wù)質(zhì)量優(yōu)化路徑報(bào)告
- 輕工行業(yè)25W22:關(guān)稅博弈繼續(xù)漿價(jià)震蕩分化
- 施工凈化車間管理制度
- 固體廢物收集點(diǎn)管理制度
- 所屬分公司財(cái)務(wù)管理制度
- 2025年江西省中考數(shù)學(xué)試卷真題(含標(biāo)準(zhǔn)答案)
- 2025年河北省中考麒麟卷生物(三)及答案
- 2025年河北省中考麒麟卷生物(二)及答案
- 2025年河北省萬唯中考定心卷地理(二)
- 2025年高考全國二卷英語高考真題含解析
- 引水罐的設(shè)計(jì)計(jì)算
- 三年級譯林版英語下學(xué)期按要求寫句子專項(xiàng)強(qiáng)化練習(xí)題
- 電纜接線工藝設(shè)計(jì)規(guī)范流程
- 中醫(yī)經(jīng)絡(luò)減肥課件
- 5WHY分析法培訓(xùn)
- 巧克力糖自動(dòng)包裝機(jī) 課程設(shè)計(jì)
評論
0/150
提交評論