Mastercam后处理时执行外部程序

技术小编 3526 1

2018开始了..面包总会有的,别急哟!


如果你有什么想要了解的,欢迎留言告诉我.不然天这么冷,我都懒得动手写文章了..


额~其实本节更适合放在愚人节那天发布~~

好吧,直奔主题!

mastercam的后处理中,有三种方式来执行一些外部的程序.实现某些特别的功能.这三种命令分别是:

launch()

dll()

runvbs()

其中launch()可以执行任意EXE文件.而dll()是执行MC的HOOK程序,runvbs()则用于执行VBS脚本.

launch()可以说是最粗暴的运行方式,用于执行任意EXE文件.例如我们需要后处理时弹出指定网站(这个很流氓啊)就可以用此命令来实现.命令代码如下:

result = launch(strEXE, strfilename, 1)

其中 strEXE 是要执行的EXE路径

strfilename 是执行参数

1 则是运行模式

那我们就试试让后处理时弹出百度网站.

打开后处理文件,找到 pheader$

在下一行输入代码

result = launch("C:\Program Files\Internet Explorer\iexplore.exe", "https://www.baidu.com/", 0)

保存并执行后处理

Mastercam后处理时执行外部程序 mastercam 第1张

在执行后处理的时候,顺利的弹出了IE浏览器,并且打开了百度网站.

但这里有个小问题,在未关闭IE浏览器情况下,MC界面一致处于卡死状态.直到IE关闭,才能正常输出代码.

这是因为我们的命令中,最后一个代码为0造成的.

最后一个参数为0时,等待执行的程序结束后在继续后处理.

而当参数为1时,则只管执行,并不需要等待执行的程序结束.

所以把参数改为1,就可以弹出执行网站并继续执行后处理了!


弹网站是挺好玩的,但弹出来的是IE浏览器.而现在大多数情况下,用的浏览器都是第三方浏览器.例如Chrome,火狐或者是360什么的.(作者用的是马桶~)

自然我们不知道用户电脑上默认的浏览器安装路径,这应该怎么操作呢?只能用IE打开吗?

当然不是咯!你可以使用 result = launch("explorer.exe", "https://www.baidu.com/", 1) 用默认浏览器打开网站.

其中 explorer.exe 是系统桌面的进程.因为其存在位置是windows目录下,这个目录下的程序可以不需要指定EXE所在的具体目录(SYSTEM32目录下也可以)当你使用此命令时,系统会自动的调用关联的浏览器打开指定网站.


什么?你有啥奇怪的想法?Mastercam后处理时执行外部程序 mastercam 第2张Mastercam后处理时执行外部程序 mastercam 第3张Mastercam后处理时执行外部程序 mastercam 第4张Mastercam后处理时执行外部程序 mastercam 第5张


好吧,其实我也挺喜欢搞怪的.

那我们就来换个花样玩玩~

在Windows系统中,有个叫做"shutdown"的程序,他的作用是用于关闭/重启计算机.

具体命令使用方法,你可以在运行中输入 CMD 然后在命令提示符里输入 shutdown /? 来查看全面的命令.

比如我们把代码改成 result = launch("shutdown.exe", "-s -t 3600", 1)

shutdown.exe是要执行的主程序,因为此文件在c:\windows\system32目录下,所以可以直接输入名字执行,后面的参数是 -s -t 3600其中-s作用是关闭计算机

-t 3600则是在3600秒后执行.保存然后后处理.

我突然觉得市面上将有一堆不靠谱的后处理了...

如果你能自己开发EXE程序,就能做出一些配合后处理的应用来,来实现一些更强的功能.


dll()则是最强的.毕竟这是基于二次开发做的程序,可以与后处理进行数据交换.但门槛也是最高的...这里只能自己YY下~


runvbs则是相对而言门槛最低,却又是最灵活的~

第一.VBS功能强大.基本能满足各种需求

第二.VBS百度能找到大量源代码.可以随意DIY

第三.VBS可以集成在PST内部.不需要额外附带EXE或DLL

第四.支持MASTERCAM的VBS命令函数.


举个简单的小例子!

让后处理生成代码的同时生成SET报表

首选要定义好了一个SET后处理文件(这里使用系统自带的MILL.SET)

然后创建D:\123.VBS脚本文件

123.VBS的代码如下:

dim post '定义一个变量

post = GetPostName() '获取当前PST文件名

SetPostName ("MILL.SET") '设置后处理为MILL.SET文件

RunPostAll "D:\", 1 '执行后处理,生成文件存放在D:\执行完成后打开编辑器

SetPostName (post) '设置后处理为原来的后处理

后处理在ppost$子程序下增加

result = runvbs("D:\dbg.vbs")

保存,生成程序.

就能看到编辑器弹出2个NC窗口,一个是NC代码,而另一个则是加工报表了.





数控圈
0

发表评论 (已有1条评论)

评论列表

2019-11-10 12:53:26

调用外部模块没反应啊