vc++编程改良数控仿真加工

上传人:第*** 文档编号:54332580 上传时间:2018-09-11 格式:PPTX 页数:29 大小:771.72KB
返回 下载 相关 举报
vc++编程改良数控仿真加工_第1页
第1页 / 共29页
vc++编程改良数控仿真加工_第2页
第2页 / 共29页
vc++编程改良数控仿真加工_第3页
第3页 / 共29页
vc++编程改良数控仿真加工_第4页
第4页 / 共29页
vc++编程改良数控仿真加工_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《vc++编程改良数控仿真加工》由会员分享,可在线阅读,更多相关《vc++编程改良数控仿真加工(29页珍藏版)》请在金锄头文库上搜索。

1、利用VC+编程改进数控 加工仿真软件,学生:赵远飞 学号:201403086,目录,第一章 引言,第二章 VC+简介,第三章 VC+编程,第四章 结果验证,第五章 结论,1 引言,伴随着数控加工技术的发展,各类仿真软件随之而出。由于零件的形状和加工环境的复杂性,在加工过程中很容易出现“过切”和“欠切”,甚至会出现刀具与工件及机床部件的干涉和碰撞,因此在实际加工前,采取适当有效的措施对数控程序进行检验和修正是十分必要的。也正是基于这种需求,各种数控加工仿真软件应运而生,其中最具有代表性的是由美国CGTECH公司开发的数控加工仿真软件VERICUT,它作为世界最强的数控模拟仿真软件,是全世界NC验

2、证软体的领导者。,1 引言,该软件若用数控代码进行仿真加工时,其加工代码编辑在TXT文档中,当加工代码较多时,用户无法迅速浏览刀具类型、主轴转速、进给量等重要信息,也无法及时修正加工代码。正是基于数控仿真加工软件的这一弊端,本文中采用VC+编程,现以下两种功能: 1)将TXT文档中的数控程序分行分列对齐输入到表EXCEL1(程序参数汇总1)中,使数控程序更直观、清晰、有条理,方便用户浏览和修改程序。幻灯片 27,1 引言,2)提炼TXT文档中数控程序的重要信息,如刀具类型、主轴转速、进给量等。并将这三类信息分列输入到表EXCEL2(程序参数汇总2)中,方便用户及时捕捉关键信息,并根据编程经验调

3、整参数。幻灯片 28,2 VC+简介,Microsoft Visual C+,是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。 它以拥有“语法高亮”,IntelliSense以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加

4、连结著称。,3 VC+编程,3.1 程序流程图,图1 程序流程图,3.2 主模块分析,采用VC+编写这个程序最终的实现的界面如图2所示:图2 程序界面,在此界面中有五个按钮和两个对话框,其中按钮1 “选择文本路径”控制选择输入TXT文本的路径;按钮2“选择存储路径”控制选择最终生成的Excel表格的存储路径;对应的两个对话框既可以输入路径也可以显示按钮选择的路径;按钮3“转换”用于控制将TXT文本中的数控程序按要求读入并提取关键信息到两个创建的Excel表格中,这两个Excel表格存储路径是用户自定义的;按钮4“清除”用于修改路径或者实现多次转换;按钮5“退出”用于实现关闭该界面和程序。,主界

5、面说明,3.2.1 按钮1“选择文本路径”程序分析,void CTXT_EXCLDlg:OnBnClickedButton1() /控制“选择文本路径”按钮 CFileDialog mFileDlg(TRUE, NULL,NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOW MULTISELECT, NULL, AfxGetMainWnd();mFileDlg.DoModal(); /创建对话框UpdateData(true);m_Input = mFileDlg.GetPathName();UpdateData(false); /更改文本框

6、的内容 ,3.2.1 按钮1“选择文本路径”程序分析,以上为按钮1“选择文本路径”的程序,在这个程序中首先创建了一个对话框,并且把用户所选定的文本路径作为一个字符串赋给变量m_Input,方便后续程序使用,比如VC+的file里面有个open()函数,open(m_Input)就表示打开你选择的TXT文档,并且可以对这个文档进行操作。更改对话框作用是显示你选择的文本路径,就是告诉你所选择的是哪个文件。,3.2.2 按钮2“选择存储路径”程序分析,void CTXT_EXCLDlg:OnBnClickedButton2() /控制“选择存储路径”按钮,创建选择存储路径对话框,该函数 是win32

7、 固定模式 UpdateData(true);BROWSEINFO bi; ZeroMemory( if(pidl != NULL) ,3.2.2 按钮2“选择存储路径”程序分析,以上为按钮2“选择存储路径”的程序,该程序创建选择存储路径对话框,是win32的固定模式,其创建的对话框如图3所示:,图3 选择存储路径对话框,3.2.3 按钮3“转换”程序分析,void CTXT_EXCLDlg:OnBnClickedButton3() /控制“转换”按钮 /警告处理TCHAR temp = _T(“输入文本路径错误,请检查文本路径!“);if (m_Input = “)MessageBox(te

8、mp, MB_OK, 0);return;TCHAR temp1 = _T(“EXCL存储路径错误,请检查文本路径!“);if (m_Output = “)MessageBox(temp1, MB_OK, 0);return;CExcel excel; /使用CExcel类创建了一个类对象“excel”excel.WExeExcel(m_Output,m_Input); /执行WExeExcel函数,用于创建表1excel.WExeExcel1(m_Output, m_Input); / 执行WExeExcel函数,用于创建表2,3.2.3 按钮3“转换“程序分析,以上为按钮3“转换“的主程序

9、,这段程序是实现题中要求功能的最核心的部分,在这个程序中按功能而言主要分为以下三大块:1)打开用户需要转换的TXT文本,并确定Excel表格的存储路径正确。在这个过程中,有两种情况:当输入文本路径为空(存储路径为空)时弹出如图4所示消息框,提示输入文本路径错误(Excel存储路径错误),请用户检查相应的路径;否则,顺利打开文本,用户可以操作该文本。,图4 提示消息框,3.2.3 按钮3“转换“程序分析,2)读取TXT文本的数据,用函数file.CountLine()统计该文本的行数,int line = file.CountLine()表示用变量line记录文本的行数;把读取到的数据存储到数组

10、中。在这个过程中,用到了两个函数:void CExcel:ReadStr (CString* str1, CString* str2, CString* str3, CString* str4, CString* str5)和void CExcel:ReadStr1()。void CExcel:ReadStr ()函数中有五个参数,这个数 量的设定与我所给定的数控程序有关,可以调整。这个函数用于读取整个TXT文本,并通过循环将整个文本分行分列存储在一个数组中,该数据需要存入表1“程序参数汇总表1“中的。举例说明这个函数的读取方法:,3.2.3 按钮3“转换”程序分析,程序(N0010 G00

11、X20 Z1)数据从第一行开始读,在读取过程中while(file1.ifile.Read(word,1)表示一个字母一个字母读取数据,第一个读取的是word=N,判断word!=n接着往下执行,再判断word!=“ ” ,执行stringtemp+=word0, 这时stringtemp的值为N;接着进行第二次读取,word=0,stringteep=N0;同样一直向下读等到读取到空格时,这时stringtemp=N0010不为空格,执行switch语句(定义了一个变量record记录每行中出现空格的次数,当record=0,形参*str1=stringtemp;record=1,形参*st

12、r2=stringtemp;record=2,形参*str3=stringtemp;record=3, 形参*str4=stringtemp; record=4,形参*str5=stringtemp),3.2.3 按钮3“转换”程序分析,这时record=0,形参*str1=N0060 ,清空变量stringtemp的值 ,record+;继续读取数据,再次出现空格时继续执行switch语句,形参*str2=G00;同样的方法,形参*str3=X20,形参*str4=Z1,执行到这里发现第一行只有四个值,形参*str5的值还没有确定,执行else()内容,将没有给定的值变成空值,就是说,第一行

13、的形参*str5=“”。TXT文档在读取过程中时会自动跳转到下一行的,后面每一行的数据读取和这个方法一样,这个函数在函数CExcel:WExeExcel (CSpath,CSpath1)中被调用line(TXT文本的行数)次,读取整个文本。,3.2.3 按钮3“转换”程序分析,void CExcel:ReadStr1()函数,用于读取TXT文本,并将其中的刀具类型(T文件)、主轴转速(S文件)、进给量(F文件)分类存储到三个数组strT、strS和strF中,该数据是要存入表2“程序参数汇总2“中的。举例说明这个函数的提取方法:程序(N0040 M03 S700)(N0050 M06 T01)

14、,这个函数中调用了file1.ifile.ReadString(stringtemp)函数,这个函数作用是一次读一整行,并把这一行数据都存储到数组型变量stringtemp中。,3.2.3 按钮3“转换”程序分析,读第一行时,没有出现T、S、F文件,继续读下一行,直到出现T、S、F文件,第二行出现T文件stringtemp10=T,执行kindT+(用变量kindT记录出现的T文件的数目),此时kindT=1,记录刀具文件的数组strTkindT+=strT1 (strT0 = _T(“T(刀具)“),用循环实现将字母T后面的信息都存储到strT1=T01;再继续读下一行程序,和前面方法一样,

15、会得到strT2、strT3等。同理,主轴转速(S文件)的数据存储在数组strS中,进给量(F文件)的数据存储在数组strF中。,3.2.3 按钮3“转换“程序分析,3)首先,启动Excel服务器;而后,打开一个工作薄,若不存在则新增一个工作薄(这个工作薄路径为用户选定的Excel存储路径+程序汇总/参数汇总);再打开一个工作表,若不存在则新增一个工作表。这些都准备好后,就可以将数组中的数据按要求写入Excel表格中了,表1和表2的要求不同,写入方法也不同。表1 调用了函数ReadStr(tt, tt+1, tt+2, tt+3, tt+4),这里(tt,tt+1,tt+2,tt+3,tt+4

16、)函数实参(形参是*str1,*str2,*str3,*str4,*str5),并且用数组tt5组合了这五个参数。,3.2.3 按钮3“转换”程序分析,用SetRange(int ColNum, int RowNum)(ColNum表示列数, RowNum表示行数)表示定位表格单元,如SetRange(1,2)表示第2行第一列的那个表格 单元,SetCellValue()函数作用是给指定的单元格填入数据,结合这两个函数,再做一个循环就可以把数组tt5中的数据一行一行的写入Excel1中了。表2 调用了函数ReadStr1(),得到了三个数组数据strT、strS和strF,在循环中结合SetRange(int ColNum, int RowNum)和SetCellValue()函数,将T、S、F文件一列一列写入Excel2中(T文件是第一列,S文件是第二列,F文件是第三列)。最后,就是把写入数据的Excel表格保存,释放资源。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号