一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数控加工五轴程序自动分层方法与流程

2022-11-19 09:36:01 来源:中国专利 TAG:
1.本发明属于数字化制造
技术领域
:,具体涉及一种数控加工五轴程序自动分层方法。
背景技术
::2.目前在五轴数控加工过程中,五轴数控机床尤其是双主轴头机床的摆头行程限制严重,一般c轴行程限制在-180到180区间内,以【-180180】为例,五轴加工切削零件时,刀具一般一层下刀3mm,在一周接着一周循环下刀过程中,c轴会在此运动中不断累积,一旦到180就会抬刀回转,因此,铣切过程中不断抬刀换向,增加了空刀行程,造成零件加工时间加长,并且在零件抬刀位置处留下抬刀痕迹,影响零件的表面质量。另一方面,在大型框类梁类零件加工时,零件腹板格子较多,内外形角度变化大,用专用编程软件如ug、caxa、catia编程时想要编程方便,选择一格分层铣销,再铣另一格时会造成应力集中,零件变形严重;而选择全部格子按同一平面高度分层铣销,则编程工作量翻上数倍。技术实现要素:3.针对上述两项问题,本发明本发明提供一种数控加工五轴程序自动分层方法,利用visualbasic语言结合五轴机床运动结构特征,自主开发五轴程序自动分层工具,完成五轴摆角加工程序的自动分层,解决上述问题。4.本发明技术方案如下:一种数控加工五轴程序自动分层方法,包括以下步骤:读取零件单层加工文件,设为文件1;选择机床类型;输入层距及所需层数;建立新文件,设为文件2;读取文件1一行,一行一行读取,循环直至文件1结束;层数计算,循环直到等于层数;提取此行代码的xyz值,根据机床类型和层距计算新xyz值,分别赋予新变量;提取此行非xyz值代码,赋予其它新变量;将经计算过的新变量写入文件2;变量清理,计数器加1;关闭层数循环;关闭文件1,文件2;弹出处理结束提示框;调用记事本查看编辑文件。5.为了更好地实现本发明,进一步的,具体步骤:s1读取零件单层加工文件,设为文件1:当前工作集合a:{a00001,a00002,……,a99999},提取此工作集合作为数据源d1;s2选择机床类型,确定当前机床工作集合b:{b01,b02······b99};s3输入层距(切深)及所需层数:设为text1&text2;s2建立新文件,设为文件2:当前工作集合b:{b00001,b00002······b99999};s5提取此工作集合作为数据源d2;s6设置循环标记i,执行单步计数循环,i变量循环至数据源d1尾;s7设置循环标记j,执行单步计数循环,j变量循环至j=text2;s8依据当前机床类型与层距,层数,将工作集合a换算成工作集合b元素;s9查看工作集合b中元素,并整理;s10关闭数据源d1,工作集合2;s11释放程序中各类变量,数据集;s12弹出处理结束提示框;s13调用记事本查看编辑文件。6.具体在某机型框类零件内、外形用此工具处理前,刀轴抬刀换向处,十层会有四十处换刀,增加加工时间,且会在部分切削处形成纵向刀痕,影响零件表面质量,利用此方法生成分层工具后,刀轴抬刀换向处,十层只有十处换刀,减少加工时间,减少部分纵向刀痕,提高零件表面质量。7.利用visualbasic语言自主开发一种数控加工五轴程序自动分层工具的程序源代码为:attributevb_name="formlattributevb_globalnamespace=falseattributevbcreatable=falseattributevb_predeclaredid=trueattributevb_exposed=falsedimfilenameasstringdimncname,ncnamelasstringdimal,x1,x2,y1,y2,z1,z2,xol,yol,zol,zol,zo2asstringdimxi1,xi2,yil,yi2,zil,zi2,a2,ai2,iasintegerprivatesubcommand1_click()dz=val(text1.text)ceng=val(text1.text)shu=val(text2.text)q=1dowhileq《shuncname=dir1.path "\" filel.filename trim(q)ifq《=1thenopenfilenameforinputas#1openncnameforoutputas#2dowhilenoteof(1)lineinput#1,af$leng=len(af$)af$=ucase$(af$)iz=instr(af$,"z")ix=instr(af$,"x")iy=instr(af$,"y")ia=instr(af$,"a")ic=instr(af$,"c")ib=instr(af$,"b")ifix》0thenxo=xilx00=xolfori=ixtolengix1$=mid$(af$,i+1,1)if(ix1$《"o"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextiif(ix1$《"0"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextixi1=format(val(mid$(af$,ix 1,j),"###0.000")'xvaluexol=trim(xil)'programxx=left$(af$,ix)xx1=trim(xx)j=0endififiy》0thenyo=yilyoo=yolfori=iytolengix1$=mid$(af$,i+1,1)if(ix1$《"o"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextiyil=format(-val(mid$(af$,iy 1,j)),"ttt0.0000")yol="y" trim(-yi1)j=0endififiz》0thenfori=iztolengix1$=mid$(af$,i+1,1)if(ix1$《"o"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextiz1=mid$(af$,iz 1,j)zil=format(val(z1) q*ceng,"###00.000")zol="z" trim(zil)al=mid$(af$,1,iz-1)a2=mid$(af$,iz j 1,leng)j=0ifia》0thenfori=iatolengix1$=mid$(af$,i 1,1)if(ix1$《"o"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextiail=format(val(mid$(af$,ia 1,j 1)),"###0.000")aol="a" trim(ail)j=0endifific》0thenco=cilfori=ictolengix1$=mid$(af$,i+1,1)if(ix1$《"o"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextikk$=mid$(af$,ic+1,1)if(kk$》"0"andkk$《"9")orkk$="-"orkk$="."thencil=val(mid$(af$,ic 1,j 1))col="c" trim(cil)j=0endifendififail《》0thenifabs(abs(ail)-90)《0.1thendy=0ifabs(abs(cil)-90)《0.1thendx=0ifabs(abs(ai1)-90)》=0.1thendy=cos(ci1/(ci2)×ꢀtan(ail/(ci2)*q*cengifabs(abs(ci1)-90)》=0.1thendx=sin(ci1/(ci2)×ꢀtan(ail/(ci2)*yceng'al="a" format(trim(round((ail),3)),"###0.000")x1="x" format(trim(round((xi1 dx),3)),"##00.000")y1="y" format(trim(round(-(yil dy),3)),"###0.000")endififail=0thenifiz《=0thenprint#2,af$'print#3,af$endififiz》0thenprint#2,xx1 xol yol zol aol colendifelseprint#2,x1 yl zol aol colendifloopclose#1,#2q=q 1looplabel6.visible=truecommand2.visible=trueqq=1filenamel=dirl.path "\" filel.filename ".nc.txt"openfilenamelforoutputas#2ifqq=1thenselectcasecombolcase"forest机床"print#2,":(/t=d)"print#2,"changel(1)"print#2,"d1"print#2,"traori(1)"print#2,"g55"print#2,"g90g64g0x.000y.000z200.000a0c0s9000m03"print#2,"m08"case"jobs机床")"print#2,":(/t=d)"print#2,"t5"print#2,"l6"print#2,"d1"dowhileqq《=shuncnamel=dirl.path "\" filel.filename trim(shuꢀ‑ꢀqq)ifshuꢀ‑ꢀqq=0thenncnamel=dirl.path "\" filel.filenameopenncnamelforinputas#1dowhilenoteof(1)lineinput#1,af$leng=len(af$)af$=ucase$(af$)print#2,af$loopprint#2,print#2,close#1qq=qq 1ifqq《=shuthenshell("cmd/cdel") ncnamelloopopenncnameforoutputas#2selectcasecombolcase"forest机床"print#2,"g0z250."print#2,"a0c0"print#2,"xoy0"print#2,"m5"print#2,"m9"print#2,"m2"case"jobs机床"print#2,"n215g0z250.000"print#2,"n217x.000y.000a0.c0."print#2,"m2"case"parpas机床"print#2,"n1171g0z150.000"print#2,"n1173g0x.000y.000a0b0"print#2,"m5m9"print#2,"m30"privatesubdirl_changeofile1.filename=dirl.pathendsubprivatesubdrivel_change()dirl.path=drivel.driveendsubprivatesubfilel_click()filename=dirl.path "\" filel.filenameendsubprivatesubcommand2_click()shell"notepad.exe" filename,vbnormalfocusshell"notepad.exe" dirl.path "\" filel.filename ".nc.txt",vbnormalfocusendsubprivatesubfilel_gotfocus()command2.visible=falselabel6.visible=falseendsubsubpause(byvalnsecondassingle)dimtoassinglet0=timerdowhiletimerꢀ‑ꢀto《nseconddimdummyasintegerdummy=doevents()loopendsubprivatesubformload()combo1.text="forest机床"combol.text="jobs机床"combol.text="parpas机床"combol.text="fidia机床"combol.text="fz35机床"combol.text="2000b机床"combol.text="1250机床"endsub。8.本发明的优点在于:此方法是利用visualbasic语言自主开发的五轴程序自动分层工具,完成三、五轴摆角加工程序的自动分层,通过此工具能有效降低编程人员的工作量,编程耗时长,加工零件空刀多的缺点,显著提高零件表面质量,适用于所有带刀尖点跟随的五轴双摆头机床加工设备,应用广泛。附图说明9.下面结合附图对本发明做进一步详细说明。10.图1为本发明的逻辑流程图;图2为本发明利用visualbasic语言自主开发此工具的部分程序源代码;图3为本发明利用visualbasic语言自主开发此工具的部分程序源代码;图4为本发明利用visualbasic语言自主开发此工具的部分程序源代码;图5为本发明利用visualbasic语言自主开发此工具的部分程序源代码;图6为本发明利用visualbasic语言自主开发此工具的部分程序源代码;图7为本发明利用visualbasic语言自主开发此工具的部分程序源代码。具体实施方式11.下面由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效。所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。12.如图1所示本发明的一种数控加工五轴程序自动分层方法,包括以下步骤:读取零件单层加工文件,设为文件1;选择机床类型;输入层距及所需层数;建立新文件,设为文件2;读取文件1一行,一行一行读取,循环直至文件1结束;层数计算,循环直到等于层数;提取此行代码的xyz值,根据机床类型和层距计算新xyz值,分别赋予新变量;提取此行非xyz值代码,赋予其它新变量;将经计算过的新变量写入文件2;变量清理,计数器加1;关闭层数循环;关闭文件1,文件2;弹出处理结束提示框;调用记事本查看编辑文件。13.为了更好地实现本发明,进一步的,具体步骤:s1读取零件单层加工文件,设为文件1:当前工作集合a:{a00001,a00002,……,a99999},提取此工作集合作为数据源d1;s2选择机床类型,确定当前机床工作集合b:{b01,b02······b99};s3输入层距(切深)及所需层数:设为text1&text2;s2建立新文件,设为文件2:当前工作集合b:{b00001,b00002······b99999};s5提取此工作集合作为数据源d2;s6设置循环标记i,执行单步计数循环,i变量循环至数据源d1尾;s7设置循环标记j,执行单步计数循环,j变量循环至j=text2;s8依据当前机床类型与层距,层数,将工作集合a换算成工作集合b元素;s9查看工作集合b中元素,并整理;s10关闭数据源d1,工作集合2;s11释放程序中各类变量,数据集;s12弹出处理结束提示框;s13调用记事本查看编辑文件。14.具体在某机型框类零件内、外形用此工具处理前,刀轴抬刀换向处,十层会有四十处换刀,增加加工时间,且会在部分切削处形成纵向刀痕,影响零件表面质量,利用此方法生成分层工具后,刀轴抬刀换向处,十层只有十处换刀,减少加工时间,减少部分纵向刀痕,提高零件表面质量。15.利用visualbasic语言自主开发一种数控加工五轴程序自动分层工具的程序源代码为:attributevb_name="formlattributevb_globalnamespace=falseattributevbcreatable=falseattributevb_predeclaredid=trueattributevb_exposed=falsedimfilenameasstringdimncname,ncnamelasstringdimal,x1,x2,y1,y2,z1,z2,xol,yol,zol,zol,zo2asstringdimxi1,xi2,yil,yi2,zil,zi2,a2,ai2,iasintegerprivatesubcommand1_click()dz=val(text1.text)ceng=val(text1.text)shu=val(text2.text)q=1dowhileq《shuncname=dir1.path "\" filel.filename trim(q)ifq《=1thenopenfilenameforinputas#1openncnameforoutputas#2dowhilenoteof(1)lineinput#1,af$leng=len(af$)af$=ucase$(af$)iz=instr(af$,"z")ix=instr(af$,"x")iy=instr(af$,"y")ia=instr(af$,"a")ic=instr(af$,"c")ib=instr(af$,"b")ifix》0thenxo=xilx00=xolfori=ixtolengix1$=mid$(af$,i+1,1)if(ix1$《"o"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextiif(ix1$《"0"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextixi1=format(val(mid$(af$,ix 1,j),"###0.000")'xvaluexol=trim(xil)'programxx=left$(af$,ix)xx1=trim(xx)j=0endififiy》0thenyo=yilyoo=yolfori=iytolengix1$=mid$(af$,i+1,1)if(ix1$《"o"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextiyil=format(-val(mid$(af$,iy 1,j)),"ttt0.0000")yol="y" trim(-yi1)j=0endififiz》0thenfori=iztolengix1$=mid$(af$,i+1,1)if(ix1$《"o"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextiz1=mid$(af$,iz 1,j)zil=format(val(z1) q*ceng,"###00.000")zol="z" trim(zil)al=mid$(af$,1,iz-1)a2=mid$(af$,iz j 1,leng)j=0ifia》0thenfori=iatolengix1$=mid$(af$,i 1,1)if(ix1$《"o"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextiail=format(val(mid$(af$,ia 1,j 1)),"###0.000")aol="a" trim(ail)j=0endifific》0thenco=cilfori=ictolengix1$=mid$(af$,i+1,1)if(ix1$《"o"orix1$》"9")andix1$《》"-"andix1$《》"."thenexitforj=j 1nextikk$=mid$(af$,ic+1,1)if(kk$》"0"andkk$《"9")orkk$="-"orkk$="."thencil=val(mid$(af$,ic 1,j 1))col="c" trim(cil)j=0endifendififail《》0thenifabs(abs(ail)-90)《0.1thendy=0ifabs(abs(cil)-90)《0.1thendx=0ifabs(abs(ai1)-90)》=0.1thendy=cos(ci1/(ci2)×ꢀtan(ail/(ci2)*q*cengifabs(abs(ci1)-90)》=0.1thendx=sin(ci1/(ci2)×ꢀtan(ail/(ci2)*yceng'al="a" format(trim(round((ail),3)),"###0.000")x1="x" format(trim(round((xi1 dx),3)),"##00.000")y1="y" format(trim(round(-(yil dy),3)),"###0.000")endififail=0thenifiz《=0thenprint#2,af$'print#3,af$endififiz》0thenprint#2,xx1 xol yol zol aol colendifelseprint#2,x1 yl zol aol colendifloopclose#1,#2q=q 1looplabel6.visible=truecommand2.visible=trueqq=1filenamel=dirl.path "\" filel.filename ".nc.txt"openfilenamelforoutputas#2ifqq=1thenselectcasecombolcase"forest机床"print#2,":(/t=d)"print#2,"changel(1)"print#2,"d1"print#2,"traori(1)"print#2,"g55"print#2,"g90g64g0x.000y.000z200.000a0c0s9000m03"print#2,"m08"case"jobs机床")"print#2,":(/t=d)"print#2,"t5"print#2,"l6"print#2,"d1"dowhileqq《=shuncnamel=dirl.path "\" filel.filename trim(shuꢀ‑ꢀqq)ifshuꢀ‑ꢀqq=0thenncnamel=dirl.path "\" filel.filenameopenncnamelforinputas#1dowhilenoteof(1)lineinput#1,af$leng=len(af$)af$=ucase$(af$)print#2,af$loopprint#2,print#2,close#1qq=qq 1ifqq《=shuthenshell("cmd/cdel") ncnamelloopopenncnameforoutputas#2selectcasecombolcase"forest机床"print#2,"g0z250."print#2,"a0c0"print#2,"xoy0"print#2,"m5"print#2,"m9"print#2,"m2"case"jobs机床"print#2,"n215g0z250.000"print#2,"n217x.000y.000a0.c0."print#2,"m2"case"parpas机床"print#2,"n1171g0z150.000"print#2,"n1173g0x.000y.000a0b0"print#2,"m5m9"print#2,"m30"privatesubdirl_changeofile1.filename=dirl.pathendsubprivatesubdrivel_change()dirl.path=drivel.driveendsubprivatesubfilel_click()filename=dirl.path "\" filel.filenameendsubprivatesubcommand2_click()shell"notepad.exe" filename,vbnormalfocusshell"notepad.exe" dirl.path "\" filel.filename ".nc.txt",vbnormalfocusendsubprivatesubfilel_gotfocus()command2.visible=falselabel6.visible=falseendsubsubpause(byvalnsecondassingle)dimtoassinglet0=timerdowhiletimerꢀ‑ꢀto《nseconddimdummyasintegerdummy=doevents()loopendsubprivatesubformload()combo1.text="forest机床"combol.text="jobs机床"combol.text="parpas机床"combol.text="fidia机床"combol.text="fz35机床"combol.text="2000b机床"combol.text="1250机床"endsub。16.本发明的工作原理:如图2-7为本发明利用visualbasic语言自主开发此工具的程序源代码,本发明利用visualbasic语言自主开发一种数控加工五轴程序自动分层工具,利用此工具来完成一种数控加工五轴程序自动分层方法。17.本发明其它未详尽之处均为本领域技术人员所公知的常规技术。18.本发明的保护范围不限于具体实施方式所公开的技术方案,凡是依据本发明的技术实质对以上实施例所作的任何修改、等同替换、改进等,均落入本发明的保护范围。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献