社区活动 技术论坛 高级编程应用系列(七)——函数介绍
高级编程应用系列(七)——函数介绍
2020-11-13 10:57 131 1 4

赋值中函数功能简介

数学函数

ABS

ABS 绝对值:ABS(<Double>)
返回输入值的绝对值。

EXP

EXP 指数:EXP(<Double>)
返回表达式的指数。

LOG

LOG 基数为 10 的对数:LOG(<Double>)
返回表达式的基数为 10 的对数。

LN

LN 自然对数: LN(<Double>)
返回表达式的自然对数。

ROUND

ROUND 凑整:ROUND(<Double>)
返回输入值最近的整数。

SQRT

SQRT 平方根: SQRT(<Double>)
返回输入值的平方根。

三角函数

重要:每个三角函数默认使用的及返回的值均为弧度。如想采用角度值,请使用以下说明的 RAD2DEG 函数。

ACOS

ACOS 反余弦:ACOS(<Double>)
返回表达式的反余弦值。例如,ACOS(5.0) 返回 0。通常,ACOS(<expression>) 返回表达式值的反余弦。

ASIN

ASIN 反正弦:ASIN(<Double>)
返回输入值的反正弦。

ATAN

ATAN 反正切:ATAN(<Double>)
返回输入值的反正切。

COS

COS 余弦:COS(<Double>)
返回输入值的余弦。

DEG2RAD

DEG2RAD 角度转换为弧度:DEG2RAD(<Double>)
返回输入值除以 360 乘以 2p。角度转换为弧度。

RAD2DEG

RAD2DEG 弧度转换为角度:RAD2DEG(<Double>)
返回输入值乘以 360 除以 2p。弧度转换为角度。

SIN

SIN 正弦: SIN(<Double> )
返回输入值的正弦。

TAN

TAN 正切: TAN(<Double>)
返回输入值的正切。

注:输入超出范围的函数(如 ACOS、ASIN、LOG、LN、SQRT 等,输入超出范围将导致计算机崩溃)返回的值为 0。


点函数

ANGLEBETWEEN

ANGLEBETWEEN

夹角:ANGLEBETWEEN( <vector>, <vector>)

返回两个矢量之间的夹角(单位:度)。两个参数的表达式必须计算为矢量类型。要得到特征的矢量,例如,您需要使用特征标识,后面跟随 .IJK 扩展名。请参考以下示例。

示例:

F1 =一般/点,从属,直角坐标,$
理论值/XYZ,<3,3,3>,$
测定值/XYZ,<3,3,3>,$
理论值/IJK,<1,0,0>,$
测定值/IJK, <1,0,0>
F2 =一般/点,从属,直角坐标,$
理论值/XYZ,<10,10,10>,$
测定值/XYZ,<10,10,10>,$
理论值/IJK,<0,0,1>,$
测定值/IJK, <0,0,1>
ASSIGN/V1=F1.IJK
ASSIGN/V2=F2.IJK
ASSIGN/V3=ANGLEBETWEEN(V1,V2)
注释/运行,否,全屏=否,自动继续=否,
“ " + V1 + "和 " + V2 + "之间的夹角是 " + V3
CROSS

CROSS
叉积:CROSS(<Point>, <Point>)

返回值属于点类型,是第一个表达式和第二个表达式的叉积。

DELTA

DELTA
矢量偏置:DELTA(<Point>, <Point>, <Double>)

该函数使用第一个表达式(点),在第二个表达式(矢量)的方向上以第三个表达式为偏置计算一个新点。例如,DELTA(MPOINT(0,0,0), MPOINT(1,0,0), 10) 返回点 10,0,0。

DOT

DOT
点积:DOT(<Point>, <Point>)

返回两个点(矢量)的点积。

UNIT

UNIT
单位矢量:UNIT(<Point>)

返回点除以其长度。例如,UNIT(MPOINT(0,0,0)) 返回点 0,0,1。

MPOINT

MPOINT
点强制:MPOINT(<Expression1>, <Expression2>, <Expression3>)

强制三个表达式为点类型。

示例:
ASSIGN/V1 = MPOINT(2.5,3.6,4)

V1.X 的值是 2.5
V1.Y 的值是 3.6
V1.Z 的值是 4.0


数组函数

ARRAY

ARRAY:创建数组:ARRAY(<EXPRESSION1>, <EXPRESSION2>, <EXPRESSION3>, …)
使用由表达式参数来表示的数组元素来创建数组对象。数组元素使用基指数 1 编号。

EQUAL

EQUAL:数组元素与元素的比较:EQUAL(<ARRAY>, <ARRAY>)
通过逐个元素的比较来确定两个数组是否是相同的元素。如果两个数组包含的元素个数不一样或者一个数组中的任何一个元素与其他数组中的相关元素不匹配,则函数返回为 0。否则,函数将返回 1。

LEN

LEN:数组元素计数: LEN(<ARRAY>)
返回数组中元素数。

MAX

MAX:最大数组元素:MAX(<ARRAY>)
返回数组中的最大元素。数组中的项目按照数字或字母比较。

MIN

MIN:最小数组元素:MIN(<ARRAY>)
返回数组中的最小元素。数组中的项目按照数字或字母比较。




以下函数使用文本字符串

CHR

CHR
字符转换:CHR(<Integer>)

返回一个字符串,由与 ASCII 十进制值对应的字符组成。

ELAPSEDEXECUTIONTIME

ELAPSEDEXECUTIONTIME
格式化的执行时间:ELAPSEDEXECUTIONTIME()

此函数返回自测量程序或精简程序开始执行起所消耗的时间。执行时间为执行 DCC 部分执行所用的时间;它不会添加由于用户需要注意而暂停的时间。(例如,当执行注释、出现消息或出现错误和停止执行时,可能会暂停执行。)时间将以 "hh:mm:ss" 格式返回。

通过向变量分配以下函数,可在测量程序或精简程序中的任何时候记录执行时间:

ASSIGN/V1=ELAPSEDEXECUTIONTIME()
ELEMENT

ELEMENT
子字符串位置分隔:ELEMENT(<Integer>, <String1>, <String2>)

返回字符串 2 的第 n 个子字符串(元素),使用字符串 1 作为分隔文本分隔字符串 2 中的各元素。例如,如果字符串 2 为“6, 12, 8, 4, 5”,字符串 1 则为“,”, 可以使用 element 命令单独检索 5 个元素为“6”、“12”、“8”、“4”和“5”。

EQUAL

EQUAL
不区分大小写的字符串比较:EQUAL(<String>, <String>)

比较两个字符串(忽略大小写),确定两个字符串是否相同。如果字符串相同,则返回整数 1,如果不相同,则返回 0。

FORMAT

FORMAT
格式: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 格式基础上使格式变得更紧凑

G - 与 g 相同,但用 E 表示指数

FORMAT 示例:
该示例在测量例程中使用 FORMAT 函数的多种语句:

ASSIGN/V1 = PROBEDATA("OFFSET")
ASSIGN/V3 = FORMAT("%.5f, %.5f, %.5f", V1)
ASSIGN/V4 = 1.123456789
ASSIGN/V5 = FORMAT("%.5f ", V4) + FORMAT("%.6f ", V4) + FORMAT("%.7f ", V4) + FORMAT("%.8f", V4)
ASSIGN/V6A =“V4 的值为:”+ FORMAT("%.8f", V4)
ASSIGN/V6B = FORMAT(“V4 的值为:%.8f", V4)
ASSIGN/V7 = 4444
ASSIGN/V8 = FORMAT("%o", INT(V7))
ASSIGN/V9 = FORMAT("%u", INT(-1))
ASSIGN/V10 = FORMAT("%x", INT(2143))
ASSIGN/V11 = FORMAT("%X", INT(9567))
ASSIGN/V12 = FORMAT("%e", 0.0005432)
ASSIGN/V13 = FORMAT("%E", 145.3421)
ASSIGN/V14 = FORMAT(",%6d,", INT(1))
ASSIGN/V15 = FORMAT(",%-6d,", INT(1))
GETSETTING

GETSETTING
根据所插入的字符串参数返回 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

GETTEXT
返回指定数据字段中的当前文本:GETTEXT(<String 或 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

GETPROGRAMINFO
根据以下传入的参数返回测量例程信息:GETPROGRAMINFO(<String>, <Optional String>)

此函数最多有两个字符串作为参数。对于大多数项目,仅需使用第一个参数。这些字符串字段不区分大小写。

第一个字段—字符串
第一个字段是详述返回信息的字符串输入。

DATE - 返回当前日期
TIME - 返回当前时间
PARTNAME - 返回测量例程标题中定义的零件名称
PARTPATH - 返回测量例程文件的完整路径
REVISION - 返回标题中定义的修订号
DRAWING - 如 REVISION 一样,也返回标题中定义的修订号
SERIALNUM - 返回标题中定义的序列号
STATSCOUNT - 返回当前统计计数
SEQNUM - 如 STATSCOUNT 一样,也返回当前统计计数
SHRINK - 返回全局缩放比例
NUMMEAS - 返回执行的尺寸数
NUMOOT - 返回执行的超出公差尺寸数
ELAPSEDTIME - 返回从执行开始起所用的时间
FILENAME - 返回测量例程的文件名 (.prg)
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
INDEX

INDEX
子字符串位置:INDEX(<String>, <String>)

返回第二个字符串在第一个字符串中的位置。字符串的第一个字符是1。如果返回值是0,则表示子字符在字符串中没有找到。

有关此函数的示例,请参见“使用文件输入/输出”一章中的“读取行的示例代码”。

LASTEXECUTIONTIME

LASTEXECUTIONTIME
格式化的最后执行时间:LASTEXECUTIONTIME()

此函数返回 PC-DMIS 在<测量程序的名称>.MiniRoutines.xml 文件中记录和存储的上次执行时间。上次执行时间显示在执行对话框中。时间将以 "hh:mm:ss" 格式返回。

LEFT

LEFT
字符串左侧 n 个字符:LEFT(<String>, <String>)

返回第一个表达式指定的字符串中最左侧 n 个字符组成的字符串,n 由第二个表达式指定。第一个表达式类型强制为字符串,第二个表达式类型强制为整数。

有关此函数的示例,请参见“使用文件输入/输出”一章中的“读取行的示例代码”。

LEN

LEN
字符串长度:LEN(<String>)

返回字符串中的字符数。

LOWERCASE

LOWERCASE
创建小写字符串:LOWERCASE(<String>)

返回与该字符串等价的小写字符串。

MID

MID
字符串中间的 n 个字符:MID(<String>, <Integer>, <Optional Integer>)

返回由第一个参数指定的字符串中的字符组成的子字符串,从第二个参数指定的位置开始,长度为第三个参数指定的 n 个字符。如果第三个参数没有提供,返回字符串的剩余字符。

有关此函数的示例,请参见“使用文件输入/输出”一章中的“读取行的示例代码”。

ORD

ORD
顺序转换:ORD(<String>)

返回字符串 (0-255) 第一个字母的 ASCII 整数值。

PCDMISAPPLICATIONPATH

PCDMISAPPLICATIONPATH
完整路径显示:PCDMISAPPLICATIONPPATH()

返回的字符串值包括到 PC-DMIS 安装应用程序目录的完整路径。此目录包括运行 PC-DMIS 的主要可执行及其他必要程序文件。

PCDMISUSERHIDDENDATAPATH

PCDMISUSERHIDDENDATAPATH
完整路径显示:PCDMISUSERHIDDENDATAPATH()

返回的字符串值包括 PC-DMIS 所用的隐藏用户数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。

PCDMISUSERVISIBLEDATAPATH

PCDMISUSERVISIBLEDATAPATH
完整路径显示:PCDMISUSERHIDDENDATAPATH()

返回的字符串值包括 PC-DMIS 所用的可见用户数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。

PCDMISSYSTEMHIDDENDATAPATH

PCDMISSYSTEMHIDDENDATAPATH
完整路径显示:PCDMISSYSTEMHIDDENDATAPATH()

返回的字符串值包括 PC-DMIS 所用的隐藏系统数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。

PCDMISSYSTEMVISIBLEDATAPATH

PCDMISSYSTEMVISIBLEDATAPATH
完整路径显示:PCDMISSYSTEMVISIBLEDATAPATH()

返回的字符串值包括 PC-DMIS 所用的可见系统数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。

PCDMISSYSTEMREPORTINGPATH

PCDMISSYSTEMREPORTINGPATH
完整路径显示:PCDMISSYSTEMREPORTINGPATH()

返回的字符串值包括 PC-DMIS 所用的可见报告目录的完整路径。此目录包括“报告”窗口使用的报告和标签模板。

RIGHT

RIGHT
字符串右侧的 n 个字符:RIGHT(<String>, <Integer>)

返回由字符串中最右侧的 n 个字符组成的字符串,n 由整数指定。

SYSTEMDATE

SYSTEMDATE
系统日期:SYSTEMDATE(<日期格式字符串>)

返回包含当前日期信息的日期格式字符串。比如,如果当前日期是 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
格式化系统时间: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

SYSTIME
系统时间:SYSTIME()

返回包含当前系统时间的字符串。该函数与上面所述的 SYSTEMTIME 函数不同。函数自动返回天数、日期、时间、年份。

例如:“2014 年 2 月 12 日星期三 13:50:21”

注:返回的显示当前系统时间的字符串将调整为本机的时区设置。

UPPERCASE

UPPERCASE
创建大写字符串:UPPERCASE(<String>)

返回与该字符串等价的大写字符串。



指针函数


DIST2D


DIST2D
2d 距离:DIST2D(<FEAT1>, <FEAT2>, <FEAT3>)


注:特征必须用大括号括起来。


计算命令中前两个自变量(特征1和特征2)之间沿垂直于第三个自变量(特征3)的距离。


如果第三个自变量为平面,则计算前两个自变量垂直于平面的距离。


如果第三个自变量为直线或圆柱,则计算前两个自变量在活动平面垂直于第三个自变量的距离。


例如,XY平面为第三个变量,则有Z+矢量(0,0,1),报告距离仅在Z轴。


举例
ASSIGN/V3=DIST2D({CIR1},{CIR2},{PLN1})
注释/运行,否,全屏=否,自动继续=否,
V3
DIST3D


DIST3D
3D 距离:DIST3D(<FEAT1>, <FEAT2>)


计算特征 1 与特征 2 之间的 3D 距离。


注:特征必须用大括号括起来。


举例
ASSIGN/V3=DIST3D({CIR1},{CIR2})
注释/运行,否,全屏=否,自动继续=否,
V3


GETCOMMAND


GETCOMMAND
通过参数指定的命令获得指针:GETCOMMAND(<Integer 或 String>, <String>, <Integer>


第一个参数—命令信息字段
第一个参数是命令信息字段。该字段指定要搜索的命令类型。可以传入以下参数:


一个命令描述字符串。见(A)以下表格。


一个命令类型编号。见(B)以下表格。


唯一的数字标识。见(C)以下表格。


如果传入了唯一的命令ID,则不需要其它自变量。


获得命令描述字符串,命令类型编号,命令唯一的数字标识:


在编辑窗口单击右键


选择更改弹出显示 | 命令信息(PC-DMIS 须处于命令模式下)。


将鼠标指针放在所需命令上。该命令的命令说明、类型编号和唯一数字标识将显示在弹出菜单中。


















示例命令信息显示(A)命令说明字符串,(B)命令类型编号和(C)唯一编号标识符(UID)。


第二个参数 - 搜索方向
第二个参数是搜索方向。有效值包括:


描述
UP该值表示从当前命令开始向上进行搜索。
DOWN该值表示从当前命令开始向下进行搜索。
TOP该值表示从测量例程开头开始向下进行搜索
底部该值表示从测量例程的最后一个对象开始向上进行搜索


第三个参数 - 要查找的实例
第三个参数表明如果同一个命令多个实例在测量例程里,应该找到哪个命令实例。


示例:如果测量程序有两个 STATS/ON 命令实例,要获得顶部第二个实例的指针,将传入 "2" 作为第三个参数,并传入 "TOP" 作为此处所示的第二个参数。


ASSIGN/V1 = GETCOMMAND("Statistics", "TOP", 2)


GETCOMMAND 函数可以用来提供 GETTEXT 字符串函数的第三个参数。有关 GETTEXT 信息,请参见“字符串函数”。


LEN


LEN
指针循环计数:LEN(<POINTER>)


返回指针处于循环中的次数。比如,如果特征 CIR1 在循环中重复执行 10 次,你可以使用 ASSIGN 语句存储 CIR1 执行了多少次:ASSIGN/V1=LEN({CIR1})

赋值中函数功能简介

数学函数

ABS

ABS 绝对值:ABS(<Double>)
返回输入值的绝对值。

EXP

EXP 指数:EXP(<Double>)
返回表达式的指数。

LOG

LOG 基数为 10 的对数:LOG(<Double>)
返回表达式的基数为 10 的对数。

LN

LN 自然对数: LN(<Double>)
返回表达式的自然对数。

ROUND

ROUND 凑整:ROUND(<Double>)
返回输入值最近的整数。

SQRT

SQRT 平方根: SQRT(<Double>)
返回输入值的平方根。

三角函数

重要:每个三角函数默认使用的及返回的值均为弧度。如想采用角度值,请使用以下说明的 RAD2DEG 函数。

ACOS

ACOS 反余弦:ACOS(<Double>)
返回表达式的反余弦值。例如,ACOS(5.0) 返回 0。通常,ACOS(<expression>) 返回表达式值的反余弦。

ASIN

ASIN 反正弦:ASIN(<Double>)
返回输入值的反正弦。

ATAN

ATAN 反正切:ATAN(<Double>)
返回输入值的反正切。

COS

COS 余弦:COS(<Double>)
返回输入值的余弦。

DEG2RAD

DEG2RAD 角度转换为弧度:DEG2RAD(<Double>)
返回输入值除以 360 乘以 2p。角度转换为弧度。

RAD2DEG

RAD2DEG 弧度转换为角度:RAD2DEG(<Double>)
返回输入值乘以 360 除以 2p。弧度转换为角度。

SIN

SIN 正弦: SIN(<Double> )
返回输入值的正弦。

TAN

TAN 正切: TAN(<Double>)
返回输入值的正切。

注:输入超出范围的函数(如 ACOS、ASIN、LOG、LN、SQRT 等,输入超出范围将导致计算机崩溃)返回的值为 0。


点函数

ANGLEBETWEEN

ANGLEBETWEEN

夹角:ANGLEBETWEEN( <vector>, <vector>)

返回两个矢量之间的夹角(单位:度)。两个参数的表达式必须计算为矢量类型。要得到特征的矢量,例如,您需要使用特征标识,后面跟随 .IJK 扩展名。请参考以下示例。

示例:

F1 =一般/点,从属,直角坐标,$
理论值/XYZ,<3,3,3>,$
测定值/XYZ,<3,3,3>,$
理论值/IJK,<1,0,0>,$
测定值/IJK, <1,0,0>
F2 =一般/点,从属,直角坐标,$
理论值/XYZ,<10,10,10>,$
测定值/XYZ,<10,10,10>,$
理论值/IJK,<0,0,1>,$
测定值/IJK, <0,0,1>
ASSIGN/V1=F1.IJK
ASSIGN/V2=F2.IJK
ASSIGN/V3=ANGLEBETWEEN(V1,V2)
注释/运行,否,全屏=否,自动继续=否,
“ " + V1 + "和 " + V2 + "之间的夹角是 " + V3
CROSS

CROSS
叉积:CROSS(<Point>, <Point>)

返回值属于点类型,是第一个表达式和第二个表达式的叉积。

DELTA

DELTA
矢量偏置:DELTA(<Point>, <Point>, <Double>)

该函数使用第一个表达式(点),在第二个表达式(矢量)的方向上以第三个表达式为偏置计算一个新点。例如,DELTA(MPOINT(0,0,0), MPOINT(1,0,0), 10) 返回点 10,0,0。

DOT

DOT
点积:DOT(<Point>, <Point>)

返回两个点(矢量)的点积。

UNIT

UNIT
单位矢量:UNIT(<Point>)

返回点除以其长度。例如,UNIT(MPOINT(0,0,0)) 返回点 0,0,1。

MPOINT

MPOINT
点强制:MPOINT(<Expression1>, <Expression2>, <Expression3>)

强制三个表达式为点类型。

示例:
ASSIGN/V1 = MPOINT(2.5,3.6,4)

V1.X 的值是 2.5
V1.Y 的值是 3.6
V1.Z 的值是 4.0


数组函数

ARRAY

ARRAY:创建数组:ARRAY(<EXPRESSION1>, <EXPRESSION2>, <EXPRESSION3>, …)
使用由表达式参数来表示的数组元素来创建数组对象。数组元素使用基指数 1 编号。

EQUAL

EQUAL:数组元素与元素的比较:EQUAL(<ARRAY>, <ARRAY>)
通过逐个元素的比较来确定两个数组是否是相同的元素。如果两个数组包含的元素个数不一样或者一个数组中的任何一个元素与其他数组中的相关元素不匹配,则函数返回为 0。否则,函数将返回 1。

LEN

LEN:数组元素计数: LEN(<ARRAY>)
返回数组中元素数。

MAX

MAX:最大数组元素:MAX(<ARRAY>)
返回数组中的最大元素。数组中的项目按照数字或字母比较。

MIN

MIN:最小数组元素:MIN(<ARRAY>)
返回数组中的最小元素。数组中的项目按照数字或字母比较。




以下函数使用文本字符串

CHR

CHR
字符转换:CHR(<Integer>)

返回一个字符串,由与 ASCII 十进制值对应的字符组成。

ELAPSEDEXECUTIONTIME

ELAPSEDEXECUTIONTIME
格式化的执行时间:ELAPSEDEXECUTIONTIME()

此函数返回自测量程序或精简程序开始执行起所消耗的时间。执行时间为执行 DCC 部分执行所用的时间;它不会添加由于用户需要注意而暂停的时间。(例如,当执行注释、出现消息或出现错误和停止执行时,可能会暂停执行。)时间将以 "hh:mm:ss" 格式返回。

通过向变量分配以下函数,可在测量程序或精简程序中的任何时候记录执行时间:

ASSIGN/V1=ELAPSEDEXECUTIONTIME()
ELEMENT

ELEMENT
子字符串位置分隔:ELEMENT(<Integer>, <String1>, <String2>)

返回字符串 2 的第 n 个子字符串(元素),使用字符串 1 作为分隔文本分隔字符串 2 中的各元素。例如,如果字符串 2 为“6, 12, 8, 4, 5”,字符串 1 则为“,”, 可以使用 element 命令单独检索 5 个元素为“6”、“12”、“8”、“4”和“5”。

EQUAL

EQUAL
不区分大小写的字符串比较:EQUAL(<String>, <String>)

比较两个字符串(忽略大小写),确定两个字符串是否相同。如果字符串相同,则返回整数 1,如果不相同,则返回 0。

FORMAT

FORMAT
格式: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 格式基础上使格式变得更紧凑

G - 与 g 相同,但用 E 表示指数

FORMAT 示例:
该示例在测量例程中使用 FORMAT 函数的多种语句:

ASSIGN/V1 = PROBEDATA("OFFSET")
ASSIGN/V3 = FORMAT("%.5f, %.5f, %.5f", V1)
ASSIGN/V4 = 1.123456789
ASSIGN/V5 = FORMAT("%.5f ", V4) + FORMAT("%.6f ", V4) + FORMAT("%.7f ", V4) + FORMAT("%.8f", V4)
ASSIGN/V6A =“V4 的值为:”+ FORMAT("%.8f", V4)
ASSIGN/V6B = FORMAT(“V4 的值为:%.8f", V4)
ASSIGN/V7 = 4444
ASSIGN/V8 = FORMAT("%o", INT(V7))
ASSIGN/V9 = FORMAT("%u", INT(-1))
ASSIGN/V10 = FORMAT("%x", INT(2143))
ASSIGN/V11 = FORMAT("%X", INT(9567))
ASSIGN/V12 = FORMAT("%e", 0.0005432)
ASSIGN/V13 = FORMAT("%E", 145.3421)
ASSIGN/V14 = FORMAT(",%6d,", INT(1))
ASSIGN/V15 = FORMAT(",%-6d,", INT(1))
GETSETTING

GETSETTING
根据所插入的字符串参数返回 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

GETTEXT
返回指定数据字段中的当前文本:GETTEXT(<String 或 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

GETPROGRAMINFO
根据以下传入的参数返回测量例程信息:GETPROGRAMINFO(<String>, <Optional String>)

此函数最多有两个字符串作为参数。对于大多数项目,仅需使用第一个参数。这些字符串字段不区分大小写。

第一个字段—字符串
第一个字段是详述返回信息的字符串输入。

DATE - 返回当前日期
TIME - 返回当前时间
PARTNAME - 返回测量例程标题中定义的零件名称
PARTPATH - 返回测量例程文件的完整路径
REVISION - 返回标题中定义的修订号
DRAWING - 如 REVISION 一样,也返回标题中定义的修订号
SERIALNUM - 返回标题中定义的序列号
STATSCOUNT - 返回当前统计计数
SEQNUM - 如 STATSCOUNT 一样,也返回当前统计计数
SHRINK - 返回全局缩放比例
NUMMEAS - 返回执行的尺寸数
NUMOOT - 返回执行的超出公差尺寸数
ELAPSEDTIME - 返回从执行开始起所用的时间
FILENAME - 返回测量例程的文件名 (.prg)
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
INDEX

INDEX
子字符串位置:INDEX(<String>, <String>)

返回第二个字符串在第一个字符串中的位置。字符串的第一个字符是1。如果返回值是0,则表示子字符在字符串中没有找到。

有关此函数的示例,请参见“使用文件输入/输出”一章中的“读取行的示例代码”。

LASTEXECUTIONTIME

LASTEXECUTIONTIME
格式化的最后执行时间:LASTEXECUTIONTIME()

此函数返回 PC-DMIS 在<测量程序的名称>.MiniRoutines.xml 文件中记录和存储的上次执行时间。上次执行时间显示在执行对话框中。时间将以 "hh:mm:ss" 格式返回。

LEFT

LEFT
字符串左侧 n 个字符:LEFT(<String>, <String>)

返回第一个表达式指定的字符串中最左侧 n 个字符组成的字符串,n 由第二个表达式指定。第一个表达式类型强制为字符串,第二个表达式类型强制为整数。

有关此函数的示例,请参见“使用文件输入/输出”一章中的“读取行的示例代码”。

LEN

LEN
字符串长度:LEN(<String>)

返回字符串中的字符数。

LOWERCASE

LOWERCASE
创建小写字符串:LOWERCASE(<String>)

返回与该字符串等价的小写字符串。

MID

MID
字符串中间的 n 个字符:MID(<String>, <Integer>, <Optional Integer>)

返回由第一个参数指定的字符串中的字符组成的子字符串,从第二个参数指定的位置开始,长度为第三个参数指定的 n 个字符。如果第三个参数没有提供,返回字符串的剩余字符。

有关此函数的示例,请参见“使用文件输入/输出”一章中的“读取行的示例代码”。

ORD

ORD
顺序转换:ORD(<String>)

返回字符串 (0-255) 第一个字母的 ASCII 整数值。

PCDMISAPPLICATIONPATH

PCDMISAPPLICATIONPATH
完整路径显示:PCDMISAPPLICATIONPPATH()

返回的字符串值包括到 PC-DMIS 安装应用程序目录的完整路径。此目录包括运行 PC-DMIS 的主要可执行及其他必要程序文件。

PCDMISUSERHIDDENDATAPATH

PCDMISUSERHIDDENDATAPATH
完整路径显示:PCDMISUSERHIDDENDATAPATH()

返回的字符串值包括 PC-DMIS 所用的隐藏用户数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。

PCDMISUSERVISIBLEDATAPATH

PCDMISUSERVISIBLEDATAPATH
完整路径显示:PCDMISUSERHIDDENDATAPATH()

返回的字符串值包括 PC-DMIS 所用的可见用户数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。

PCDMISSYSTEMHIDDENDATAPATH

PCDMISSYSTEMHIDDENDATAPATH
完整路径显示:PCDMISSYSTEMHIDDENDATAPATH()

返回的字符串值包括 PC-DMIS 所用的隐藏系统数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。

PCDMISSYSTEMVISIBLEDATAPATH

PCDMISSYSTEMVISIBLEDATAPATH
完整路径显示:PCDMISSYSTEMVISIBLEDATAPATH()

返回的字符串值包括 PC-DMIS 所用的可见系统数据目录的完整路径。有关此目录中的文件,请参见“了解文件位置”。

PCDMISSYSTEMREPORTINGPATH

PCDMISSYSTEMREPORTINGPATH
完整路径显示:PCDMISSYSTEMREPORTINGPATH()

返回的字符串值包括 PC-DMIS 所用的可见报告目录的完整路径。此目录包括“报告”窗口使用的报告和标签模板。

RIGHT

RIGHT
字符串右侧的 n 个字符:RIGHT(<String>, <Integer>)

返回由字符串中最右侧的 n 个字符组成的字符串,n 由整数指定。

SYSTEMDATE

SYSTEMDATE
系统日期:SYSTEMDATE(<日期格式字符串>)

返回包含当前日期信息的日期格式字符串。比如,如果当前日期是 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
格式化系统时间: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

SYSTIME
系统时间:SYSTIME()

返回包含当前系统时间的字符串。该函数与上面所述的 SYSTEMTIME 函数不同。函数自动返回天数、日期、时间、年份。

例如:“2014 年 2 月 12 日星期三 13:50:21”

注:返回的显示当前系统时间的字符串将调整为本机的时区设置。

UPPERCASE

UPPERCASE
创建大写字符串:UPPERCASE(<String>)

返回与该字符串等价的大写字符串。



指针函数


DIST2D


DIST2D
2d 距离:DIST2D(<FEAT1>, <FEAT2>, <FEAT3>)


注:特征必须用大括号括起来。


计算命令中前两个自变量(特征1和特征2)之间沿垂直于第三个自变量(特征3)的距离。


如果第三个自变量为平面,则计算前两个自变量垂直于平面的距离。


如果第三个自变量为直线或圆柱,则计算前两个自变量在活动平面垂直于第三个自变量的距离。


例如,XY平面为第三个变量,则有Z+矢量(0,0,1),报告距离仅在Z轴。


举例
ASSIGN/V3=DIST2D({CIR1},{CIR2},{PLN1})
注释/运行,否,全屏=否,自动继续=否,
V3
DIST3D


DIST3D
3D 距离:DIST3D(<FEAT1>, <FEAT2>)


计算特征 1 与特征 2 之间的 3D 距离。


注:特征必须用大括号括起来。


举例
ASSIGN/V3=DIST3D({CIR1},{CIR2})
注释/运行,否,全屏=否,自动继续=否,
V3


GETCOMMAND


GETCOMMAND
通过参数指定的命令获得指针:GETCOMMAND(<Integer 或 String>, <String>, <Integer>


第一个参数—命令信息字段
第一个参数是命令信息字段。该字段指定要搜索的命令类型。可以传入以下参数:


一个命令描述字符串。见(A)以下表格。


一个命令类型编号。见(B)以下表格。


唯一的数字标识。见(C)以下表格。


如果传入了唯一的命令ID,则不需要其它自变量。


获得命令描述字符串,命令类型编号,命令唯一的数字标识:


在编辑窗口单击右键


选择更改弹出显示 | 命令信息(PC-DMIS 须处于命令模式下)。


将鼠标指针放在所需命令上。该命令的命令说明、类型编号和唯一数字标识将显示在弹出菜单中。


















示例命令信息显示(A)命令说明字符串,(B)命令类型编号和(C)唯一编号标识符(UID)。


第二个参数 - 搜索方向
第二个参数是搜索方向。有效值包括:


描述
UP该值表示从当前命令开始向上进行搜索。
DOWN该值表示从当前命令开始向下进行搜索。
TOP该值表示从测量例程开头开始向下进行搜索
底部该值表示从测量例程的最后一个对象开始向上进行搜索


第三个参数 - 要查找的实例
第三个参数表明如果同一个命令多个实例在测量例程里,应该找到哪个命令实例。


示例:如果测量程序有两个 STATS/ON 命令实例,要获得顶部第二个实例的指针,将传入 "2" 作为第三个参数,并传入 "TOP" 作为此处所示的第二个参数。


ASSIGN/V1 = GETCOMMAND("Statistics", "TOP", 2)


GETCOMMAND 函数可以用来提供 GETTEXT 字符串函数的第三个参数。有关 GETTEXT 信息,请参见“字符串函数”。


LEN


LEN
指针循环计数:LEN(<POINTER>)


返回指针处于循环中的次数。比如,如果特征 CIR1 在循环中重复执行 10 次,你可以使用 ASSIGN 语句存储 CIR1 执行了多少次:ASSIGN/V1=LEN({CIR1})


我要回复

登陆后才能评论

登录
所有回贴(4)
白云
飞起
2025-10-13 08:49
回复
取消
提交
给个👍
2020-11-13 21:24
回复
取消
提交
王奎

加油!!

2020-11-13 18:30
回复
取消
提交
赵云贺

666大神带我飞

2020-11-13 11:43
回复
取消
提交
在线咨询
关注我们

海克斯康制造智能

电话咨询
400-6580-400

热线电话(工作时间8:30-17:30)

关注我们 电话咨询 在线咨询

海克斯康制造智能