随着工业生产的日益智能化, 开发一套数控加工代码图形库, 以实现高效率、 高准确度地加工各种标准化的零部件, 已经成为一种迫切的需要。使用该图形库, 通过人工修改零部件参数, 就可以实现自动生成数控加工代码并对加工图形进行预览的功能。
本文开发的数控加工代码图形库, 是利用 VisualC + + 6. 0 提供的 MFC(Microsoft Foundation Class)动态链接库引导平台开发的。故该图形库是以动态链接库的形式存在, 可以被数控切割机系统的软件调用。在数控系统加工过程中, 可以实时显示加工界面, 对各种加工图形提供数控加工代码、 图形预览和详细的加工参数。故该图形库具有很强的实时性, 是一个功能强大的数控加工代码图形库。该图形库现已在火焰切割机数控系统上得到了使用, 并取得良好的效果。
1.图形库的结构及功能
1. 1图形库的结构
图形库中包含了所有待加工的零件图形, 每一个图形都对应一个对话框类。这些对话框类封装了这些加工图形的所有参数信息, 如包括图形的几何要素和加工的起点、 引线长度和引线类型等。每个图形对应的对话框界面包括的信息有:图形加工 G 代码, 图形预览,加工参数以及图形尺寸标注模块。其中还有一个加工主界面,为在开始加工前,用户选择加工图形而设计。这 个主界面也是一个对话框类,它包括了所有待加工图形的图标,用户可以选择不同的加工图形进入相应的加工界面。加工主界面如图1所示。
1.2 图形库的功能
1.2.1 图形预览和代码自动生成
在使用该图形库时,用户先在列表框中选择所要加工的零部件图形,然后进入该零部件图形的加工界面。用户首先看到的是初始化的加工界面,包括初始化的零部件各参数,相应的图形预览和加工G代码。此时用户可以根据实际加工的工艺要求对零部件图形的各个参数(包括图形的几何要素和加工的起点、引线长度和引线类型等)进行修改,此时可以看到图形预览和G代码都发生了相应的变化,即实现了改变加工参数,自动生成相应G代码的功能。
1.2.2 加工路线选择
加工界面上有一个加工路线的选择功能,用户可以通过选择不同的加工路线,实现不同的走刀路线,同样此时G代码也实时的发生变化。通过点击某一行G代码,图形预览上会用红线显示出相应的加工轨迹。
1.2.3 加工图形尺寸标注
界面上还有一个小的图形预览,是用来标注尺寸的。用户将鼠标点在不同的参数上面,在该图形预览上面就会显示相应的标注。
1.2.4 G代码保存
该图形库还有一个文件保存功能,用户可以通点击界面上的保存按钮,选择相应的路径,以文本方式来保存当前加工图形G代码。带圆孔斜边矩形的加工界面如图2。
2.图形库的开发及算法实现
2.1 图形库的开发流程
(1)首先用 AppWizard 向导产生一个基于 MFC 的dll 文件。因为该图形库最终目的是被数控切割机系统软件加载,进行工件加工。
(2)整个动态链接库是基于对话框的,每个图形对应一个对话框,并与之关联一个基于对话框的类。在图形库工程中,针对每个图形,载入一个对话框资源,并添加相应的控件。主对话框中需要添加一个列表控件,用来载入所有待加工图形的图标。在图形加工对话框中,需要添加一个列表框,用来显示加工G代码。要添加两个静态文本框作为绘制图形的区域还需要添加一些与加工参数相对应的文本框和编辑框,以便用户设置加工参数,以及一些功能按钮。控件添加完后,为对话框创建一个相应的类,并为对话框类命名。
(3)为对话框控件添加相应的变量, 此项操作在ClassWizard 上部的 Member Variables 选项卡中完成。
(4)为控件添加一些消息响应函数。如在主对话框中添加 OnDblclkList1(NMHDR*pNMHDR,LRE-SULT* pResult)来响应用户双击加工图形图标, 进而进入加工界面。同理在加工界面对话框中也要加一些消息响应函数,来完成一些特定的功能。如添加 On-ChangeEditHeight() 来响应用户改变工艺参数;添加OnButtonsave()来响应用户点击保存按钮, 保存加工 G代码。
(5)为对话框类添加一些成员变量和成员函数。成员变量如 CString m_strYinru 记录了引入线类型,CPoint m_Drect 记录了加工图形的一些关键点的坐标等。成员函数如 void Updatecode(),void PreView()等,功能分别是更新 G 代码,更新图形各关键点的坐标。
2.2 图形库的算法实现
整个图形库是基于对话框的, 每个图形对应一个对话框, 并关联一个基于对话框的类。图形库主对话框通过调用 DoModal()函数与各个图形对话框之间联系, 进入不同的加工图形界面时, 分别调用 OnInitDia-log(),OnPaint()函数, 初始化对话框, 绘制初始加工图形。进行参数更新后, 调用相应的更新函数, 更新 G代码和图形预览。程序得流程图如图 3 所示
初始化对话框部分源代码如下:
BOOL CSanJiaoXing::OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowPos(&wndTopMost, 0, 0, 1024, 768, SWP_DRAWFRAME);/ /设置窗口全屏
HICON m_icon; / /载入图标资源
m_icon = AfxGetApp() - > LoadIcon(IDI_ICON2);
m_bButtonSave. SetIcon(m_icon);
m_icon = AfxGetApp() - > LoadIcon(IDI_ICON3);
m_bCancel. SetIcon(m_icon);
m_cYinRu. AddString(外引入);
/ /设置并初始化加工类型
m_cYinRu. AddString(内引入);
m_cYinRu. SetCurSel(1);
m_cListDisplay. AddString(G21);
/ /载入 G 代码
m_cListDisplay. AddString(G91);
m_cListDisplay. AddString(G00 X0 Y0);
m_cListDisplay. AddString(M07);
m_cListDisplay. AddString(G42)
………
m_cListDisplay. AddString(G40);
return TRUE;
/ / return TRUE unless you set the focus to a control
}
3 . 图形库的应用实例
本文开发的图形库已使用于火焰切割机数控系统上, 下面以此为例来简要介绍一下图形库的使用。
图形库是一个动态链接库, 需要被上位机软件加载才能使用。将图形库生成的 CGraphiclib. lib 和 Gco-deCom. lib 库文件加入切割机软件工程目录中。然后在切割机软件工程设置菜单中, 选择 Link 选项卡, 将这两个库文件包含进来, 切割机软件就可以调用图形库了。
图 4 为切割机软件运行时的文件画面。点击 F5
键即调用图形库入口函数 extern C __declspec(dl-
lexport) void ShowDlg(void), 进入图形库加工主界面
如图 1。选择所要加工的零件图形进入加工界面, 根
据一定的工艺要求设置加工参数, 此时将自动生成相
应 G 代码。点击保存按钮, 将 G 代码保存在一定路径
中。然后将界面返回到切割机文件画面如图 4, 点击
文件管理, 载入 G 代码, 最后点击自动加工按钮, 进行
工件加工。
4.结语
本文介绍了一种基于 MFC 动态链接库的数控切割机系统加工代码图形库的设计。在数控加工时, 操作人员通过修改图形加工的工艺参数, 图形库能够自动更新相应的加工 G 代码, 和图形预览, 故具有很强的实时性。比起人工修改 G 代码, 大大提高了效率和准确性。
另外, 该图形库以一个动态链接库的形式存在, 即可以被任何基于 Windows 平台开发的数控系统软件调用。故这种图形库不局限于已经使用的火焰切割机数控系统, 只要遵循特定数控系统加工代码格式, 就可很方便的移植到其他数控系统上, 具有很强的通用性。
此外, 该图形库包含的图形资源丰富, 即包含了切割机系统加工的绝大部分通用零件图形, 且易于扩展,以适应加工出更多种零部件图形的需求。
如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com