数控仿真加工改良的相关论文Word格式文档下载.docx
- 文档编号:19127597
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:12
- 大小:475.01KB
数控仿真加工改良的相关论文Word格式文档下载.docx
《数控仿真加工改良的相关论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数控仿真加工改良的相关论文Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
课程学时32
注意事项
1、考生必须遵守考场纪律。
2、答题必须写清楚题号。
3、字迹要清楚,保持卷面整洁。
4、试题随试卷一起交回(试题写在黑板上时,答题时应抄写题目)。
开(闭)卷开卷
赵远飞
(西安科技大学机械工程学院,陕西西安710054)
摘要:
本文通过概括分析数控加工仿真软件的发展现状,并对现有的此类软件,如VERCUT提出了两点建议:
1)TXT文本中的数控程序应该分行分列对齐(转换到Excel表中),方便用户更直观的检查和修改程序;
2)数控程序中的关键信息应提前被提取到相关的Excel表中,以便用户及时捕捉关键信息,并根据编程经验调整参数。
基于以上两点,本文采用VC++编程拟实现以上两种功能,文中分析了编程的流程图及各个主模块的编程思路,并演示了该应用程序的转换效果。
最后,在分析转换效果的基础上提出了两点改进措施,为进一步完善程序作出引导。
关键词:
数控加工仿真;
VC++;
Zhaoyuanfei
(CollegeofMechanicalEngineering,Xi'
anUniversityofScienceandTechnology,Xi'
an710054,China)
Abstract:
Thispapersummarizesthedevelopmentpresentsituation,theanalysisofNCmachiningsimulationsoftwareand,fortheexistingofsuchsoftware,suchasVERCUT,Iputforwardtwosuggestions:
1)NCprograminTXTtextshouldbranchinalignment(conversiontotheExceltable),inordertousersmoreintuitivetocheckandmodifytheprogrameasytouse;
2)keyinformationinNCprogrammingshouldbeextractedtorelatedExceltable,sothattheusertocapturekeyinformation,andadjusttheparametersaccordingtotheprogrammingexperience.Basedontheabovetwopoints,thispaperusesMFCsoftwaretorealizetheabovetwokindsoffunction,thispaperanalyzestheprogrammingideasprogrammingflowchartandeachmainmodule,anddemonstratestheeffectofswitchingtheapplication.Finally,onthebasisoftheanalysisoftransitioneffectonpresenttwoimprovements,tofurtherimprovetheprogramtoguide.
Keywords:
NCmachiningsimulation;
VC++
0引言
伴随着数控加工技术的发展,各类仿真软件随之而出。
由于零件的形状和加工环境的复杂性,在加工过程中很容易出现“过切”和“欠切”,甚至会出现刀具与工件及机床部件的干涉和碰撞,因此在实际加工前,采取适当有效的措施对数控程序进行检验和修正是十分必要的。
也正是基于这种需求,各种数控加工仿真软件应运而生,其中最具有代表性的是由美国CGTECH公司开发的数控加工仿真软件VERICUT,它作为世界最强的数控模拟仿真软件,是全世界NC验证软体的领导者。
正是基于数控仿真加工软件的这一弊端,本文中采用VC++软件编程,实现以下两种功能:
1)将TXT文档中的数控程序分行分列对齐输入到表EXCEL1(程序参数汇总1)中,使数控程序更直观、清晰、有条理,方便用户浏览和修改程序。
2)提炼TXT文档中数控程序的重要信息,如刀具类型、主轴转速、进给量等。
并将这三类信息分列输入到表EXCEL2(程序参数汇总2)中,方便用户及时捕捉关键信息,并根据编程经验调整参数。
1.1VC++概述
MicrosoftVisualC++,是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。
1.2VC++软件优点
它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。
它以拥有“语法高亮”,IntelliSense以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。
其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。
2VC++编程
2.1VC++编程方法
VC++编程结构简单,易实现所需界面和功能,所以本文中采用VC++编程,拟实现第一章中的两种功能。
编程的流程图如图1所示:
图1编程流程图
Fig.1Flowchartforprogramming
2.2主模块分析
采用VC++编写这个程序最终的实现的界面如图2所示,在此界面中有五个按钮和两个对话框,其中按钮1“选择文本路径”控制选择输入TXT文本的路径;
按钮2“选择存储路径”控制选择最终生成的Excel表格的存储路径;
对应的两个对话框既可以输入路径也可以显示按钮选择的路径;
按钮3“转换“用于控制将TXT文本中的数控程序按要求读入并提取关键信息到两个创建的Excel表格中,这两个Excel表格存储路径是用户自定义的;
按钮4”清除“用于修改路径或者实现多次转换;
按钮5”退出“用于实现关闭该界面和程序。
图2程序界面
Fig.2Theprograminterface
2.2.1按钮1“选择文本路径“程序分析
以下为按钮1“选择文本路径“的程序,在这个程序中首先创建了一个对话框,并且把用户所选定的文本路径作为一个字符串赋给变量m_Input,方便后续程序使用,比如VC++的file里面有个open()函数,open(m_Input)就表示打开你选择的TXT文档,并且可以对这个文档进行操作。
更改对话框作用是显示你选择的文本路径,就是告诉你所选择的是哪个文件。
voidCTXT_EXCLDlg:
:
OnBnClickedButton1()//控制“选择文本路径”按钮
{
CFileDialogmFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,NULL,AfxGetMainWnd());
mFileDlg.DoModal();
//创建对话框
UpdateData(true);
m_Input=mFileDlg.GetPathName();
UpdateData(false);
//更改文本框的内容
}
2.2.2按钮2“选择存储路径“程序分析
以下为按钮2“选择存储路径“的程序,该程序创建选择存储路径对话框,是win32的固定模式,其创建的对话框如图3所示:
OnBnClickedButton2()//控制“选择存储路径”按钮,创建选择//存储路径对话框,该函数是win32固定模式
{
BROWSEINFObi;
ZeroMemory(&
bi,sizeof(BROWSEINFO));
LPMALLOCpMalloc;
LPITEMIDLISTpidl=SHBrowseForFolder(&
bi);
if(pidl==NULL)
return;
if(pidl!
=NULL)
{
TCHAR*path=newTCHAR[MAX_PATH];
SHGetPathFromIDList(pidl,path);
m_Output=path;
//MessageBox(NULL,path,TEXT("
Choose"
),MB_OK);
if(SUCCEEDED(SHGetMalloc(&
pMalloc)))//pidl指向的对象用完应该释放
{
pMalloc->
Free(pidl);
Release();
}
UpdateData(FALSE);
delete[]path;
}
}
图3选择存储路径对话框
Fig.3Selectthestoragepathdialog
2.2.3按钮3“转换“程序分析
以下为按钮3“转换“的主程序,这段程序是实现题中要求功能的最核心的部分,在这个程序中按功能而言主要分为以下三大块:
OnBnClickedButton3()//控制“转换”按钮
{//警告处理
TCHARtemp[]=_T("
输入文本路径错误,请检查文本路径!
"
);
if(m_Input=="
)
{
MessageBox(temp,MB_OK,0);
}
TCHARtemp1[]=_T("
EXCL存储路径错误,请检查文本路径!
if(m_Output=="
MessageBox(temp1,MB_OK,0);
CExcelexcel;
//使用CExcel类创建了一个类对象“excel”
excel.WExeExcel(m_Output,m_Input);
//执行WExeExcel函数,用于创建表1
excel.WExeExcel1(m_Output,m_Input);
//执行WExeExcel函数,用于创建表2
1)打开用户需要转换的TXT文本,并确定Excel表格的存储路径正确。
在这个过程中,有两种情况:
当输入文本路径为空(存储路径为空)时弹出如图4所示消息框,提示输入文本路径错误(Excel存储路径错误),请用户检查相应的路径;
否则,顺利打开文本,用户可以操作该文本。
图4提示消息框
Fig.4Messagebox
2)读取TXT文本的数据,用函数file.CountLine()统计该文本的行数,intline=file.CountLine()表示用变量line记录文本的行数;
把读取到的数据存储到数组中。
在这个过程中,用到了两个函数:
voidCExcel:
ReadStr(CString*str1,CString*str2,CString*str3,CString*str4,CString*str5)和voidCExcel:
ReadStr1()。
voidCExcel:
ReadStr()函数中有五个参数,这个数量的设定与我所给定的数控程序有关,可以调整。
这个函数用于读取整个TXT文本,并通过循环将整个文本分行分列存储在一个数组中,该数据需要存入表1“程序参数汇总1“中的。
举例说明这个函数的读取方法:
程序(N0010G00X20Z1)数据从第一行开始读,在读取过程中while(file1.ifile.Read(word,1))表示一个字母一个字母读取数据,第一个读取的是word=N,判断word!
=\n接着往下执行,再判断word!
=””,执行stringtemp+=word[0],这时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文本的行数)次,读取整个文本。
ReadStr1()函数,用于读取TXT文本,并将其中的刀具类型(T文件)、主轴转速(S文件)、进给量(F文件)分类存储到三个数组strT、strS和strF中,该数据是要存入表2“程序参数汇总2“中的。
举例说明这个函数的提取方法:
程序(N0040M03S700)(N0050M06T01),这个函数中调用了file1.ifile.ReadString(stringtemp)函数,这个函数作用是一次读一整行,并把这一行数据都存储到数组型变量stringtemp中,读第一行时,没有出现T、S、F文件,继续读下一行,直到出现T、S、F文件,第二行出现T文件stringtemp[10]=T,执行kindT++(用变量kindT记录出现的T文件的数目),此时kindT=1,记录刀具文件的数组strT[kindT++]=strT[1](strT[0]=_T("
T(刀具)"
)),用循环实现将字母T后面的信息都存储到strT[1]=T01;
再继续读下一行程序,和前面方法一样,会得到strT[2]、strT[3]等。
同理,主轴转速(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),并且用数组tt[5]组合了这五个参数,用SetRange(intColNum,intRowNum)(ColNum表示列数,RowNum表示行数)表示定位表格单元,如SetRange(1,2)表示第2行第一列的那个表格单元,SetCellValue()函数作用是给指定的单元格填入数据,结合这两个函数,再做一个循环就可以把数组tt[5]中的数据一行一行的写入Excel1中了。
表2调用了函数ReadStr1(),得到了三个数组数据strT、strS和strF,在循环中结合SetRange(intColNum,intRowNum)和SetCellValue()函数,将T、S、F文件一列一列写入Excel2中(T文件是第一列,S文件是第二列,F文件是第三列)。
最后,就是把写入数据的Excel表格保存,释放资源。
2.2.4按钮4“清除”程序分析
以下为按钮4“清除”的程序,这个程序主要作用就是当点击清除按钮时,文本输入路径和Excel存储路径对应的对话框显示内容通过重新赋值改变为:
“请重新选择文本路径”和“请重新选择保存路径”,界面如图5所示:
OnBnClickedButton4()//控制“清除”按钮
UpdateData(TRUE);
m_Input=_T("
请重新选择文本路径"
m_Output=_T("
请重新选择保存路径"
UpdateData(FALSE);
图5清除键界面
Fig.5Clearkeyinterface
2.2.5按钮5“退出“程序分析
以下程序为按钮5“退出“的程序,这个程序作用是退出应用程序,关闭这个转换界面。
OnBnClickedButton5()//控制“取消”按钮
AfxGetMainWnd()->
PostMessage(WM_QUIT,0,0);
3结果演示
如图6所示,本文中用一个简单的数控程序,去验证这个用VC++软件编程的应用程序,转换结果存储在桌面上,结果演示如图7、图8所示,从图中可以看出,这个应用程序已经基本实现了最开始想要达到的两个功能。
图6选择文本界面
Fig.6Selectthetextinterface
图7程序参数汇总表1
Fig.7ProgramparametersaresummarisedinTable1
图8程序参数汇总表2
Fig.8ProgramparametersaresummarisedinTable2
4结论
通过查找资料和阅读书籍,虽然用VC++软件编程实现的这两种功能都已经基本实现,但是结果仍需要再完善,主要的工作量有以下两点:
1)需要调整程序,使转换的Excel表1具有分页的功能(当数控程序程序行数达到某一值时),使表2输出是普通表格形式,有表头和表格边框;
2)这个应用程序应该结合VERCUT软件,将刀具文件的基本参数也写入表2中,方便用户能快速获取更多刀具信息。
参考文献
References
[1]侯俊杰.深浅出VC++[M].华中科技大学出版社,2001(01)第二版
HOUJun-jie.ThedepthoftheVC++[M].PublishingHouseofHuazhongUniversityofScienceandTechnology,2001(01)SecondEdition
[2]
VC-basedNCSimulationSoftwareFeatureImprovements
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数控 仿真 加工 改良 相关 论文