数控仿真加工改良的相关论文.doc_第1页
数控仿真加工改良的相关论文.doc_第2页
数控仿真加工改良的相关论文.doc_第3页
数控仿真加工改良的相关论文.doc_第4页
数控仿真加工改良的相关论文.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安科技大学研究生考试试卷题号分 数阅卷人12345678s10总分学号 201403086 姓名 赵远飞 所在学院 机械工程 学科、专业 机械电子工程 考试科目 现代数控技术 考试日期 2015年5月 课程学时 32 注 意 事 项1、考生必须遵守考场纪律。2、答题必须写清楚题号。3、字迹要清楚,保持卷面整洁。4、试题随试卷一起交回(试题写在黑板上时,答题时应抄写题目)。开(闭)卷 开 卷 赵远飞(西安科技大学 机械工程学院,陕西 西安 710054)摘 要:本文通过概括分析数控加工仿真软件的发展现状,并对现有的此类软件,如VERCUT提出了两点建议:1)TXT文本中的数控程序应该分行分列对齐(转换到Excel表中),方便用户更直观的检查和修改程序;2)数控程序中的关键信息应提前被提取到相关的Excel表中,以便用户及时捕捉关键信息,并根据编程经验调整参数。基于以上两点,本文采用VC+编程拟实现以上两种功能,文中分析了编程的流程图及各个主模块的编程思路,并演示了该应用程序的转换效果。最后,在分析转换效果的基础上提出了两点改进措施,为进一步完善程序作出引导。关键词: 数控加工仿真;VC+;Zhao yuanfei(College of Mechanical Engineering,Xian University of Science and Technology,Xian 710054,China)Abstract: This paper summarizes the development present situation, the analysis of NC machining simulation software and, for the existing of such software, such as VERCUT, I put forward two suggestions: 1) NC program in TXT text should branch in alignment (conversion to the Excel table), in order to users more intuitive to check and modify the program easy to use; 2) key information in NC programming should be extracted to related Excel table, so that the user to capture key information, and adjust the parameters according to the programming experience. Based on the above two points, this paper uses MFC software to realize the above two kinds of function, this paper analyzes the programming ideas programming flow chart and each main module, and demonstrates the effect of switching the application. Finally, on the basis of the analysis of transition effect on present two improvements, to further improve the program to guide.Keywords: NC machining simulation; VC+0引 言伴随着数控加工技术的发展,各类仿真软件随之而出。由于零件的形状和加工环境的复杂性,在加工过程中很容易出现“过切”和“欠切”,甚至会出现刀具与工件及机床部件的干涉和碰撞,因此在实际加工前,采取适当有效的措施对数控程序进行检验和修正是十分必要的。 也正是基于这种需求,各种数控加工仿真软件应运而生,其中最具有代表性的是由美国CGTECH公司开发的数控加工仿真软件VERICUT,它作为世界最强的数控模拟仿真软件,是全世界NC验证软体的领导者。 正是基于数控仿真加工软件的这一弊端,本文中采用VC+软件编程,实现以下两种功能: 1)将TXT文档中的数控程序分行分列对齐输入到表EXCEL1(程序参数汇总1)中,使数控程序更直观、清晰、有条理,方便用户浏览和修改程序。2)提炼TXT文档中数控程序的重要信息,如刀具类型、主轴转速、进给量等。并将这三类信息分列输入到表EXCEL2(程序参数汇总2)中,方便用户及时捕捉关键信息,并根据编程经验调整参数。1.1 VC+概述Microsoft Visual C+,是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。1.2 VC+软件优点它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。它以拥有“语法高亮”,IntelliSense以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。 2 VC+编程2.1 VC+编程方法VC+编程结构简单,易实现所需界面和功能,所以本文中采用VC+编程,拟实现第一章中的两种功能。编程的流程图如图1所示: 图1 编程流程图Fig .1 Flow chart for programming2.2 主模块分析 采用VC+编写这个程序最终的实现的界面如图2所示,在此界面中有五个按钮和两个对话框,其中按钮1 “选择文本路径”控制选择输入TXT文本的路径;按钮2“选择存储路径”控制选择最终生成的Excel表格的存储路径;对应的两个对话框既可以输入路径也可以显示按钮选择的路径;按钮3“转换“用于控制将TXT文本中的数控程序按要求读入并提取关键信息到两个创建的Excel表格中,这两个Excel表格存储路径是用户自定义的;按钮4”清除“用于修改路径或者实现多次转换;按钮5”退出“用于实现关闭该界面和程序。 图2 程序界面Fig. 2 The program interface2.2.1 按钮1“选择文本路径“程序分析以下为按钮1“选择文本路径“的程序,在这个程序中首先创建了一个对话框,并且把用户所选定的文本路径作为一个字符串赋给变量m_Input,方便后续程序使用,比如VC+的file里面有个open()函数,open(m_Input)就表示打开你选择的TXT文档,并且可以对这个文档进行操作。更改对话框作用是显示你选择的文本路径,就是告诉你所选择的是哪个文件。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); /更改文本框的内容 2.2.2 按钮2“选择存储路径“程序分析以下为按钮2“选择存储路径“的程序,该程序创建选择存储路径对话框,是win32的固定模式,其创建的对话框如图3所示:void CTXT_EXCLDlg:OnBnClickedButton2() /控制“选择存储路径”按钮,创建选择/存储路径对话框,该函数 是win32 固定模式UpdateData(true);BROWSEINFO bi; ZeroMemory(&bi,sizeof(BROWSEINFO); LPMALLOC pMalloc;LPITEMIDLIST pidl = SHBrowseForFolder(&bi); if (pidl=NULL) return; if(pidl != NULL) TCHAR * path = new TCHARMAX_PATH; SHGetPathFromIDList(pidl,path); m_Output = path;/ MessageBox(NULL,path,TEXT(Choose),MB_OK); if(SUCCEEDED(SHGetMalloc(&pMalloc)/pidl指向的对象用完应该释放 pMalloc-Free(pidl); pMalloc-Release(); UpdateData(FALSE); delete path; UpdateData(false); 图 3 选择存储路径对话框Fig. 3 Select the storage path dialog2.2.3 按钮3“转换“程序分析以下为按钮3“转换“的主程序,这段程序是实现题中要求功能的最核心的部分,在这个程序中按功能而言主要分为以下三大块:void CTXT_EXCLDlg:OnBnClickedButton3() /控制“转换”按钮/警告处理TCHAR temp = _T(输入文本路径错误,请检查文本路径!);if (m_Input = )MessageBox(temp, 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函数,用于创建表1 excel.WExeExcel1(m_Output, m_Input); / 执行WExeExcel函数,用于创建表21)打开用户需要转换的TXT文本,并确定Excel表格的存储路径正确。在这个过程中,有两种情况:当输入文本路径为空(存储路径为空)时弹出如图4所示消息框,提示输入文本路径错误(Excel存储路径错误),请用户检查相应的路径;否则,顺利打开文本,用户可以操作该文本。 图4 提示消息框Fig. 4 Message box2)读取TXT文本的数据,用函数file.CountLine()统计该文本的行数,int line = file.CountLine()表示用变量line记录文本的行数;把读取到的数据存储到数组中。在这个过程中,用到了两个函数:void CExcel:ReadStr (CString* str1, CString* str2, CString* str3, CString* str4, CString* str5)和void CExcel:ReadStr1()。 void CExcel:ReadStr ()函数中有五个参数,这个数量的设定与我所给定的数控程序有关,可以调整。这个函数用于读取整个TXT文本,并通过循环将整个文本分行分列存储在一个数组中,该数据需要存入表1“程序参数汇总1“中的。举例说明这个函数的读取方法: 程序(N0010 G00 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,形参*str2=stringtemp;record=2,形参*str3=stringtemp;record=3, 形参*str4=stringtemp; record=4,形参*str5=stringtemp)这时record= 0,形参*str1=N0060 ,清空变量stringtemp的值 ,record+;继续读取数据,再次出现空格时继续执行switch语句,形参*str2=G00;同样的方法,形参*str3=X20,形参*str4=Z1,执行到这里发现第一行只有四个值,形参*str5的值还没有确定,执行else()内容,将没有给定的值变成空值,就是说,第一行的形参*str5=“” 。 TXT文档在读取过程中时会自动跳转到下一行的,后面每一行的数据读取和这个方法一样,这个函数在函数CExcel:WExeExcel (CSpath,CSpath1)中被调用line(TXT文本的行数)次,读取整个文本。 void CExcel:ReadStr1()函数,用于读取TXT文本,并将其中的刀具类型(T文件)、主轴转速(S文件)、进给量(F文件)分类存储到三个数组strT、strS和strF中,该数据是要存入表2“程序参数汇总2“中的。举例说明这个函数的提取方法: 程序(N0040 M03 S700)(N0050 M06 T01),这个函数中调用了file1.ifile.ReadString(stringtemp)函数,这个函数作用是一次读一整行,并把这一行数据都存储到数组型变量stringtemp中,读第一行时,没有出现T、S、F文件,继续读下一行,直到出现T、S、F文件,第二行出现T文件stringtemp10=T,执行kindT+(用变量kindT记录出现的T文件的数目),此时kindT=1,记录刀具文件的数组strTkindT+=strT1 (strT0 = _T(T(刀具)),用循环实现将字母T后面的信息都存储到strT1=T01;再继续读下一行程序,和前面方法一样,会得到strT2、strT3等。同理,主轴转速(S文件)的数据存储在数组strS中,进给量(F文件)的数据存储在数组strF中。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)函数实参(形参是str1,str2,str3,str4,str5),并且用数组tt5组合了这五个参数,用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表格保存,释放资源。2.2.4 按钮4“清除”程序分析以下为按钮4“清除”的程序,这个程序主要作用就是当点击清除按钮时,文本输入路径和Excel存储路径对应的对话框显示内容通过重新赋值改变为:“请重新选择文本路径”和“请重新选择保存路径”,界面如图5所示:void CTXT_EXCLDlg:OnBnClickedButton4() /控制“清除”按钮UpdateData(TRUE);m_Input = _T(请重新选择文本路径);m_Output = _T(请重新选择保存路径);UpdateData(FALSE); 图5 清除键界面Fig. 5 Clear key interface2.2.5 按钮5“退出“程序分析以下程序为按钮5“退出“的程序,这个程序作用是退出应用程序,关闭这个转换界面。void CTXT_EXCLDlg:OnBnClickedButton5() /控制“取消”按钮Af

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论