serError(error_string)
此函数在 CLDATA 文件发生错误时中断后处理(例如,如果条件不满足)。在命令执行过程中,当 Autodesk Manufacturing Post-Processor Utility遇到此函数时,它在函数调用位置停止,在 输出 窗口中显示用户定义消息。
参数
error_string - 用户定义的错误消息
这是在 UserError()函数执行时显示的错误消息。它可以包含文本和其他信息,如当前参数值。
示例 1 (JScript)
如果你有一个只能处理连续 5 轴刀具路径的选项文件,通过将下面的函数与 线性移动 和其他相关的命令相关联,当在刀具路径中遇到另一种模式时,您可以强制它中断后处理:
function Process_with_axis_mode_check()
{
// Interrupt processing if toolpath is not in 5-axis mode
if (GetParam("%p(Toolpath Axis Mode)%") != "5AXIS")
{
UserError("Toolpath cannot be processed as it contains 3-axis or 3+2 parts");
}
returnStandardResponse();
}
对任何非连续 5 轴模式,Autodesk Manufacturing Post Processor Utility 停止处理 CLDATA 文件并在相关命令运行时显示以下消息:
·在 UserError()函数可能执行后,必须调用 StandardResponse()函数。否则,在错误消息之前,不管轴模式如何,都可能生成错误的 NC 代码。
·与命名的命令相关联的超链接允许用户跳转到该命令程序段。
示例 2 (JScript)
此示例演示在生成 UserError时,如何将参数值添加到输出字符串中。
function On_move()
{
// Negative X values not allowed.
if (GetParam("%p(X)%") < 0)
{
// Write down error and stop processing.
UserError("X is negative: " + GetParam("%p(X)%"));
}
return StandardResponse();
}
如果从一个命令的后处理中生成了一个负的 X值,并且该命令调用 on_move函数,那么,如果,例如,这个命令是一个 线性移动,并且 X是返回 - 40,Autodesk Manufacturing Post Processor Utility会停止后处理并输出以下消息:
- - - - - - - - - - - - - - - - - - - - -
用户错误!!X 是负数: - 40
命令:线性移动
脚本位置:行 20,位置 4
- - - - - - - - - - - - - - - - - - - - -
请注意,参数X的当前值是目前在输出中。
此示例演示如何使用 UserError()函数来处理孔加工循环设置。条件是:
· 不支持多轴孔加工循环。
· 不支持 螺旋 和 反螺旋 循环。
· 如果循环设置程序段不会产生任何输出,会停止处理并出现错误信息显示。
· 断屑循环有附加的设置,以写进数控加工程序。由断屑安装命令程序段已经生成输出的这些设置。
下面的函数必须链接到所有钻孔安装命令,所有的一切都必须处于当前状态:
function On_cycle_setup()
{
var out_str = "";
// 1. 如果 CLDATA 包含多轴孔加工循环,则弹出错误并停止后处理。
if (GetParam("%p(Toolpath Axis Mode)%") == "5axis")
{
UserError(Multi-axis Drilling Cycle not allowed!!);
}
// 2. 如果处理不支持的循环,则弹出错误
if (GetParam("%p(Drilling Cycle Type)%") == "HELICAL" ||
GetParam("%p(Drilling Cycle Type)%") == "REVERSED_HELICAL")
{
UserError("Unsupported drilling cycle!");
}
// 3. 生成循环设置输出。如果它是空的,则弹出错误。
var out_str = StandardResponse();
if(out_str = = """)
{
UserError(""孔加工循环设置程序段是空的 !"");
}
// 4。添加特殊代码到循环设置,如果使用"断屑"
if (GetParam("%p(Drilling Cycle Type)%") == "BREAK_CHIP")
{
// generate output for user-defined block
out_str += StandardResponse("%b(Break Chip Setup)%");
}
return out_str;
}
在每种情况下会发生什么:
1、2,在前两种情况下,如果任何一个条件不满足,就会出现相应的错误消息。发生错误的命令的名称是与前面示例消息中包含的。
3. StandardResponse() 调用初始化当前循环设置程序段的处理并生成数控加工程序的输出。如果从程序段输出的字符串为空,则生成错误。
·如果已生成错误1或错误2,则函数的这一部分不处理并且没有case3输出)。
4.这个附加的程序段被解析,如果断屑设置命令已处理。
·"+=" 运算符号用于插入额外的输出到 out_str . 如果它没有使用,则丢失自初始程序段的输出。