在Mastercam后处理开发中,获取当前生成的NC程序文件大小是一个实用但容易被忽视的功能。系统确实提供了相关的查询函数,但获取到的原始数据只是字节数,需要程序员手动进行单位换算和格式化处理。
Mastercam后处理通过filesize$系统变量来获取当前NCI文件对应的输出大小。这个值返回的是一个长整型的字节数(Bytes)。由于原始字节数可读性很差,我们必须对其进行数学运算,将其转换为KB、MB或GB。
处理思路很简单:
转换为KB:filesize$ / 1024 转换为MB:filesize$ / 1024 / 1024 转换为GB:filesize$ / 1024 / 1024 / 1024 这个功能的一个高级应用是超大程序分割。有些老旧机床的控制器对单个NC文件的大小有限制(比如最大10MB)。
我们可以在peof$(程序结束)处调用后处理逻辑,判断filesize$是否超标。如果超标,可以结合自定义DLL或更高级的脚本,对生成的NC文件进行物理切割,或者直接在NC代码末尾输出警告信息,提示编程员需要分拆刀路。
需要特别注意的是,后处理函数在执行时获取的是实时生成的临时数据。如果你在后处理中多次调用,数据可能会动态变化。此外,上述提到的“处理结果”通常指的是原始的字节数值,具体的单位转换逻辑必须写在后处理脚本中,系统不会自动帮你加上“MB”字样。

M1N101 T316 M6 ( 2" FACE MILL )(FILE SIZE: 691 )------------->hereS10069 M3M8G0 G17 G90 G54M11B90.M10M56 H1 D2G0 X-5.3984 Y1.3611G43 H316 D316 Z4.Z1.2G1 Z.525 F25.X4.5857 F50.G2 X5.1486 Y.7982 J-.5629X4.5857 Y.2353 I-.5629G1 X-4.3984G3 X-4.9614 Y-.3277 J-.563X-4.3984 Y-.8906 I.563G1 X4.5857G2 X5.1486 Y-1.4535 J-.5629X4.5857 Y-2.0165 I-.5629G1 X-5.3984G0 Z4.Y1.3611Z.725G1 Z.05 F25.X4.5857 F50.G2 X5.1486 Y.7982 J-.5629X4.5857 Y.2353 I-.5629G1 X-4.3984G3 X-4.9614 Y-.3277 J-.563X-4.3984 Y-.8906 I.563G1 X4.5857G2 X5.1486 Y-1.4535 J-.5629X4.5857 Y-2.0165 I-.5629G1 X-5.3984G0 Z4.M9M5(FILE SIZE: 1321 )------------->hereG91G28Z0.M99%具体函数如下:
nchar$
使用方法,定义函数的数据结构
fs2 16 1 0 1 0n #Integer, forced output
fmt 16 nchar$
在需要输出大小的位置调用该函数,一般放在程序尾部即可。
如果是在换刀位置或是一个操作结束的位置调用该函数,统计大小为调用该函数之前的程序大小而非整个程序的大小。
当然放在程序头部也是可以的,放在程序头的方法是采用其他方式来实现的,本文章暂时这个不展示该方法,将在后续的文章中持续更新各种改方法。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。