




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、凸轮设计原、凸轮的分类直动推杆(作往复直线运动往复摆动(作往复摆动、推杆的运动规律2从动件行程hφuφsφd和进休止角φd可以略小些,因为回程一般不是工作行程,压力角可以大些。1-11-2、运动曲线类型的方程表达式s CC2...C
(1-sC0v
adv (1-2 0,s0 0,sh则由式(1-2)C00C1h/0,故从动件推程的运动方程为sh ,回程时h0等加速运动方程: 2h2/0 h )2/ 图1-4等加速等运动规sh[1cos(/0)]/1-5sh[(/0)sin(2/0)/21–62、NC代码生成的程序、凸轮曲线的数学近方法等间距直线图2-1推杆平面图曲线近原理将x1~x3600的值代入方程y=f(x),可求得y1~y3600的值,从而得到结点A1~A3600Picture23600A1~A2、A2~A3…A3600~A1用直线连起来,即可得到推杆平面图曲线图形。图2-2凸轮曲线近原理在本中,采用的间距为0.1度,即推杆平面图的x轴每隔0.1度取一个(如以下代码,end1是指所画圆弧的开始点,str是终点,step0.1指每0.1Fori=0To(end1-str)StepX=p=i-SelectCaseQxxze.ListIndexCase0Y=h*i/(end1-str)Case1Y=h*(i^2)/((end1-str)^2)Case2Y=h-h*((end1-str)-i)^2/(end1-str)^2Case3Y=h*((i/(end1-str))-Sin(2*PI*i/(end1-str))/*
CaseY=h*(1-Cos(PI*i/(end1-str)))/2EndSelectFormzhu.Picture2.PSet(X,Y),RGB(1000,0,Formzhu.Picture2.PSet(X,Y),RGB(1000,0,ptx(M)=(radius+(Gao+Y))*Sin((Huan+i)*PI/180)pty(M)=(radius+(Gao+Y))*Cos((Huan+i)*PI/180)ptx(N)=((Gao+Y)+radius)*Sin((Huan+p)*PI/180)pty(N)=((Gao+Y)+radius)*Cos((Huan+p)*PI/ M=M+N=N+、NC加工代码生成VBForM=1Toj=j+"F";LTrim(RTrim(Val(Text1)))j=j+Fori=1ToPrint#1,"N";LTrim(RTrim(j));"G01";"X";-ptx(i-1)),"###.###")));"Y";LTrim(RTrim(Format$((pty(i)-pty(i-1)),"###.###")))j=j+1选择完成选择完成导出曲线导出曲线3、界面设计开发工具的选择VisualBasic编程语言是一个面象的集成开发系统,它继承了事件驱动、动态数据驱动等先进的开发技术。VisualBasic可以在程序中用中文注释,这在国家尤为重要。 以选择了VisualBasic作为开发工具。人机界面的确定由输入参数类型和输出顺序布局:凸轮基本参数输入区域位于界面的右上按3-1功能模块的划分4、使用说明及测试情、使用说明输入加工参数,并选择坐标系和刀具补偿,可生成显示NC代码,确定后,可以 作、测试情况:、运行后的,登陆界4-14-24-34-4、选择第一段曲线类型并输入范围和升程,确定后在Picture1和4-5、选择第二段曲线类型并输入范围和升程,确定后在Picture1和4-6、选择第三段曲线类型并输入范围和升程,确定后在Picture1和4-7、选择第四段曲线类型并输入范围和升程,确定后在Picture1和4-84-9后点击生成NC代码显示NC代码,点击确定保存到指定的文件夹!4-10NC4-114-124-13退出 5、设计小结VB附PrivateSubFormzhu.InR.Text= '清空TlcshuFormzhu.InN.Text=low '数据初始area=b1= Formzhu.Picture2.ScaleLeft20初始化坐标系Formzhu.Picture2.ScaleTop=18Formzhu.Label20.Visible=False Formzhu.Label21.Visible=FalseFormzhu.Label22.Visible=FalseFormzhu.Label13.Visible=FalseFormzhu.Label14.Visible=FalseFormzhu.Label15.Visible=FalseFormzhu.Label16.Visible=FalseFormzhu.Label18.Visible=FalseFormzhu.Label23.Visible=FalseFormzhu.Label24.Visible=FalseFormzhu.InR.Enabled=TrueFormzhu.InH.Enabled=Formzhu.InN.Enabled=TrueFormzhu.Queding.Enabled=TrueFormzhu.Qxzshu.Caption=0Formzhu.Qxdxu.Caption=0Formzhu.Qxxze.Enabled=FalseFormzhu.Timer2.Enabled=TrueFormzhu.Timer3.Enabled=FalseQxcshu.ForeColor=&H0&Formzhu.Timer4.Enabled=FalseDcgneng.ForeColor=&H0&Option1.Value=Truemand3.Enabled=EndDimstrAsDouble,end1AsDouble,hAsDimiAsDouble,radiusAsDouble,savetimeAsDoubleDimXAsDouble,YAsDoubleIfQxzshu.Caption=Qxdxu.Captionmand3.Enabled=FalseFormzhu.Timer3.Enabled=FalseQxcshu.ForeColor=&H0&Formzhu.Timer4.Enabled=TrueEndIfIsNumeric(Numqdian)AndIsNumeric(Numzdian)AndIsNumeric(NumH)str=Val(Numqdian):end1=Val(Numzdian):h=Val(NumH)radius=Val(Formzhu.InR)low=10*M=N=low+Fori=0To(end1-str)Step0.1X=ip=i-Case0Y=h*i/(end1-str)Case1Y=h*(i^2)/((end1-str)^2)Case2Y=h-h*((end1-str)-i)^2/(end1-str)^2Case3Y=h*((i/(end1-str))-Sin(2*PI*i/(end1-str))/(2*PI))Case4Y=h*(1-Cos(PI*i/(end1-str)))/2EndSelectFormzhu.Picture2.PSet(X,Y),RGB(1000,0,Formzhu.Picture2.PSet(X,Y),RGB(1000,0,ptx(M)=(radius+(Gao+Y))*Sin((Huan+i)*PI/180)pty(M)=(radius+(Gao+Y))*Cos((Huan+i)*PI/180)ptx(N)=((Gao+Y)+radius)*Sin((Huan+p)*PI/180)pty(N)=((Gao+Y)+radius)*Cos((Huan+p)*PI/180)Formzhu.Picture1.Line(ptx(M),pty(M))-(ptx(N),pty(N)),RGB(1000,0,0)M=M+N=N+Formzhu.Qxxze.Enabled=IfFormzhu.Option2.Value=TrueThenFormzhu.Timer1.Enabled=TrueFormzhu.Timer1.Enabled=FalseEndIfIfFormzhu.Option1.Value=TrueThenFormzhu.Option2.Visible=TrueFormzhu.Timer1.Enabled=Falsesavetime=Timer'记下开始的时间WhileTimersavetime0.0001快速显示savetimeTimerWhileTimersavetime0.01循环等待EndIfNextFormzhu.Qxxze.Enabled=True'显示当前为第几条曲IfFormzhu.Qxzshu.Caption=Formzhu.Qxdxu.CaptionThenFormzhu.Label5.Visible=Truecountnum=countnum+1End'设定范tch=tch+hFormzhu.Picture2.ScaleTopschtchHuan=Val(Numzdian)Gao=Gao+a1=Numqdian:a2=Numzdian:a3=NumHSelectCaseQxxze.ListIndexCaseFormzhu.Picture3.Printa1;"~";a2;" ";"h=";a3;" _CaseFormzhu.Picture3.Printa1;"~";a2;" ";"h=";a3;" _CaseFormzhu.Picture3.Printa1;"~";a2;" ";"h=";a3;" _CaseFormzhu.Picture3.Printa1;"~";a2;" ";"h=";a3;" _CaseFormzhu.Picture3.Printa1;"~";a2;" ";"h=";a3;" _Endb1=b1+IfGao>Val(Formzhu.InH)MsgBox超出总升程,请重新输入!low '数据初始area=b1= Formzhu.Picture2.ScaleLeft20初始化坐标系Formzhu.Picture2.ScaleTop=18Formzhu.InR.Enabled=TrueFormzhu.InH.Enabled=TrueFormzhu.InN.Enabled=TrueFormzhu.Queding.Enabled=TrueFormzhu.Qxzshu.Caption=0Formzhu.Qxdxu.Caption=0Formzhu.Qxxze.Enabled=FalseFormzhu.Option1.Value=TrueEndIfMsgBox("范围出错!"),16Formzhu.Numzdian.TextEndIfMsgBox("输入为空或有字符,请重新输入!")EndIfEndPrivateSubCommand4_Click()OnErrorResumeNext Statici%DimFileSelect$=i%+j%=i%CommonDialog1.Action=2Picture2.Picture=Picture2.ImageSavePicturePicture2.Picture,EndOnErrorResumeNextStaticDimFileSelect$=i%+j%=i%CommonDialog2.Action=2Picture1.Picture=Picture1.ImageSavePicturePicture1.Picture,FileSelect$EndFormzhu.Numqdian.Text= '清空TextFormzhu.NumH.Text=""Formzhu.Numqdian.Text= '设定defaultFormzhu.Numqdian.Enabled=FalseFormzhu.Numzdian.Enabled=IfQxzshu.Caption=Qxdxu.CaptionThen Formzhu.Numzdian.Text="360" Formzhu.Numzdian.Enabled=False Formzhu.NumH.Text=-b1EndPrivateSubDimc1AsInteger,c2AsInteger,cAsIfVal(InR)<=0ThenInR=""ElseIfVal(InH)<=0InH=""ElseIfVal(InN)<=1InN=""ElseIfIsNumeric(InR.Text)And_IsNumeric(InH)AndIsNumeric(InN.Text)ThenFormzhu.InR.Enabled=FalseFormzhu.InH.Enabled=FalseFormzhu.InN.Enabled=FalseFormzhu.Queding.Enabled=FalseFormzhu.Qxxze.Enabled=Truemand3.Enabled=TruePicture1.Visible=TruePicture3.Visible=TruePicture2.Visible=True'确定Formzhu.Picture1,Picture2.Picture3c1=Val(InR)c2=c=1.2*(c1+c2)Formzhu.Picture1.Scale(-c,c)-(c,-c)Picture1.Line(0,-1.2*(c1+c2))-(0,1.2*(c1+c2)),RGB(0,128,Picture1.Line(-1.2*(c1+c2),0)-(1.2*(c1+c2),0),RGB(0,128,Fori=1ToPicture1.Line(0+i*((c1+c2)/10),0)-(0+i*((c1+c2)/10),c/50),RGB(0,128,0) Picture1.Line(0-i*((c1+c2)/10),0)-(0-i*((c1+c2)/10),c/50),128,Picture1.Line(0,0+i*((c1+c2)/10))-(c/30,0+i*((c1+c2)/10)),RGB(0,128,0)Picture1.Line(0,0-i*((c1+c2)/10))-(c/30,0-i*((c1+c2)/10)),RGB(0,128,0)Picture1.Line(11.3*(c1+c2)/10,1)-(12*(c1+c2)/10,0),RGB(0,128,'画箭Picture1.Line(11.3*(c1+c2)/10,-1)-(12*(c1+c2)/10,0),RGB(0,128,'画箭Picture1.Line(-1,11.3*(c1+c2)/10)-(0,12*(c1+c2)/10),RGB(0,128,Picture1.Line(1,11.3*(c1+c2)/10)-(0,12*(c1+c2)/10),RGB(0,128,NextFormzhu.Label20.Visible=True Formzhu.Label21.Visible=TrueFormzhu.Label22.Visible=TrueFormzhu.Label13.Visible=TrueFormzhu.Label14.Visible=TrueFormzhu.Label15.Visible=TrueFormzhu.Label16.Visible=TrueFormzhu.Label18.Visible=TrueFormzhu.Label23.Visible=TrueFormzhu.Label24.Visible=TrueFormzhu.Picture2.Scale(-20,c2)-(540,0)Picture2.ScaleHeight=-1.1*c2Picture2.ScaleTop=c2Picture2.Line(0,0)-(0,c2),RGB(0,128,Fori=1ToPicture2.Line(0,0+i*(c2/4))-(5,0+i*(c2/4)),RGB(0,128,0)NextiPicture2.Line(0,0)-(540,0),RGB(0,128,Fori=1ToPicture2.Line(0+i*(360/8),0)-(0+i*(360/8),c2/24),RGB(0,128,NextPicture2.Line520,c212)-(540,0RGB(0,128 '画箭Picture2.Line520,c212)-(540,0RGB(0,128 '画箭Formzhu.Timer2.Enabled=FalseTlcshu.ForeColor=&H0&Formzhu.Timer3.Enabled=TrueFormzhu.Qxzshu.CaptionInN.TextFormzhu.Qxdxu.Caption=1countnum=tch=0:sch=Val(InH)Huan=0:Gao=0Formzhu.Picture3.Print" ";"基圆半径";":";InR.TextFormzhu.Picture3.Print" ";"升程";":";InH.TextFormzhu.Picture3.Print" ";"曲线段数";":";InN.Text'在Formzhu.Picture1Formzhu.Picture1.DrawStyle=Formzhu.Picture1.Circle(0,0),Val(InR),RGB(0,0,Formzhu.Picture1.DrawStyle=0MsgBox("输入为空,或字符,请重新输入"),16EndIfEndPrivateSubTimer4_Timer()IfDcgneng.ForeColor=&HFFFF&ThenDcgneng.ForeColor=&H0&jj=j+Dcgneng.ForeColor=&HFFFF&EndIfEndPrivateSubIfIsNumeric(Text1)AndIsNumeric(Text2)AndIsNumeric(Text3)And_IsNumeric(Text4)AndIsNumeric(Text5)AndIsNumeric(Text6)And_IsNumeric(Text7)AndIsNumeric(Text8)ThenDimiAsInteger,jAsDouble,fName2AsCommonDialog1.InitDir="c:\"CommonDialog1.Filternc文件(*.nc)|*.nc|文本(*.txt)|*.txt|所有文件CommonDialog1.Action=2OpenCommonDialog1.FileNameForOutputAsj='绝对坐标编IfOption1.ValueTrueThen'NC代码的开始部分Print#1,j=j+Print#1,"N";LTrim(RTrim(j));Print#1,"N";LTrim(RTrim(j));"G00G90G54";bch;_LTrim(RTrim(Val(Text6)));_j=j+1sd=Val(Text8)ForM=1ToVal(Text8)j=j+1LTrim(RTrim(Val(Text7)));_"F";j=j+Fori1To3599Print#1,"N";LTrim(RTrim(j));"G01";j=j+1NextNextMPrint#1,"N";LTrim(RTrim(j));"G00";"G40";j=j+1Print#1,"N";LTrim(RTrim(j));Print#1,"%"'相对坐标编IfOption2.Value=TrueThenPrint#1,"%"j=j+j=j+1 "S";LTrim(RTrim(Val(Text4)));"M3"j=j+sd=Val(Text8)ForM=1ToVal(Text8)j=j+1"F";LTrim(RTrim(Val(Text1)))j=j+Fori=1ToPrint#1,"N";LTrim(RTrim(j));"G01";"X";LTrim(RTrim(Format((ptx(i)-ptx(i-1)),"###.###")));_"Y";LTrim(RTrim(Format$((pty(i)-pty(i-1)),"###.###")))j=j+1Nextsd=sd+Nextj=j+1j=j+1Print#1,"%"EndIfEndIfMsgBox("有字符或其它错误,请检查")EndIfEnd9、导出NC代码模块程序EndIfIsNumeric(Text1)AndIsNumeric(Text2)AndIsNumeric(Text3)And_IsNumeric(Text4)AndIsNumeric(Text5)AndIsNumeric(Text6)And_IsNumeric(Text7)AndIsNumeric(Text8)ThenDimiAsInteger,jAsDouble,fName2Asj='绝对坐标编IfOption1.Value=TrueList1.AddItemj=j+1j=j+1List1.AddItem"N"<rim(RTrim(j))&"G00G90G54"&bch&_"D01X"&RTrim(LTrim(Format$(ptx(0),"###.###")))&_"Y"&RTrim(LTrim(Format$(pty(0),"###.###")))&"Z"&_LTrim(RTrim(Val(Text6)))&_j=j+1List1.AddItem"N"<rim(RTrim(j))&"Z2"&"F"&sd=ForM=1ToVal(Text8)j=j+1List1.AddItem"N"<rim(RTrim(j))&"G01Z-"<rim(RTrim(Val(Text7)))&_"F"&j=j+'主
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公司三级安全培训考试试题附答案(夺分金卷)
- 2025年厂级职工安全培训考试试题及参考答案【轻巧夺冠】
- 2025年全员安全培训考试试题及参考答案(夺分金卷)
- 2025二手购房合同书示范文本
- 2025仓库租赁合同模板(详细版)
- 2025年聚合物多元醇(POP)项目合作计划书
- 2025建筑用地租赁合同模板
- 2025年金刚石膜热沉材料合作协议书
- 2025标准租房合同协议书范本
- 2025钢材租赁合同模板
- 《中华民族大团结》(初中)-第10课-伟大梦想-共同追求-教案
- 江苏省无锡市2023-2024学年五年级下学期期中模拟测试数学试卷(苏教版)
- 饿了么市场调研分析
- 《光伏发电工程安全验收评价规程》(NB-T 32038-2017)
- 基于STM32智能停车场管理系统设计
- 普通话培训知识篇
- GB/T 43299-2023机动车玻璃电加热性能试验方法
- 初中微机考试试题
- 对口支援乡镇卫生院工作医师考核登记表
- 《新入职护士培训大纲(试行)》
- 制度型开放的内涵、现状与路径
评论
0/150
提交评论