首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mastercam后处理随机分配程序号

数控程序中的O号在大多数时候是O0000,如果数控机器里面已经存在一个这样的数控程序,那么这样的程序发送给现场使用,在程序通过传输软件传输过程中会出现错误。

如何避免这样的问题发生?

每次在编程时都提前设置好相关的程序号,这样确实可以避免这样的问题,但又有新的问题出现,如何确保每次都会输入呢,毕竟依赖人还是会出现人为的疏忽,那难道就没有其它办法吗?

有人能会说可以在后处理中设置固定的数字,固定的固然是可以解决,但同样存在问题,那就是没有出来的都是一样的,还是存在雷同。

有人能会说做一个fq参数,每次处理程序时,都输入一遍,这样同样存在雷同,而且还是依赖人来完成,多少有些遗憾。

还有人会说,插件可以解决,确实,插件确实是一个不错的选择,但目前还没有看到有这样的小程序,那么在这种情况下,用后处理自动的随机分配就应运而生啦。

下面是随机生成的相关代码和方法。

下面是MastercamX---X+代码,V9版本的代码自行处理一下即可。

1.首先定义一个字符串的参数,用来保存随机数。

sprogn : ""

sprogn : ""

2.定义随机数的数据格式,输出位数,前导零,后置零等。

# These formats used for 'Date' & 'Time'

fs2 19  2 0 2 0t     #Integer, force trailing   (hour)

fs2 20  0 2 0 2lt    #Integer, force leading & trailing  (min)

fmt     19  hour        #Hour

fmt     20  min         #Minutes

3.开始最为重要的部分,随机数的获取,每次生成程序时都需要产生一个随机数,但由于mastercam后处理不支持随机函数random,所以只能通过其他方式获取,为了使数据不重复,有如下思路:

A:获取计算机当前时间的年,月,日,再组合成一个4位数。

B:获取计算机当前时间的时,分,秒,再组合成一个4位数。

C:获取计算机当前时间的年,月,日,时,分,秒,再组合成一个4位数。

以上三种方法均可实现,那么从中选取最简单便捷的一种,我们下面采用时,分,秒的方式。

首先判断计算机的当前时间,以12小时为一个计算周期,是否大于12,如果大于12,则把当前时间减去12小时。

其次,对时间进行相应的换算,换算方式有加减乘除,乘方,开平方等等,这需要用户自行决定,其目的是对小时/分钟/秒钟/毫秒进行换算产生一个非零的随机自然数。

完整代码如下:

pprog_int      #Random Program NO.

if time$ >= 13, time2 = (time$ - 12)

else, time2 = time$

hour = int(time2), min = frac(time2)

progno$ = int(round(min * 100 * 60))

sprogn = no2str(progno$)

#sprogn = brksps(2,sprogn)

result = newfs (23, progno$)

*sprogn,e$ 作者:若枫oneZone https://www.bilibili.com/read/cv14758715 出处:bilibili

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220111A0BGVC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券