以下函数使用文本字符串
字符转换:CHR(<Integer>)
此功能返回一个字符串,由与 ASCII 十进制值对应的字符组成。
格式化的执行时间:ELAPSEDEXECUTIONTIME()
此函数返回自测量程序或精简程序开始执行起所消耗的时间。执行时间为执行 DCC 部分执行所用的时间;它不会追踪由于用户需要注意而暂停的时间。(这些包括注释执行期间执行暂停或 PC-DMIS 消息等。此外,错误消息可能会完全停止执行。)时间以“hh:mm:ss”格式返回。
通过向变量分配以下函数,可在测量程序或精简程序中的任何时候记录执行时间:
ASSIGN/V1=ELAPSEDEXECUTIONTIME()
子字符串位置分隔:ELEMENT(<Integer>, <String1>, <String2>)
此功能返回字符串 2 的第 n 个子字符串(元素),使用字符串 1 作为分隔文本分隔字符串 2 中的各元素。
例如,如果字符串 2 为“6, 12, 8, 4, 5”,字符串 1 则为“,”。可以使用 element 命令单独检索 5 个元素为“6”、“12”、“8”、“4”和“5”。
不区分大小写的字符串比较:EQUAL(<String1>, <String2>)
此功能比较两个字符串(忽略大小写),确定两个字符串是否相同。如果字符串相同,则返回整数 1,如果不相同,则返回 0。
格式:FORMAT(<String>,<Integer,double,or point>)
这个函数获得两个表达式返回一个格式化的字符串,与在C++中使用sprintf函数相似
表达式1是一个字符串类型,包含一个或三个指定的格式。如果该字符串是其他类型,表达式求值程序会尝试将其强制转换为字符串。如果表达式2是一个整数或双精度实数字符串应该包含一个指定格式,如果表达式2是一个点类型字符串应该包含三个指定格式(参见以下段落)。
表达式2的类型应为integer,double,或point。如果使用了其他类型,表达式的值为0。
FORMAT 函数的格式限定符:
指定的格式应该与 C++ 程序语言中使用的 sprintf 函数指定的格式相同。
指定格式包含可选和必须的字段,有以下语法:
%[标记] [宽度] [.精度] 类型
指定格式的每个字段为单一字符或表示特殊格式的数字。一个比较简单的格式只使用百分比符号和一个类型符(比如%d)。如果百分比符号后面再跟随一个百分比符号表示该格式字段没有实际意义。比如,使用%%输出一个百分比符号。
标记,宽度,和精度字段可选项位置在类型之前,用于控制其他格式。如下所述:
标记
这些可选字符控制符号、空白、小数点和八进制/十六进制前缀的对齐和打印。格式限定符中可以出现多个标记。
以下为可用的标记:
–
含义:在给定字段宽度内左对齐。
默认:右对齐。
+
含义:如果输出值为有正负之分的类型,给输出值加前缀符(+ 或 –)。
默认值:只有负号表示赋值 (-)。
0
含义:如果宽度提前设定为 0,当宽度达到最小时将添加 0 值。如果 0 和 - 号出现,0 忽略。如果 0 被指定为整数格式(i,u,x,X,o,d),0 被忽略。
默认值:不填充。
空白 (' ')
含义:如果输出值有正负之分并且是正的,在输出值前加上一个空格;如果既加了空格又加了 + 号,则忽略空格。
默认:不出现空格
#
含义 1:当使用 o、x 或 X 时,# 号表示为任意非 0 输出值分别添加前缀 0、0x 或 0X。
默认值 1:没有前缀。
含义 2:当与 e、E 或 f 类型一起使用时,# 号强制在所有输出值上加上小数点。
默认2: 如果有数字跟着的时候会出现小数点并删除后面的零。
含义 3:当使用 g 或 G 格式,# 号强制输出值加上小数点并截断拖尾的 0。
默认值 3:如果 # 号后是阿拉伯数字,将出现小数点。后面的 0 将被删除。注:当与 d、i 或 u 一起使用时忽略。
宽度
第二个可选字段,或自变量,控制输出的最小字符数。它是非负的十进制整数。
如果输出值的字符数小于指定的宽度,值的左边或右边将加上空格—取决于是否指定了–标记(左对齐)—直到填充到最小宽度。
如果宽度的前缀是 0,将填充 0 直到达到最小宽度(对左对齐的数字无效)。
指定宽度不会引起值被截断。如果输出值的长度大于指定的宽度,或没有给定宽度,将输出值的所有字符(受以下精度格式影响)。
精度
这第三可选字段或者自变量,控制了被打印的字符的个数,小数点数或者是有效数字的个数。与宽度指定不同,精度指定可能删除输出值的部分数据或对浮点数进行取整。它是非负的十进制整数,以句号结束 (。)。
类型
这是必需的字符,可以是整数、双精度实数,或点。可用的类型列表如下:
d - 有符号的十进制整数
i - 有符号的十进制整数
o - 无符号八进制整数
u - 无符号十进制整数
x - 无符号十六进制整数,使用 "abcdef"
X - 无符号十六进制整数,使用 "ABCDEF"
e - 双精度指数 [-]d.dddd e [正负号]ddd
E - 用 E 表示指数,其余与 e 相同
f - 双精度,格式为 [-]dddd.dddd
g - 在 e 或 f 格式基础上使格式变得更紧凑
E - 用 E 表示指数,其余与 g 相同
FORMAT 示例:
该示例在测量例程中使用 FORMAT 函数的多种语句:
ASSIGN/V1=PROBEDATA("OFFSET") |
V1 表示为点类型的当前测头偏置。使用举这个例子的测量例程中的数值,V1 为: <-1.8898, 1.8898, 5.704> |
ASSIGN/V3=FORMAT("%.5f,%.5f,%.5f",V1) |
V3 为字符串型。这个字符串是使用点类型变量 V1 格式化来的。V3 现在是:-1.88976, 1.88976, 5.70403 |
ASSIGN/V4=1.123456789 |
V4 为双精度. |
ASSIGN/V5=FORMAT("%.5f ",V4)+FORMAT("%.6f ",V4)+FORMAT("%.7f ",V4)+FORMAT("%.8f",V4) |
V5 为字符串型,值为: 1.12346 1.123457 1.1234568 1.12345679 |
ASSIGN/V6A="V4 的值为:"+FORMAT("%.8f",V4) |
V6A 为字符串型,值为: V4 的值为:1.12345679 |
ASSIGN/V6B=FORMAT("V4 的值为:%.8f",V4) |
表达式的结果和V6A相同。 |
ASSIGN/V7=4444 |
除非强制为整型数值,否则所有数值都为双精度,V7也为双精度类型。 |
ASSIGN/V8=FORMAT("%o",INT(V7)) |
V8为字符串,值为:10534V8为字符串,值为:10534 |
ASSIGN/V9=FORMAT("%u",INT(-1)) |
V9 为字符串型,值为: 4294967295 |
ASSIGN/V10=FORMAT("%x",INT(2143)) |
V10为字符串,值为:85f V10为字符串,值为:85f |
ASSIGN/V11=FORMAT("%X",INT(9567)) |
V11为字符串型,值为:255FV11为字符串型,值为:255F |
ASSIGN/V12=FORMAT("%e",0.0005432) |
V12 为字符串型,值为: 5.432000e-004 |
ASSIGN/V13=FORMAT("%E",145.3421) |
V13 为字符串型,值为: 1.453421E+002 |
ASSIGN/V14=FORMAT(",%6d,",INT(1)) |
V14为字符串,值为:,1,V14为字符串,值为:,1, |
ASSIGN/V15=FORMAT(",%-6d,",INT(1)) |
V15 为字符串型,值为: ,1 , |
根据所插入的字符串参数返回 PC-DMIS 的不同设置。
GETSETTING(<String>)
可以使用的字符串参数:
“DCC 模式” – 如果 PC-DMIS 在 DCC 模式下,返回 1,否则返回 0。
“手动模式” – 如果 PC-DMIS 在手动模式下,则返回 1,否则返回 0。
“当前坐标系” – 返回当前坐标系的字符串。
“当前工作面” – 返回当前工作面的字符串。
“工作面值” – 返回当前工作面的数值。
“预测点” – 返回当前预测点值作为双精度型的精确度数。
“回退” – 返回当前回退值作为双精度型的精确度数。
“检查” – 返回当前检察值作为双精度型的精确度数。
“接触速度” – 返回当前接触速度值作为双精度型的精确度数。
“移动速度” – 返回当前移动速度值作为双精度型的精确度数。
“飞行模式” – 如果 PC-DMIS 使用飞行模式,返回 1,否则返回 0。
“有 Ph9” – 如果有 Ph9/Ph10,则返回 1,否则返回 0。
“手动 CMM” – 如果 CMM 为手动 CMM,则返回 1,否则返回 0。
"LangStr(<数值或 ID>)" – 返回资源 ID 号或以下 ID 中某个 ID 的当前语言形式的 PC-DMIS 资源的字符串:
"Yes"、"No"、"Oper"、"Rept"、"Input"、"Doc"、"YesNo"、"Readout"、"Internal"、"External"、"Rect "、"Polr "、"Out"、"In"、"Least_Sqr"、"Min_Sep"、"Max_Insc"、"Min_CircSc"、"Fixed_Rad"、"Workplane"、"Xaxis"、"YAxis"、"ZAxis"、"Xplus"、"Xminus"、"YPlus"、"YMinus"、"ZPlus"、"ZMinus"、"Point"、"Plane"、"Line"、"Circle"、"Sphere"、"Cylinder"、"Round_Slot"、"Square_slot"、"Cone" 或 "None"。
如果是个正数,PC-DMIS从resource.dll文件中取出字符串。若使用的是负数,则 PC-DMIS 从 strings.dll 文件(字符串表)取出字符串。
“展开的薄壁件” – 如果在设置选项对话框中选择显示展开的薄壁件选项复选框,返回 1,否则返回 0。
"LastHitMove(X)" – 返回最近的 HIT /BASIC 或 MOVE/POINT 命令的 X 值。要使用该函数,PC-DMIS 须处于 DCC 模式下。
"LastHitMove(Y)" – 返回最近的 HIT /BASIC 或 MOVE/POINT 命令的 Y 值。要使用该参数,PC-DMIS 须处于 DCC 模式下。
"LastHitMove(Z)" – 返回最近的 HIT /BASIC 或 MOVE/POINT 命令的 Z 值。要使用该参数,PC-DMIS 须处于 DCC 模式下。
要判断 PC-DMIS 为手动还是 DCC 模式,可参考以下使用 GETSETTING 函数的示例:
ASSIGN/DCCMODEVAR = GETSETTING("DCC Mode") - 如果 PC-DMIS 为 DCC 模式,DCCMODEVAR 的值为 1,否则值为 0。
ASSIGN/MANMODEVAR = GETSETTING(“手动模式”) - 如果 PC-DMIS 为手动模式,则 MANMODEVAR 的值为 1,否则值为 0。
要判断当前的工作平面,可使用以下示例:
ASSIGN/WORKPLANE_ID = GETSETTING(“当前工作面”) - 赋值给变量 WORKPLANE_ID 当前工作平面的字符串值(ZPLUS、ZMINUS 等)。
ASSIGN/WORKPLANE_VALUE = GETSETTING(“工作面值”) - 赋值给变量 WORKPLANE_VALUE 描述当前工作平面的数值。工作平面的值如下:ZPLUS = 0,ZMINUS = 3,XPLUS = 1,XMINUS = 4,YPLUS = 2 或 YMINUS = 5。
此功能返回指定数据字段中的当前文本:GETTEXT(<String or Integer>, <Integer>, <Pointer>)
该函数有三个字段。
第一个字段 — 数据字段编号或说明
第一个字段可以是数据字段的一串说明,可在以下图像中的(A)项或数据字段编号,以下图像中(C)项中可以看到。
以下图像中的 (B) 项不在此功能中使用,但有时在自动或报告说明中使用。
要获取这些值,请执行以下步骤:
使 PC-DMIS 处于命令模式。右击“编辑”窗口中的任意位置。屏幕上将出现一个快捷菜单。
在快捷菜单中依次选择更改弹出显示和数据类型信息。
将鼠标指针置于“编辑”窗口的数据字段上。将显示该数据项的类型说明、类型编号和类型索引。
不同语言的类型说明可能有所不同。若在使用不同语言运行的 PC-DMIS 上执行测量程序,则使用类型编号。
示例数据类型信息显示 (A) 类型说明(B) 类型字符串标识符,(C) 类型编号和 (D) 类型索引
第二个字段 — 类型索引
以上图像中所(D)指出的,第二个字段是类型索引。该字段一般为零,除非用户在同一个命令中有同样字段类型的更多实例,比如在以上图像中显示的多个目录字段。与第一个字段描述的方法一致可以获得这个字段正确的值。
第三个字段 — 命令指针
第三个字段是命令指针。它指向字段包含的文本指向的命令。该字段可以使用命令指针符号(即 {F15})或在例子里的使用 GETCOMMAND 表达式。
ASSIGN/V1 = GETTEXT(“最佳拟合数学类型”、0、{F15}) - 此命令把 F15 中最佳拟合算法的勾选值赋给 V1。
ASSIGN/V2 = GETCOMMAND(“注释”、"TOP"、1) - V2 被赋值了一个指针,这个指针指向测量程序从头开始的第一个注释。
ASSIGN/V3 = GETTEXT(“注释类型”、1、V2) - V3 被指定“注释类型”切换字段中的值。如果测量程序中的第一个注释是向操作员显示的注释,则 V3 的值必须是字符串 "OPER"。
有关设置命令指针所用的 GETCOMMAND 表达式的信息,请参见“指针函数”。
此功能根据以下传入的参数返回测量例程信息:GETPROGRAMINFO(<String>, <Optional String>)
此函数最多有两个字符串作为参数。对于大多数项目,仅需使用第一个参数。这些字符串字段不区分大小写。
第一个字段—字符串
第一个字段是详述返回信息的字符串输入。
DATE - 返回当前日期
TIME - 返回当前时间
PARTNAME - 返回测量例程标题中定义的零件名称
PARTPATH - 返回测量例程文件的完整路径
REVISION - 返回标题中定义的修订号
DRAWING - 如 REVISION 一样,也返回标题中定义的修订号
SERIALNUM - 返回标题中定义的序列号
STATSCOUNT - 返回当前统计计数
SEQNUM - 如 STATSCOUNT 一样,此字符串也返回当前统计计数
SHRINK - 返回全局缩放比例
NUMMEAS - 返回执行的尺寸数
NUMOOT - 返回执行的超出公差尺寸数
ELAPSEDTIME - 返回从执行开始起所用的时间
FILENAME - 返回测量例程的文件名 (.prg)
CADMODELNAME - 返回汇入到测量例程中的CAD模型的文件名的完整路径。
CADMODELFILENAME - 仅返回汇入到测量例程中的CAD模型(不是路径)的名称。
REPORTNAME - 返回当前输出文件名。
TEMP - 返回可选第二个输入字符串的温度。参见下文“第二个字段 — 可选字符串”。
PRGVERSION - 返回测量例程文件中 PC-DMIS 修订号的字符串值。您可保存与特定版本兼容的测量例程文件。更多信息,请参见“使用基本文件选项”一章中的“另存为”。
PRGSCHEMA - 返回测量例程文件中 PC-DMIS 结构描述编号的整数。这是 PC-DMIS 所用的内部值,用于指示序列化的命令和选项。
PCDMISVERSION - 返回 PC-DMIS 软件的实际安装版本的字符串值。
第二个字段—可选字符串
第二个字段是可选字符串输入。仅在第一个输入字段中使用 TEMP 时才需要第二个字段。以下字符串来自“温度补偿”命令。更多信息,请参见“设置首选项”一章中的“温度补偿”。
TEMPP - 返回零件传感器的温度
TEMPX - 返回 X 轴传感器的温度
TEMPY - 返回 Y 轴传感器的温度
TEMPZ - 返回 Z 轴传感器的温度
REF_TEMP - 返回参考温度
HIGH_THRESHOLD - 返回高阈值温度
LOW_THRESHOLD - 返回低阈值温度
举例
$$ NO,此代码样本显示总尺寸数和超出公差尺寸数。
ASSIGN/V1=GETPROGRAMINFO("NUMMEAS")
ASSIGN/V2=GETPROGRAMINFO("NUMOOT")
COMMENT/REPT
“总尺寸:”+ V1
“总超出公差:”+ V2
$$ NO,此代码样本返回 Z 轴传感器的温度。
ASSIGN/V3 = GETPROGRAMINFO("TEMP", "TEMPZ")
COMMENT/REPT
“Z 轴温度:”+ V3
读取跟踪值:GETTRACEVALUE(<string>)
该函数取单个字符串参数。它从测量例程中的 TRACEFIELD 命令返回一个值。
<string> 表示要返回的值的跟踪名称的区分大小写的字符串。
如果具有多个具有相同跟踪名称的跟踪字段,则此函数会返回此函数上方最近跟踪字段的值。如果跟踪字段不包含值,则此函数返回值为 0。
ASSIGN/V2=GETTRACEVALUE("Operator")
其中“运算符”是测量例程中的跟踪字段名称。
子字符串位置:INDEX(<String>, <String>)
此功能返回第二个字符串在第一个字符串中的位置。字符串的第一个字符是1。如果返回值是0,则表示子字符在字符串中没有找到。
格式化的最后执行时间:LASTEXECUTIONTIME()
此函数返回 PC-DMIS 在<测量程序的名称>.MiniRoutines.xml 文件中记录和存储的上次执行时间。上次执行时间显示在执行对话框中。时间将以 "hh:mm:ss" 格式返回。
字符串左侧的字符数:LEFT(<String>, <n>)
此功能返回第一个表达式指定的字符串中最左侧 n 个字符组成的字符串,n 由第二个表达式指定。
第一个表达式(字符)必须转换为字符串类型。第二个表达式(n)设定为类型整数。
字符串长度:LEN(<String>)
此功能返回字符串中的字符数。
创建小写字符串:LOWERCASE(<String>)
此功能返回与该表达式字符串等价的小写字符串。
字符串中间的 n 个字符:MID(<String>, <Integer>, <Optional Integer>)
此功能返回由第一个参数指定的字符串中的字符组成的子字符串,从第二个参数指定的位置开始,长度为第三个参数指定的 n 个字符。如果第三个参数没有提供,返回字符串的剩余字符。
有关此函数的示例,请参见“使用文件输入/输出”一章中的“读取行的示例代码”。
顺序转换:ORD(<String>)
此功能返回字符串第一个字母的 ASCII 整数值 (0-255)。
完整路径显示:PCDMISAPPLICATIONPPATH()
此功能返回的字符串值包括到 PC-DMIS 安装应用程序目录的完整路径。此目录包括运行 PC-DMIS 的主要可执行及其他必要程序文件。
完整路径显示:PCDMISUSERHIDDENDATAPATH()
此功能返回的字符串值包括 PC-DMIS 所用的隐藏用户数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。
完整路径显示:PCDMISUSERHIDDENDATAPATH()
此功能返回的字符串值包括 PC-DMIS 所用的可见用户数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。
完整路径显示:PCDMISSYSTEMHIDDENDATAPATH()
此功能返回的字符串值包括 PC-DMIS 所用的隐藏系统数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。
完整路径显示:PCDMISSYSTEMVISIBLEDATAPATH()
此功能返回的字符串值包括 PC-DMIS 所用的可见系统数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。
完整路径显示:PCDMISSYSTEMREPORTINGPATH()
此功能返回的字符串值包括 PC-DMIS 所用的可见报告目录的完整路径。此目录包括“报告”窗口使用的报告和标签模板。
字符串右侧的 n 个字符:RIGHT(<String>, <Integer>)
此功能返回由字符串中最右侧的 n 个字符组成的字符串,n 由整数指定。
SYSTEMDATE 系统日期:SYSTEMDATE(<Date Format String>)
此功能返回包含当前日期信息的日期格式字符串。比如,如果当前日期是 2014 年 2 月 12 日,命令 SYSTEMDATE("MM’/’dd’/’yy") 将返回字符串 "02/12/14"。
利用以下字符串元素建立日期字符串。元素的大小写必须与以下所示的相同(是 MM 而非 mm)。日期格式字符串元素中的非日期字符(如空格)将作为输入字符串,显示在输出字符串中的相同位置。输入字符串中由单引号分隔的字符将显示在输出字符串中的相同位置,但不会显示单引号。
d – 每个月中天数的阿拉伯数字。一位数的日期没有前导零。
dd - 每月的日期(数字)。一位数的日期使用前导零。
ddd – 星期几的三个字母缩写。
dddd – 今天是星期几的全名。
M – 没有前导零的单位数的月份。
MM – 有前导零的单位数的月份。
MMM – 月份的三个字母缩写。
MMMM – 月份全称。
y – 没有前导零的单位数的年。
yy – 有前导零的单位数的年。
yyyy – 用四位数来表示的年。
格式化系统时间:SYSTEMTIME(<时间格式字符串>)
此功能返回包含当前时间信息的时间格式字符串。例如,命令 SYSTEMTIME("hh:mm:ss tt") 将以格式化字符串返回时间,如:"11:29:40 PM"。
使用以下字符串元素创建时间字符串。元素的大小写必须如下所示(tt 而不是 TT)。在输出字符串中,时间格式字符串元素之间出现的非时间字符(例如空格)将出现在与输入字符串相同的位置。输入字符串中使用单引号分隔的字符将出现在输出字符串的相同位置,没有单引号。
h – 小时数,没有前导零;12 小时制
hh – 有前导零的单位数小时数;12 小时制
H – 无前导零的单位数小时数;24 小时制
HH – 有前导零的单位数小时数;24 小时制
m – 无前导零的单位数的分钟数
mm – 有前导零的单位数的分钟数
s – 没有前导零的单位数的秒数
ss – 有前导零的单位数的秒数
t – 一个字符的时间标记字符串,例如 A 或 P
tt – 多字符的时间标记字符串,例如 AM 或 PM
系统时间:SYSTIME()
此功能返回包含当前系统时间的字符串。该函数与上面所述的 SYSTEMTIME 函数不同。函数自动返回天数、日期、时间、年份。
例如:“2014 年 2 月 12 日星期三 13:50:21”
返回的显示当前系统时间的字符串将调整为本机的时区设置。
创建大写字符串:UPPERCASE(<String>)
此功能返回与该字符串等价的大写字符串。
PC-DMIS 2020 R1
版权所有 © 2020 Hexagon Manufacturing Intelligence – Metrology Software, Inc.
帮助系统最后生成于09 April 2020