当前位置: 首页 » 数控技术 » 综合技术 » 正文

基于AutoCAD平台的数控铣削仿真模块的开发


放大字体  缩小字体 发布日期:2018-03-11
 摘要:针对XK714 铣削系统,以及AutoCAD 二次开发工具ObjectARX,介绍了一种数控铣削过程计算机模拟的实现方法,采用面向对象的程序设计方法,对刀具轨迹动态模拟技术进行了分析,在数控自动编程的基础上,详细介绍了数控铣削仿真模块的实现方法,实现了可视化图形交互式数控铣削的模拟.

关键词:铣削模拟;数控加工;面向对象的程序设计;刀具轨迹

数控铣床的应用越来越广泛,数控加工的整个过程是通过NC 加工程序来控制的. 无论是手工编程还是自动编程所得到的程序都会存在一定的错误,传统方法采用试切法来验证程序是否正确,即用木模、蜡模或塑料模试切以进行检验. 而在计算机环境下,利用数控模拟方法进行数控程序的正确性检验是一种新的方法. 通过对零件加工过程的模拟,可以检查数控代码的正确性,还可以检查加工过程中刀具与工件、机床及夹具之间是否有干涉现象. 加工过程模拟可以比较真实地反映出实际的切削加工过程. 在计算机屏幕上以可视化图形方式模拟NC 加工过程,查出程序中的错误并加以修改,可以节省大量费用和时间. 所以,采用NC 图形的刀具轨迹模拟,可以提高编程效率.

本模拟系统为本人开发的NCCODE 数控自动编程系统的一部分,在XK714 数控铣床的实际应用中,证明了它的有效性和正确性.

1 开发平台及工具

本系统在PC 机上运行,选用当今流行的Windows 98 或Windows XP 作为软件的开发和运行的操作系统. 以Auto-CAD 2000 为平台,采用面向Microsoft 公司的通用软件开发平台Visual C + + 的开发工具ObjectARX,该工具支持可视化编程和面向对象技术,是基于MFC 开发的Windows 应用程序.

2 数控铣削模拟系统的结构及流程

数控程序加工模拟系统是CAD/ CAM 集成系统中一个重要组成部分,开发的CAD/ CAM 集成系统CCODE 中,首先根据零件轮廓的图形实体直接生成数控加工代码,然后通过该模拟系统进行模拟检验. 模拟有二维动画显示模拟和三维实体几何模拟. 本系统采用二维动画显示模拟,其结构如图1 所示,开发流程如图2 所示. 这种模拟的特点是二维的,与二维视图的工件图纸一样,比较简单方便,由于二维动画显示比较易行,因此应用广泛. 在求算平面刀位轨迹、优化刀具运动轨迹时比较有效;对于一些三维模拟分解为二维模拟来解决也是有意义的.

3 刀具轨迹模拟数据的获取及实现

为了实现由AutoCAD 二维图形中描述零件轮廓图形,实体的刀具轨迹模拟必须获取刀具轨迹的信息,刀具轨迹信息由AutoCAD 图形数据库中描述零件轮廓的图形实体获取. 在NCCODE数控自动编程系统中,把零件轮廓的图形实体连接成一条多段线(可封闭也可不封闭). 多段线是AutoCAD 中特殊的图形实体,它是由一系列首尾相连的直线和圆弧组成,在图形数据库中以顶点(即相连点)子实体的形式保存信息. 与位置、形状有关的重要信息有两个:一是顶点(Vertex)坐标数值,保存在10 组码中;二是顶点凸度(Bulge),保存在42 组码中. 多段线的起点即就是刀具的起点,加工过程中所需的终点坐标均可由多段线各顶点的数据确定,根据这些数据即可生成数控加工代码. 同样,根据这些数据可以模拟刀具轨迹.

3.1 直线部分的数据

鉴于直线线段是多段线组成部分,但在实体多段线内,子实体不是线段,而是顶点,而且多段线的直线顶点只保存了直线起点标志,终点坐标则都保存在下一个顶点中. 利用ObjectARX 函数可以很方便地知道多段线各顶点的坐标值和凸度值,这样就得到了零件轮廓线上直线的起点、终点坐标等几何信息.

AutoCAD 中约定:凸度为0 是直线的顶点. 具体方法如下:

i(f bulge = = 0)/ / 判断是否直线
  {
  ads name e0,e1;
  acdbGetAdsName(e0,vertexObjId);
  struct resbuf *ed,*cb;/ / 定义结果缓冲区链表指针
  acdbEntNex(t e0,e1);
  i(f(ed = acdbEntGe(t e1))! = NULL)
  {
  fo(r cb = ed;cb! = NULL;cb = cb - > rbnext)
  i(f cb - > restype = = 10)
  {
  P[2 Y]= 2*(cb - > resval. rpoin[t Y]- p[t Y])
  P[2 Y]= cb - > resval. rpoin[t X]- p[t X]/ / 直线的第二顶点的数据信息
  numb + + ;
  }
  acutRelRb(ed);
  }
  }

3.2 圆弧部分的数据

多段线的圆弧顶点都只保存了圆弧的起点标志,终点坐标则都保存在下一个顶点中. 利用ObjectARX函数可以很方便地知道多段线各顶点的坐标值和凸度值,这样就得到了零件轮廓线上圆弧的起点、终点、半径、圆心等几何信息.AutoCAD 中约定:凸度不为0 是圆弧的顶点,凸度为正表示逆时针圆弧,凸度为负表示顺时针圆弧. 具体方法如下:

acedOsnap(ptm,"center",ptcen);/ / 获得圆心的坐标
  ads name e011,e111;
  acdbGetAdsName(e011,vertexObjId);
  struct resbuf *ed,*cb;/ / 定义结果缓冲区链表指针
  ads point pst1,pst10,opst1,ptcen1,ptm1;
  ads real rads1,length1;
  ads point-se(t cb - > resval. rpoint,pst1);/ / 获得PST 点为圆弧的端点
  acdbEntNex(t e011,e111);
  i(f(ed = acdbEntGe(t e111))! = NULL)
  {
  fo(r cb = ed;cb! = NULL;cb = cb - > rbnext)
  i(f cb - > restype = = 10)
  {
  ads point-se(t cb - > resval. rpoint,pst10);
  opst1[X]=(pst1[X]+ pst10[X])/ 2;
  opst1[Y]=(pst1[Y]+ pst10[Y])/ 2;
  opst1[Z]=(pst1[Z]+ pst10[Z])/ 2;
  rads1 = acutAngle(pst1,pst10);
  length1 = acutDistance(pst1,pst10);
  acutPola(r opst1,rads1 - 3.1415926 / 2,bulge*length1(/ 2),ptm1);
  acedOsnap(ptm1,"center",ptcen1);/ / 获得圆心的坐标
  }

3.3 刀具轨迹模拟的实现

根据上面介绍的方法,获得刀具轨迹数据,然后根据ARX 函数acedCommand(RTSTR,“INSERT”RTSTR,刀具图块名,RTPOINT,P1,RTREAL,scale,RTSTR,“ ”,RTREAL, ),如果为直线,则在两点间插入若干个以刀具半径为圆的图块,数目的多少与进给速度有关,数目越多,则切削速度越快,反之,则切削速度慢;如为圆弧,则在该圆弧段上插入刀具图块,但要区别顺圆和逆圆,以区别切削方向.

4 实例

以铣削模拟的一个实例来说明,在NCCODE 界面下当生成数控加工代码后,按下“模拟”按钮,输入正确的模拟参数,单击“确定”按钮,弹出如图3 所示对话框,然后单击模拟后,模拟效果如图4 所示.

5 结论

利用计算机图形交互界面,采用二维模拟技术及面向对象的程序设计方法,以VC + + 和AutoCAD 功能强大的开发工具ARX,对描述刀具轨迹的图形实体进行处理,获取所需数据,对铣削系统的刀具轨迹进行模拟,直观、快速、正确地验证数控代码,且操作简单、方便,提高了数控机床的工作效率. 在XK714 数控铣床上应用,取得了良好的效果,同时,该系统还可以用于学生的教学中.

 
 
[ 免费发文

 

 
推荐图文
推荐数控技术
点击排行
网站首页 | 关于我们 | 升级会员 | 联系客服 | 广告合作 | 广告位图 | 使用协议 | 版权隐私 | 蜀ICP备2021024440号
Powered by DESTOON