一、系统的总体结构
1.系统的功能
1)直接读取源图形文件(DXF格式),通过人机交互输入工艺参数,自动生成NC代码(3B)。2)能在生成代码的同时,浏览代码及源图形。3)支持代码的打印、保存与下位机的通信。4)界面中文化,Windows风格化,对硬件及操作系统的要求不高,可移植性好。
2.系统的结构及主要类的设计
1)系统流程图。2)主要类及其功能。选用VC5.
0为开发工具,设计了如所示的类及其特点和功能。3)系统界面。所有菜单对话框和快捷键均采用Windows的通用标准组件。
二、关键技术
1.DXF文件读取
1)DXF文件的结构。DXF文件由标题段(Header)、表段(Ta2bles)、块段(Blocks)和实体段(Entities)组成。
其中实体段是具体描述图形组成的部分,包含了所需的主要信息,DXF文件在此将图形分解为单个的基本图形元素如线、圆、圆弧、点等。
类及其特点和功能类名功能和特点ClassAutoCNC为应用类,它产生的应用对象先于应用程序中的其它对象被创建,控制其它对象和整个应用程序的初始化,并构成应用程序的主线程。
ClassAutoCNCDoc为文档类,在类中构成了整个应用程序的数据结构,给视类提供相关数据,提供对数据序列化(即保存或读取数据)的支持。
ClassAutoCNCView为一视类,在这视类中提供消息映射代码和相关的消息响应函数,并对相关的窗口消息、控制消息、命令消息作出响应,提供生成的代码浏览和打印输出运动。
ClassMainFrm为一主窗口类,类MainFrm的对象代表着应用的主框架窗口,在MainFrm类中,可以看到类库的消息处理机制。
ClassChildFrmChildFrm为一子框架窗口类,其对象代表着用户打开的文档。
ClassMyview为一视类,在这视类中也提供消息映射代码和相关的消息响应函数,并对相关的窗口消息、控制消息、命令消息作出响应,提供生成浏览图形的支持,必要时也可提供浏览图形打印输出支持。
ClassSplashSplash类为一VisualC 提供的SplashScreen控件。提供程序启动封面支持。
2)DXF文件的打开及读取。在视类CAutoC2NCView中重载文档打开OnFileOpen()函数,在On2FileOpen()函数中打开并读取DXF文件,以字符串的形式读取实体段的内容,通过语句:pDoc→m-StringArry2.Add(string);pDoc→m- StringMyView.Add(string);将读入数据加到动态数组m-StringArry2[]、m-StringMyView[]中,构成系统工作最基本的支持数据。
2.3B代码的生成。本系统3B代码的生成是由函数 voidCAutoCNCViwe::TwoLoadDxfFile()实现的。在视类CAutoCNCView中生成自定义函数 voidCAutoC2NCView::TwoLoadDxfFile(),在此函数中实现3B代码的生成,下面给出该函数的主体。
voidCAutoCNCView::TwoLoadDxfFile()
if语句用于判断所读线段是//否为当前要读的线段,若是,为其生成3B代码,否则跳出。
3.代码的存储及打印输出
1)在视类CAutoCNCView中重载文档保存函数On2FileSave()函数,由它实现3B代码的文本格式的保存。
2)在视类CAutoCNCView中重载文档打印输出的相关函数OnPrint(CDC3pC)、 OnpreparPrinting(CpintInfo3pinfo)、OnBeginPrinting(CDC3CPrintIn2fo)、 OnEndPrinting(CDC3CdrintInfo)、 voidCAutoC2NCView::PrintPageHeader(CDC3pDC)、 voidCAutoC2NCView::PrintPageFooter(CDC3pDC)等,输出格式略。
4.双视(View)的实现
本系统由于要同时显示3B代码和图形轨迹,因此用了两个视函数―CAutoCNCView和MyView以实现同屏,视CAutoCNCView继承了 CscrollView类,能生成和显示3B代码;视MyView同样继承了CscrollView类,用于显示图形轨迹,具体而言,可修改框架窗口类 Child2Frame代码如下:
BOOLCchildFrame::OnCreateClient(LPCREATESTRUCT/31pcs/,CcreateContext3pConttext)
{BOOLrtn=wndSplitter.CreateStatic(this,1,2);
rtn|=m-wndSplitter.CreateView(0,0,RUNTIME-CLASS(CAutoCNCView),
Csize(300,300),pContext);
rtn|=m-wndSplitter.CreateView(0,0,RUNTIME-CLASS(MyView),
Csize(300,300),pContext);
下模过渡块加工程序与上模过渡块类似,程序稍做改动即可。
通过应用说明,在数控编程中利用宏程序能够进行变量之间的算术及三角函数运算,并具有判断和分离功能,能够解决复杂形状零件的加工问题,并取得满意的效果。
评论
加载更多