版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章后置处理平面铣、型腔铣、固定轴曲面轮廓铣和车削加工,其操作结果是生成刀具轨迹(即刀位文件),该文件无法被数控机床识别,须将该文件转化为机床可识别的文件格式。而不同厂商生产的机床硬件条件和数控系统不同。因此,刀具位置源文件需要经过后置处理,将刀具轨迹转化为数控程序,以适合不同机床/控制系统的特定要求。这种根据机床参数格式化刀位文件,并生成特定机床可以识别的NC程序的过程称为后置处理。实际生产中,数控机床的类型很多,每种类型的机床都有其独特的硬件性能和要求,比如它可以有垂直或水平的主轴,可以2-5轴联动等。另外,每种机床又受其控制器(controller)的控制,控制器接受刀位文件并指挥刀具的运动或其它的行为(比如冷却液的开关),但控制器也无法接受这种未经处理的刀位文件。因此,刀位文件必须经后处理修改成适合于不同机床/控制器的特定参数。后处理最基本的两个要素就是刀轨数据(ToolPathData)和后处理器(APostprocessor)。如图7-1所示。
图7-1后处理NX软件提供了两种后处理方法:一种是用图形后处理模块GPM(GraphicsPostprocessorModule)进行后置处理,另一种是用NXPOST后处理器进行后置处理。GPM后处理方法是一种传统的方法,用GPM进行后置处理时,需要使用机床数据文件(MDF),机床数据文件包含对刀具路径进行后置处理时所需的机床数据。NXPOST通过建立与机床控制系统相匹配的两个文件——事件处理文件和定义文件,可以轻松完成从简单到任意复杂机床控制系统的后处理,用户甚至可以直接修改这两个文件实现用户特定的信息处理。图形后置处理器(GPM)是一个可执行文件,其名称为GPM.EXE。图形后置处理器可以将机床数据文件转换为特定格式的数控程序,从而控制特定的数控机床进行加工。机床数据文件(MachineDateFile,简写MDFA)是一种包括特定数控机床信息和数据程序输出规则等内容的文件,其后缀有两种:MDF和MDFA,其中MDF为二进制文件,MDFA为文本文件,这两类文件都可以用图形后置处理器进行后置处理。图形后置处理器后置处理过程如图7-2所示,首先在加工应用中生成刀具位置源文件(CLSF),并用机床数据文件生成器(MDFC)建立机床数据文件(MDF),然后,进入GPM模块,对刀具位置源文件进行后置处理。GPM和MDF文件相互依赖,GPM必须根据MDF文件中的数据来设置其开关量,同时MDF文件也只能用于GPM进行后置处理,最后利用图形后置处理器对机床数控文件进行处理,输出特定格式的数控程序。7.3.1NXPOST后置处理器简介
NXPOST以NXCAM中生成的零件加工刀轨作为输入,输出符合机床控制系统要求的NC代码。与图形后置处理器相比,NXPOST可直接从零件的刀具路径中提取路径信息进行后置处理,而不必生成刀具位置源文件,因此使用起来更方便。后置处理过程中,用户可以通过NXPOST建立和机床控制系统相关的事件处理文件和事件定义文件,然后通过NX整合在一起,完成简单或任意复杂机床的后处理。NXPOST通过与图形后置处理器相似的途径,将产生的刀具路径转换成指定的机床控制系统所能接收的加工指令。图7-3后处理原理图刀位文件(CLSF)图形后置处理器(GPWPost)数据程序(NC)机床数据文件(MDFA)事件生成器 事件生成器(EventGenerator)是一个提取零件的刀具路径数据的文件,它能将提取的刀具路径数据作为事件和参数传递给加工输出管理器。每一特定事件在机床运行时将导致一些特别的机床动作,存储在与这个事件相关的参数中的信息用来进一步确定这些特别的机床动作。例如,一个“Linear-Move”事件将导致机床驱动刀具沿直线移动,而具体移动到的位置则由存储在与此事件相关的参数X、Y、Z中的数值来进一步确定。在这个例子中,事件生成器将触发“Linear-Move”事件,并且将代表终点位置的数据装入相应的参数X、Y、Z,然后这些信息传送到MOM去处理。事件处理器 事件处理器(EventHandler)是描述机床配置的两个文件之一,是为特定机床及其控制系统开发的一套程序。它包含根据机床控制器定义的一系列事件处理指令,这些指令将定义刀轨数据如何被处理,以及每个事件在机床上如何被执行。用来定义事件处理器指令的计算机语言是TCL(Toolcommandlanguage),故该文件的扩展名为.tcl。TCL是一种解释型的计算机语言,以其小巧、灵活、功能强大、易于扩展、易于集成而闻名。当UG/Post进行后处理时,TCL语言的解释器充当了UG/Post的转换器。事件定义文件事件定义文件(DefinitionFile)定义事件处理后输出的数据格式,是包含特定机床静态信息的文件,包括:输出格式、有效字符(X、Y等)及一般机床属性等。该文件的扩展名为.def。后处理用户界面文件通过它用户可利用PostBuilder来修改事件处理文件和事件定义文件。输出文件
在UG/post执行时,即后处理时,用户指定一个文件来存储后处理生成的NC指令,这个指定的文件就是输出文件。输出文件的内容由事件处理器来控制,而输出文件中NC指令的格式由定义文件来控制。7.3.2NXPOST进行后置处理NXPOST进行后置处理的步骤为:生成工件的刀具路径;通过后处理构建器PostBuilder生成事件管理器文件和定义文件,并将生成的事件管理器文件和定义文件增添到后置处理模板中;进入NXPOST后置处理环境进行后置处理,从而生成可用于指定机床的数控程序。7.4后置处理构造器后置处理构造器(PostBuilder)是为特定机床和数控系统定制后置处理器的一种工具。它是一个图形界面编辑工具,应用后置处理构造器可以建立两个与特定机床相关的后置处理文件:事件管理器文件(.tcl)和定义文件(.def),同时产生一个.pui文件。后置处理构造器可以灵活定义NC程序输出的格式和顺序、程序头尾、操作头尾、换刀以及循环等。目前后置处理构造器可以定义下列的机床的后处理:3轴机床3轴车铣4轴带转台或摆头机床5轴带双转台或双摆头机床5轴带一转台一摆头机床2轴车床7.4.1后置处理构建建器简介1.进入后置处理理构建器在WINDOWS操作系统中,,单击“开始始”→“程序”→“SiemensNX8.0”→“加工”→“后处理构造造器”,即可可进入“后置置处理构造器器”起始对话话框,如图7-9所示。图7-9后置处理构建建器对话框在图7-9对话框中单击击图标,弹出出如图7-10所示对话框。。新建机床后后置处理文件件时,首先需需在对话框的的PostName文本框中输入入后置处理文文件名称,然然后指定后置置处理输出的的单位并选取取机床的类型型,设置各选选项后,最后后单击【OK】,进入图7-12所示的机床后后置处理参数数设置对话框框。图7-10新建机床后对对话框图7-11机床对话框2.机床参数设置置如图7-11所示的对话框框,即可进行行所选机床后后置处理参数数设置。在对对话框的顶排排选项中选取取机床选项((MachineTool),显示机床床的相关参数数。机床各参数的的设置方法说说明如下。(1)DisplayMachineTool(显示机床))单击DisplayMachineTool按钮,弹出所所选机床类型型的结构示意意图。如图7-12所示。(2)GeneralParameters(通用参数))在图7-11中选取该选项项,可以设置置机床各坐标标轴的最大行行程、机床原原点的坐标位位置、机床直直线移动的最最小步距、机机床快速移动动的最大速度度等参数。图7-12机床参数示意意图3.程序与刀具路路径(Program&ToolPath)在图7-11最上部一排选选项中,选取取程序与刀具具路径选项图图标,对话框框切换为如图图7-13所示形式。这这里,可设置置程序与刀具具路径的相关关参数。(1)Program(程序)在图7-13所示对话框中中,可设置与与程序相关的的参数。如程程序的起始顺顺序、操作的的起始顺序、、刀具路径((机床控制、、刀具运动等等)、操作结结束顺序、程程序结束顺序序等。(2)GCodes(G代码)单击图7-13中的GCodes选项,对话框框切换到G代码设置对话话框,可以根根据机床控制制器,为各种种机床运动或或加工操作设设置G代码。如直线线插补运动设设置为G01,顺圆弧插补补运动设置为为G02,快速运动设设置为G00等。(3)MCodes(M代码)单击图7-13中的MCodes选项,对话框框切换到M代码设置对话话框,可以设设置各种辅助助功能代码,,如主轴的起起停、冷却液液的开关、主主轴的顺时针针旋转或逆时时针旋转、刀刀具的换刀等等。对于M代码的分配需需根据具体机机床的辅助功功能进行设置置。(4)WordSummary(字综合)该选项用于综综合设置数控控程序中可能能出现的各种种代码。如代代码的数据类类型(文本类类型或数值型型)、代码符符号、整数的的位数、是否否带小数及小小数位数等。。(5)WordSequencing(字顺序)该选项设置程程序段中各代代码的顺序。。如设置每一一程序语句中中的G代码、辅助代代码、各坐标标轴的坐标值值等参数的顺顺序。(6)CustomCommand(用户命令))该选项用于自自定义后置处处理命令。图7-14机床后置处理理参数设置对对话框N/C数据据定定义义在图图7-11最上上部部一一排排选选项项中中,,选选取取““N/C数据据定定义义((N/CDataDefinitions)””选选项项图图标标,,系系统统弹弹出出如如图图7-14所示示对对话话框框,,可可定定义义相相关关N/C数据据。。(1)BLOCK(块块))该选选项项定定义义各各种种代代码码和和操操作作的的程程序序块块。。例例如如,,辅辅助助功功能能应应包包括括哪哪些些字字符符,,循循环环钻钻孔孔应应包包括括哪哪些些代代码码和和字字符符等等。。(2)WORD(字字))该选选项项定定义义数数控控程程序序中中可可能能出出现现的的各各种种代代码码及及其其格格式式。。例例如如,,坐坐标标轴轴代代码码、、准准备备功功能能代代码码、、进进给给量量代代码码、、刀刀具具代代码码等等分分别别采采用用哪哪个个字字符符表表示示,,以以及及它它们们的的格格式式等等。。(3)FORMAT(格格式式))该选选项项定定义义数数控控程程序序中中可可能能出出现现的的各各种种数数据据格格式式。。如如坐坐标标值值、、准准备备功功能能代代码码、、进进给给量量、、主主轴轴转转速速等等参参数数的的数数据据格格式式。。(4)OtherDataElements(其其它它数数据据元元素素))该选选项项定定义义其其他他数数据据,,如如程程序序序序号号的的起起始始值值、、增增量量以以及及跳跳过过程程序序段段的的首首字字符符等等。。图7-15机床床后后置置处处理理参参数数设设置置对对话话框框5.OutputSettings(输输出出设设定定))在图图7-11最上上部部一一排排选选项项中中,,选选取取OutputSettings图标标,,系系统统弹弹出出如如图图7-15所示示的的对对话话框框,,可可控控制制列列表表文文件件是是否否输输出出和和输输入入内内容容以以及及其其它它控控制制内内容容。。(1)ListingFile(列列表表文文件件))输出出项项目目有有X,Y,Z坐标标值值,,第第四四、、第第五五轴轴角角度度值值,,还还有有转转速速和和进进给给。。可可以以定定义义打打印印页页的的长长、、宽宽及及文文件件的的后后缀缀。。(2)OtherOptions(其它选选择)“确定””按钮OutputWarningMessage(输出错错误信息息),该该选项设设置设置置为ON,后置处处理时输输出错误误信息log文件。DisplayVerboseErrorMessage(显示错错误信息息),该该选项设设置设置置为ON,后置处处理时显显示错误误信息。。SourceUser’sTclfile(源用户户Tcl文件),,选择一一个Tcl源文件。。GenerateVirtualN/CController(VMC)(产生虚虚拟控制制器),,该选项项设置设设置为ON,用于集集成仿真真与校验验(ISV),系统统会另外外产生一一个*_vnc.tcl文件。图7-16机床后置置处理参参数设置置对话框框(3)PostFileProview(文件预预览)在图7-11最上部一一排选项项中,选选取PostFilePreview图标,系系统弹出出如图7-17所示的对对话框,,可以在在后处理理文件在在保存之之前浏览览定义文文件和事事件处理理文件。。上面的的窗口为为改动后后最新内内容,下下面的窗窗口为旧旧内容。。7.5定制后处处理7.5.1UG/Post的开发方方法UG/Post的开发,,其核心心是TCL语言的运运用。TCL是一种解解释型的的计算机机语言,,由JohnK.Ousterhout于加洲大大学伯克克利分校校开发成成功,目目前由SUN微系统公公司提供供支持和和维护。。TCL是一款自自由软件件,并且且它可支支持UnigraphicsNX当前支持持的所有有平台。。虽然本本质上都都是使用用TCL语言,但但具体实实现上却却有两种种途经::PostBuilder和手工编编程PostBuilder是UG系统为用用户提供供的后处处理器开开发工具具。使用用它用户户只需要要根据自自己机床床的特点点,在GUI环境下进进行一系系列的设设置即可可完成后后处理器器的开发发。值得得一提是是,使用用PostBuilder不仅生成成事件处处理器文文件(*.tcl)、定义文文件(*.def),还生成成一个特特别的文文件(*.pui)。这个文文件是专专供PostBuilder使用的,,记录着着关闭PostBuilder时的配置置,对后后处理器器来说,,这个文文件是多多余的。。关于PostBuilder的更多信信息可参参见UG帮助文档档。手工开发发后处理理器,就就是直接接用TCL语言编写写事件处处理器文文件(*.tcl)和定义文文件(*.def)。这要求求用户具具有TCL语言的基基本知识识,同时时,还要要了解UG对TCL语言的扩扩展部分分。虽然然手工开开发后处处理器对对用户技技能要求求较高,,但手工工开发灵灵活、方方便,开开发的后后处理器器精炼、、易懂、、执行效效率高。。7.5.2TCL语言简介介TCL(ToolCommandLanguage)即脚本命命令语言,,它是一种种易学易用用易于扩展展的脚本语语言,主要要用于发布布命令给一一些交互程程序如文本本编辑器、、调试器和和shell,它有一个个简单的语语法和很强强可扩充性性,可以创创建新的过过程以增强强其内建命命令的能力力。其次,,它由作为基基本命令解解释器嵌入入到工具(比如编辑器器、调试器器等)中的一个库库包组成,,可以被嵌嵌入应用程程序。这个库提供了一个个分析器,,一组内置置的实用命命令和一个个C接口,其中中,分析器器用于执行内内部命令的的例程和可可以使之扩扩充(定义义新的过程程)的库函函数,这个库还实实现了提供供通用的编编程构造的的一组内置置命令,比比如变量、、列表、表表达式、条条件、循环环和过程。。单个的应应用程序可可以用特定定于应用的的命令来扩扩展基本的的TCL语言;工具通过C接口用特定定于工具的的命令增加加内置命令令。TCL在与窗口组组件库整合合的时候特特别有吸引引力,它通通过提供变变量、过程程、表达式式等机制增增进了组件件的可编程程性并允许许用户修改改编程组件件的外观和和动作并且且它在交互互式程序之之间提供一一个简单但但强力的通通信机制。。7.5.2TCL语言简介TCL语言有三个个特色:(1)语法简单单,容易上上手;(2)TCL用来执行与与控制系统统相关的程程序,TCL具备足够的的程序化能能力与存取取档案、程程序及网络络的功能,,供组装既既有软件组组件以建立立符合需求求的新工具具。(3)可内嵌到到应用程序序中,让软软件使用者者透过程序序员提供的的高阶TCL指令,自订订应用程序序的行为。。除了上述三三个主要特特色外,下下面几点也也是TCL语言成功的的原因:跨平台,可可在各种系系统(UNIX、Windows、Macintosh等)执行TCL程序强大的字符符串处理能能力,协助助程序员使使用表示式式的规则或或样式,用用来搜寻、、比对、粹粹取或是取取代符合样样式的复杂杂字符串。。可用C语言开发TCLExtensionLibrary,扩充TCL的指令与能能力。总结来说,,TCL语言就像是是一瓶胶水水一般,只只要收集可可运用的应应用程序与与TCLPackage,在这些接接口上涂涂涂抹抹,写写个简单的的TCLScript(TCL指令的集合合),在短暂的的时间内就就可组装出出一个新工工具来。7.5.3TCL语法简介1.基本语法法TCL语言的语法法实际上是是一些TCL解释器怎样样对TCL命令进行分分析的规则则的集合,,TCL的基本语法法类似于UNIXshell:命令由用用空格或TAB分隔的一个个或多个字字段组成。。第一个字字段是命令令的名字,,它可以是是内置命令令、特定于于应用的命命令、或者者是由一系系列的TCL命令组成的的过程。在在第一个单单词后面的的字段都作作为参数传传递给命令令。(1)注释关于TCL的注释有一一个特殊的的要求:'#'必须出现在在TCL解释器期望望命令的第第一个字符符出现的地地方,才被被当作注释释。例如:seta1#Notacommentsetb2;#thisisacomment第一个例子子中'#'及其后面的的内容会被被当作set的参数而非非注释从而而导致参数数个数错误误;但第二二个被解释释为注释,,因为'#'前面有一个个分号,而而分号和换换行一样被被看作是命命令的分隔隔符。(2)eval命令eval命令是一个个用来构造造和执行TCL脚本的命令令,其语法法为:evalargarg...它可以接收收一个或多多个参数,,然后把所所有的参数数以空格隔隔开组合到到一起成为为一个脚本本,然后对对这个脚本本进行求值值。(3)source命令source命令读一个个文件并把把这个文件件的内容作作为一个脚脚本进行求求值。例如如:sourcee:/tcl&c/hello.tcl注意路径的的描述应该该和UNIX相同,使用用'/'而不是'\'。2.置换(Substitution)setx10sety100+x上面命令执执行后,y的值是“100+x”而不是我们们期望的110。这是因为为TCL解释器在分分析命令时时,把所有有的命令参参数都当作作字符串看看待,所以以x被看作了字字符串“100+x”的一部分。。如果我们们想使用x的值'10',就必须告告诉TCL解释器:我我们在这里里期望的是是变量x的值,而非非字符'x'。怎么告诉诉TCL解释器呢,,这就要用用到TCL语言中提供供的置换功功能。TCL提供供三三种种形形式式的的置置换换::变变量量置置换换、、命命令令置置换换和和反反斜斜杠杠置置换换。。每每种种置置换换都都会会导导致致一一个个或或多多个个单单词词本本身身被被其其他他的的值值所所代代替替。。置置换换可可以以发发生生在在包包括括命命令令名名在在内内的的每每一一个个单单词词中中,,而而且且置置换换可可以以嵌嵌套套。。(1)变变量量置置换换((variablesubstitution)变量量置置换换由由一一个个$$符符号号标标记记,,变变量量置置换换会会导导致致变变量量的的值值而而非非变变量量((标标识识符符))本本身身被被插插入入到到字字符符串串中中。。setx10sety100+$x这时时,,y的值值还还不不是是我我们们想想要要的的值值110,而而是是10+100,因因为为TCL解释释器器把把10+100看成成是是一一个个字字符符串串而而不不是是表表达达式式;;y要想想得得到到值值110,还还必必须须用用命命令令置置换换,,使使得得TCL会把把10+100看成成一一个个表表达达式式并并求求值值。。(2)命命令令置置换换((commandsubstitution)命令令置置换换是是由由[]括起起来来的的TCL命令令及及其其参参数数,,命命令令置置换换会会导导致致某某一一个个命命令令的的所所有有或或部部分分单单词词((参参数数))被被另另一一个个命命令令的的结结果果所所代代替替。。setx10sety[expr100+$x]这时时,,y的值值就就是是110了。。这这里里当当TCL解释释器器遇遇到到字字符符'['时,,它它就就会会把把随随后后的的expr作为为一一个个命命令令名名,,从从而而激激活活与与expr对应应的的C/C++过程程,,并并把把expr命令令中中变变量量置置换换后后得得到到的的'10+110'传递递给给该该命命令令过过程程进进行行处处理理。。注意意,,[]中必必须须是是一一个个合合法法的的TCL脚本本,,长长度度不不限限。。[]中脚脚本本的的值值为为最最后后一一个个命命令令的的返返回回值值。。有了了命命令令置置换换,,实实际际上上就就表表示示命命令令之之间间是是可可以以嵌嵌套套的的,,即即一一个个命命令令的的结结果果可可以以作作为为别别的的命命令令的的参参数数。。(3)反反斜斜杠杠置置换换((backslashsubtitution)TCL语言言中中的的反反斜斜杠杠置置换换类类似似于于C语言言中中反反斜斜杠杠的的用用法法,,主主要要用用于于在在单单词词符符号号中中插插入入诸诸如如换换行行符符、、空空格格、、[、$等被被TCL解释释器器当当作作特特殊殊符符号号对对待待的的字字符符。。例例如如::setmsgmultiple\space如果没没有'\'的话,,TCL会报错错,因因为解解释器器会把把这里里最后后两个个单词词之间间的空空格认认为是是分隔隔符,,于是是发现现set命令有有多于于两个个参数数,从从而报报错。。加入入了'\'后,空空格不不被当当作分分隔符符,'multiplespace'被认为为是一一个单单词(word)。(4)双引引号和和花括括号除了使使用反反斜杠杠外,,TCL提供另另外两两种方方法来来使得得解释释器把把分隔隔符和和置换换符等等特殊殊字符符当作作普通通字符符,而而不作作特殊殊处理理,这这就要要使用用双引引号““”和和花括括号{}。TCL解释器器对双双引号号中的的各种种分隔隔符将将不作作处理理,但但是对对换行行符及及$和和[]两种置置换符符会照照常处处理。。而在在花括括号中中,所所有特特殊字字符都都将成成为普普通字字符,,失去去其特特殊意意义,,TCL解释器器不会会对其其作特特殊处处理。。TCL变量TCL只支持持一种种数据据类型型:字字符串串(string)。所所有的的命令令,命命令的的所有有的参参数,,命令令的结结果,,所有有的变变量都都是字字符串串。TCL变量根根据其其结构构的复复杂程程度分分为““简单单变量量”和和“数数组变变量””两类类。1.简单单变量量一个TCL的简单单变量量包含含两个个部分分:名名字和和值,,其中中名字字和值值都可可以是是任意意字符符串。。不过过为了了更好好的使使用变变量置置换功功能,,变量量名最最好按按C\C++语言中中标识识符的的命名名规则则命名名。这这是因因为TCL解释器器在分分析一一个变变量置置换时时,只只把从从$符符号往往后直直到第第一个个不是是字母母、数数字或或下划划线的的字符符之间间的单单词符符号作作为要要被置置换的的变量量的名名字。。例如如:seta2seta.15setb$a.1在最后后一个个命令令行,,我们们希望望把变变量a.1的值付付给b,但是是TCL解释器器在分分析时时只把把$符号之之后直直到第第一个个不是是字母母、数数字或或下划划线的的字符符(这里是是'.')之间的的单词词符号号(这里是是'a')当作要要被置置换的的变量量的名名字,,所以以TCL解释器器把a置换成成2,然后把把字符符串““2.1”付给变变量b。这显显然与与我们们的初初衷不不同。。当然然,如如果变变量名名中有有不是是字母母、数数字或或下划划线的的字符符又要要用变变量置置换,,可以以用花花括号号把变变量名名括起起来。。例如如:setb${a.1}2.数组组变量量数组是是一些些元素素的集集合。。TCL的数组组和一一般编编程语语言中中的数数组有有很大大的区区别。。在TCL中,不不能单单独声声明一一个数数组,,数组组只能能和数数组元元素一一起声声明。。数组组中数数组元元素的的名字字包含含两部部分::数组组名和和数组组中元元素的的名字字,TCL中数组组元素素的名名字((下标标)可可以为为任何何字符符串。。例如::setday(Monday)1setday(Tuesday)2第一个个命令令生成成一个个名为为day的数组,,同时在在数组中中生成一一个名为为Monday的数组元元素,并并把值置置为1,第二个个命令生生成一个个名为Tuesday的数组元元素,并并把值置置为2。在数组元元素的置置换中,,除了有有括号之之外,数数组元素素的置换换和简单单变量类类似。例例如:setaMondaysetday(Monday)1setb$day(Monday)//b的值为1,即day(Monday)的值。setc$day($a)//c的值为1,即day(Monday)的值。3.相关指指令(1)set指令:TCL的变量可可以随时时建立不不用事先先宣告,,变量名名称的取取法也没没有任何何限制,,所以可可以使用用任何字字符来为为变量命命名,甚甚至变量量名和指指令名称称相同也也没问题题。使用用时只有有一点要要注意的的就是TCL是大小写写有区别别的语言言。通常常,我们们以set指令来设设定变量量值:setx5sety6setPI3.14setPI*26.28;#注意!变变量名称称是PI*2puts$PI*2setPITCL的set指令除了了有设定定变量值值的用途途外,也也可以用用来取出出变量的的内容,,如上列列程序最最后一行行使用set指令取出出PI的值(注意!这这边不用用在变量量名称前前加上$符号)。(2)unset指令用来来删除一一个或多多个变量量,来释释放内存存空间::unsetxyPITCL变量TCL只支持一一种数据据类型::字符串串(string)。所有有的命令令,命令令的所有有的参数数,命令令的结果果,所有有的变量量都是字字符串。。TCL变量根据据其结构构的复杂杂程度分分为“简简单变量量”和““数组变变量”两两类。1.简单变变量一个TCL的简单变变量包含含两个部部分:名名字和值值,其中中名字和和值都可可以是任任意字符符串。不不过为了了更好的的使用变变量置换换功能,,变量名名最好按按C\C++语言中标标识符的的命名规规则命名名。这是是因为TCL解释器在在分析一一个变量量置换时时,只把把从$符符号往后后直到第第一个不不是字母母、数字字或下划划线的字字符之间间的单词词符号作作为要被被置换的的变量的的名字。。例如:seta2seta.15setb$a.1在最后一一个命令令行,我我们希望望把变量量a.1的值付给给b,但是TCL解释器在在分析时时只把$符号之后后直到第第一个不不是字母母、数字字或下划划线的字字符(这里是'.')之间的单单词符号号(这里是'a')当作要被被置换的的变量的的名字,,所以TCL解释器把把a置换成2,然后把字字符串““2.1””付给变量量b。这显然然与我们们的初衷衷不同。。当然,,如果变变量名中中有不是是字母、、数字或或下划线线的字符符又要用用变量置置换,可可以用花花括号把把变量名名括起来来。例如如:setb${a.1}2.数组变变量数组是一一些元素素的集合合。TCL的数组和和一般编编程语言言中的数数组有很很大的区区别。在在TCL中,不能能单独声声明一个个数组,,数组只只能和数数组元素素一起声声明。数数组中数数组元素素的名字字包含两两部分::数组名名和数组组中元素素的名字字,TCL中数组元元素的名名字(下下标)可可以为任任何字符符串。例如:setday(Monday)1setday(Tuesday)2第一个命命令生成成一个名名为day的数组,,同时在在数组中中生成一一个名为为Monday的数组元元素,并并把值置置为1,第二个个命令生生成一个个名为Tuesday的数组元元素,并并把值置置为2。在数组元元素的置置换中,,除了有有括号之之外,数数组元素素的置换换和简单单变量类类似。例例如:setaMondaysetday(Monday)1setb$day(Monday)//b的值值为为1,即即day(Monday)的值值。。setc$day($a)//c的值值为为1,即即day(Monday)的值值。。3.相相关关指指令令(1)set指令令::TCL的变变量量可可以以随随时时建建立立不不用用事事先先宣宣告告,,变变量量名名称称的的取取法法也也没没有有任任何何限限制制,,所所以以可可以以使使用用任任何何字字符符来来为为变变量量命命名名,,甚甚至至变变量量名名和和指指令令名名称称相相同同也也没没问问题题。。使使用用时时只只有有一一点点要要注注意意的的就就是是TCL是大小小写有有区别别的语语言。。通常常,我我们以以set指令来来设定定变量量值::setx5sety6setPI3.14setPI*26.28;#注意!!变量量名称称是PI*2puts$PI*2setPITCL的set指令除除了有有设定定变量量值的的用途途外,,也可可以用用来取取出变变量的的内容容,如如上列列程序序最后后一行行使用用set指令取取出PI的值(注意!!这边边不用用在变变量名名称前前加上上$符号)。(2)unset指令用用来删删除一一个或或多个个变量量,来来释放放内存存空间间:unsetxyPI7.5.5数据型型态TCL语言的的基本本数据据型态态有::string、list、array、handle(不经经常使使用,,不作作介绍绍)。。1.string字符串串数据据型态态字符串串是TCL语言最最基本本的数数据型型态,,常见见的字字符串串处理理指令令有::string、append、format、scan以及binary。(1)string指令语法:stringsubcmdarg[arg...]string命令具具有强强大的的操作作字符符串的的功能能,并通过过其中中的subcmd来区别别具体体将要要执行行的string操作。他们中中的一些如下下:stringlengthstring:传回字符串串的字符数stringrangestringij:取出string字符串中从i到j位置的字符stringindexstringcharIndex:传回index位置所在的字字符stringtolowerstring[first][last]:将所定义的的字符串范围围中之字符转转换为小写字字符stringreplacestringfirstlast[newstring]:以空字符串串或newstring取代指定范围围的字符串stringequal[-nocase][-lengthint]string1string2:比较string1和string2的内容,若相相同传回1,否则传回0stringmatch[-nocase]patternstring:如果pattern匹配string,那么返回1,否则返回0stringcompare[-nocase][-lengthint]string1string2:如果有-length参数,那么只只比较前int个字符stringfirststring1string2[startindex]:在string2中从头查找与与string1匹配的字符序序列,如果找找到,那么就就返回匹配的的第一个字母母所在的位置置(0-based)。如果没有找找到,那么返返回-1stringtrimstring[chars]返回值为:从string字符串的首尾尾删除掉了字字符集合chars中的字符后的的字符串。如如果没有给出出chars,那么将删除除掉spaces、tabs、newlines、carriagereturns这些字符(2)append指令append指令用来将新新的项目附加加到指定变量量的内容后。。例:%setfoorickrick%appendfooiloveyourickiloveyou(3)format指令与C语言中的printf十分相似的指指令,format指令依据指定定的格式将字字符串格式化化。formatspecvalue1value2……(4)scan指令与C语言中的scanf十分相似的指指令,scan指令依据指定定的格式化条条件剖析字符符串并将结果果放入变量中中。scanstringformat?varName??varName?……(5)binary指令binaryformattemplatevalue?value…….?binaryscanvaluetemplatevariable?variable……?binary指令比较复杂杂,只需看几几个binary指令常用的用用法即可使用c为模板(template),将数值97格式化为ASCII字符:%binaryformatc97=>a使用c为模板(template),将字符6的ASCII值读进var1变数中:%setinput6%binaryscan$inputcvar1%setvar1=>542.list串行数据型态态list这个概念在TCL中是用来表示示集合的。TCL中list是由一堆元素素组成的有序序集合,list可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江嘉兴市第五医院(嘉兴市康慈医院)招聘高层次人才2人备考题库(第二批)及答案详解参考
- 2026吉安市担保集团有限公司招聘派遣人员4人备考题库含答案详解(完整版)
- 2026陕西宝鸡千阳县医疗健康共同体成员单位招聘38人备考题库含答案详解
- 2026年黄山市歙县消防救援大队公开招聘6名政府专职消防员备考题库完整参考答案详解
- 2026天津市远望海外人才服务有限公司招聘兼职翻译备考题库附答案详解(巩固)
- 2026四川安和精密电子电器股份有限公司招聘成本会计等岗位3人备考题库附答案详解(夺分金卷)
- 2026四川绵阳游仙区人民医院招聘五官科医师、护士岗位2人备考题库附答案详解(能力提升)
- 2026四川乐山犍为县上半年考核招聘事业单位工作人员8人备考题库含答案详解
- 2026中华联合财产保险股份有限公司校园招聘备考题库含答案详解
- 中广核服务集团有限公司2026届校园招聘备考题库及答案详解(全优)
- 2026小学信息技术课程标准测试题及答案
- 2025-2026学年地理台湾省教学设计
- 2025年70周岁以上老年人换长久驾照三力测试题库(含答案)
- 2026浙江首考英语试卷及答案解析
- 医院培训课件:《“天使之约”造口联谊会-造口护理》
- 2026四川攀枝花华润水电开发有限公司社会招聘、校园招聘8人考前自测高频考点模拟试题浓缩300题及答案1套
- 修理工工作知识培训课件
- 婚检业务培训课件
- 物业管理师考试试题及答案
- T/CCS 051-2023露天矿山自卸车无人驾驶系统总体要求
- 心血管-肾脏-代谢综合征患者的综合管理中国专家共识2025解读
评论
0/150
提交评论