欢迎光临
我们一直在努力

[高难度]Mastercam机床仿真读取外部NC代码详细解析

有不少朋友一直很好奇,Mastercam后处理驱动机床仿真到底是怎么做到的?

如果你不了解什么是后处理驱动机床仿真.那就赶紧看看下面的文章!

今天就跟大家讲讲具体的技术细节是怎么实现的!!

此篇文章不涉及后处理,只涉及机床仿真能够读取的NC文件格式代码.

适合有一定后处理修改能力的人员阅读并DIY...

所以通篇门槛较高.请大家谨慎阅读...

在扯淡之前先说一个好消息!

Mastercam2019官方中文版已经在7月30日正式发布.有官网账号的朋友可以去下载了.别被网上那些假的给欺骗了.

顺便赠送大家官方中文版中自带的"WhatsNew.pdf"

全中文WhatsNew,虽然有不少地方有错误.但也总比英文的强..

好了言归正传!!

Mastercam的机床仿真想必各位都有所了解,其特点是功能强大,界面美观.唯一的问题是只能仿真刀路的中间文件,而不能仿真外部NC文件.

如果机床仿真能够模拟外部NC文件,那真是强大到没朋友了~

而事实上机床仿真确实能够模拟外部文件,但文件格式却比较另类!

首先载入机床仿真

在仿真左上角点击加载NC文件按钮.弹出打开窗口中就能看到其支持的三种的NC文件

分别是CL,SIM,BIN三种格式,额~貌似一种也没见过吧!

咱们只聊聊CL格式,因为CL格式是纯文本格式比起其他格式,更容易编写.

那么CL代码长得什么样子呢?

这是一段标准的CL格式代码.

比较像常见的G代码吧,但有所不同.

事实上搞明白了CL代码样式,让后处理直接输出这样的代码就能驱动机床仿真进行运动.就是这么简单..

那么,这到底是些什么鬼?

下面开始对CL格式进行详细介绍了..

MW_UNITS_METRIC 0

此代码设置为0表示英制 设置为1表示公制.对应G代码中的G20/G21

MW_OP_START

此代码表示程序开始,类似于发那科开头的%

MW_OP_NUMBER 1

此代码为当前程序号,对应软件里第几号刀路.

MW_OP_COMMENT "挖槽"

此代码为当前程序注释,可以省略

MW_TOOL_NUMBER 1

此代码表示刀具编号为多少号,对应G代码中的 "Tx"

MW_TOOL_COMMENT "20 圆鼻刀"

此代码为刀具注释,可以省略.

前面几个都是小菜,重要部分来了.

#-------------------------------------------------------------------------------------

MW_TOOL_DEF_APT val1 val2 val3 val4 val5 val6 val7

此代码为刀具定义

val1 - 刀具直径

val2 - 切削刃长

val3 - 刀长

val4 - 刀具圆角

val5 - 从上向下锥度

val6 - 从下向上锥度

va7 - 底切

MW_TOOL_LEN_COMPENSATION 60

刀具生成刀柄的长度

MW_TOOL_ARB_DEF x1 y1 x2 y2 x3 y3 ... xn yn

定义刀具样式

x1 - 刀具第一节顶部直径

y1 - 刀具第一节长度

x2 - 刀具第二节顶部直径(刀具第一节底部直径)

y2 - 刀具第二节长度

MW_TOOL_HLD_DEF x1 y1 x2 y2 x3 y3 ... xn yn

定义刀柄样式

x1 - 刀柄第一节顶部直径

y1 - 刀柄第一节长度

x2 - 刀柄第二节顶部直径(刀具第一节底部直径)

y2 - 刀柄第二节长度

MW_TOOL_PROFILE_CHORDAL_TOL 1

刀具显示精度,数值越大显示越粗糙

MW_TRANSFORM workpiece_transform (1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)

工件坐标转换.不进行位置调整可以省略

MW_TRANSFORM holder_transform (1,0,0,0,0,1,0,0,0,0,1,100,0,0,0,1)

刀具坐标转换.不进行位置调整可以省略

#------------------------------------------------------------------------------------------------

~~重要的部分结束~~

为什么这部分最重要,你定义不了刀具,模拟的时候拿什么切零件?

但是,下面最主要的代码来了!

正式驱动机床运动的代码有下面几种

MW_5AXMOVE type Xvalue Yvalue Zvalue Ivalue Jvalue Kvalue Fvalue BLKvalue

MW_MACHMOVE type Xvalue Yvalue Zvalue Avalue Bvalue Fvalue TIMEvalue BLKvalue

MW_RELMOVE type Xvalue Yvalue Zvalue Avalue Bvalue Fvalue BLKvalue

三种模式.不用着急一个个来看

---------------------------------------------------------------------------------------------------

MW_5AXMOVE type Xvalue Yvalue Zvalue Ivalue Jvalue Kvalue Fvalue BLKvalue

这是一个标准的五轴运动方式

type - FEED 或 RAPID模式,代表快速运动还是切削运动也就是G0/G1

Xvalue Yvalue Zvalue - 表示XYZ坐标

Ivalue Jvalue Kvalue - IJK矢量

Fvalue - 进给速度

BLKvalue - 类似于行号

MW_MACHMOVE type Xvalue Yvalue Zvalue Avalue Bvalue Fvalue TIMEvalue BLKvalue

这是一个绝对坐标模式移动

type - FEED 或 RAPID模式,代表快速运动还是切削运动也就是G0/G1

Xvalue Yvalue Zvalue - 表示XYZ坐标

Avalue Bvalue - 表示两个旋转轴的角度(不是说只支持AB轴,AC/BC也可以)

Fvalue - 进给速度

TIMEvalue - 运行时间

BLKvalue - 类似于行号

MW_RELMOVE type Xvalue Yvalue Zvalue Avalue Bvalue Fvalue BLKvalue

这是一个相对坐标模式移动

type - FEED 或 RAPID模式,代表快速运动还是切削运动也就是G0/G1

Xvalue Yvalue Zvalue - 表示XYZ坐标

Avalue Bvalue - 表示两个旋转轴的角度(不是说只支持AB轴,AC/BC也可以)

Fvalue - 进给速度

BLKvalue - 类似于行号

怎么都是五轴呢?

事实上如果你要用MW_MACHMOVE/MW_RELMOVE来模拟三轴只要不填写Avalue Bvalue的值就OK了~~

表示程序结束就是M30了~~

完整多程序代码欣赏

两张图片是一个程序~~

特别说明的是MC的机床仿真对于零件和毛坯,必须要依赖Mastercam载入,不能外部加载.所以要模拟外部仿真刀路时,必须要有一个刀路来载入零件和毛坯.

其实代码还是比较简单的,主要就是刀具的定义上较为复杂.如果你有兴趣让后处理直接输出这样的代码格式.就能够实现后处理直接驱动机床仿真了!!

如果那位朋友有兴趣可以开发一个类似于替换现成G代码为MW格式的程序,就可以直接实现机床仿真直接调用.

总的来讲,就是这样的~~

后面的事情就需要各位自己来搞定啦!!

因为三轴四轴五轴的驱动仿真后处理我都做好了

如果需要MC教程可以跟我联系.

但别问我软件在哪里下载.

重声一遍,8月15日起,大表哥的四轴/后处理教程价格分别上调到1200/4000.

别说我没提醒过大家~

赞(2)
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址