VB凸轮轮廓线数控加工程序设计

上传人:z**** 文档编号:124584198 上传时间:2022-07-25 格式:DOCX 页数:14 大小:36.11KB
返回 下载 相关 举报
VB凸轮轮廓线数控加工程序设计_第1页
第1页 / 共14页
VB凸轮轮廓线数控加工程序设计_第2页
第2页 / 共14页
VB凸轮轮廓线数控加工程序设计_第3页
第3页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
八附源程序模块OptionExplicitPublicptx(3600)AsDoublePublicpty(3600)AsDoublePubliclowAsDoublePubliccountnumAsIntegerPublicConstPI=3.14159PublicareaAsDoublePublicschAsDoublePublictchAsDoublePublicHuanAsDoublePublicGaoAsDouble曲线存储点数组由于存储最终输出的点数组下标存储当前为第几段曲线输入的值存储角度范围的值总升程输入曲线的推程坐标变换数据Publica1AsString,a2AsString,a3AsStringPublicb1AsDoublePublicsavetimeAsDoublePubliciAsDoubleFrmView主窗口OptionExplicitDimj%PublicbchAsString,zbxAsString,MAsInteger,sdAsStringPrivateSubCmbSlect_Click()SelectCaseCmbSlect.ListIndexCase0dengjiasu.NumStr.Text=dengjiasu.NumEnd.Text=dengjiasu.NumH.Text=dengjiasu.NumStr.Text=areadengjiasu.NumStr.Enabled=Falsedengjiasu.NumEnd.Enabled=True选择曲线类型等加速运动清空Text文本框设定default范围IfCountAll.Caption=CountNow.CaptionThen最后一段曲线dengjiasu.NumEnd.Text=360dengjiasu.NumEnd.Enabled=False输入时,自动输入默认值dengjiasu.NumH.Text=-b1EndIfdengjiasu.Show1Case1等速运动dengsu.NumStr.Text=dengsu.NumEnd.Text=dengsu.NumH.Text=dengsu.NumStr.Text=areadengsu.NumStr.Enabled=Falsedengsu.NumEnd.Enabled=TrueIfCountAll.Caption=CountNow.CaptionThendengsu.NumEnd.Text=360dengsu.NumEnd.Enabled=Falsedengsu.NumH.Text=-b1EndIfdengsu.Show1Case2sinx.NumStr.Text=sinx.NumEnd.Text=sinx.NumH.Text=sinx.NumStr.Text=areasinx.NumStr.Enabled=Falsesinx.NumEnd.Enabled=TrueIfCountAll.Caption=CountNow.CaptionThensinx.NumEnd.Text=360sinx.NumEnd.Enabled=Falsesinx.NumH.Text=-b1EndIfsinx.Show1Case3余弦加速度运动Cosx.NumStr.Text=Cosx.NumEnd.Text=Cosx.NumH.Text=Cosx.NumStr.Text=areaCosx.NumStr.Enabled=FalseCosx.NumEnd.Enabled=TrueIfCountAll.Caption=CountNow.CaptionThenCosx.NumEnd.Text=360Cosx.NumEnd.Enabled=FalseCosx.NumH.Text=-b1EndIfCosx.Show1Case4等减速运动dengjiansu.NumStr.Text=dengjiansu.NumEnd.Text=dengjiansu.NumH.Text=dengjiansu.NumStr.Text=areadengjiansu.NumStr.Enabled=Falsedengjiansu.NumEnd.Enabled=TrueIfCountAll.Caption=CountNow.CaptionThendengjiansu.NumEnd.Text=360dengjiansu.NumEnd.Enabled=Falsedengjiansu.NumH.Text=-b1EndIfdengjiansu.Show1EndSelectEndSubPrivateSubCommand1_Click()OnErrorResumeNextStatici%DimFileSelect$i%=i%+1j%=i%CommonDialog2.Action=2CommonDialog2.InitDir=c:FileSelect$=CommonDialog2.FileNamePicView1.Picture=PicView1.ImageSavePicturePicView1.Picture,FileSelect$EndSubPrivateSubCommand2_Click()OnErrorResumeNext推杆运动曲线图导出Statici%DimFileSelect$i%=i%+1j%=i%CommonDialog3.Action=2CommonDialog3.InitDir=c:FileSelect$=CommonDialog3.FileNamePicView2.Picture=PicView2.ImageSavePicturePicView2.Picture,FileSelect$EndSubPrivateSubCommand3_Click()NCFile_ClickEndSubPrivateSubForm_Load()area=0countnum=1FrmView.ShowfrmAbout.ShowfrmAbout.Timer1.Interval=250EndSubPrivateSubFrmch_Click()Frmliuch.ShowEndSubPrivateSubNCFile_Click()FrmNC.Show1EndSubPrivateSubNew_Click()FrmView.InRadius.Text=FrmView.InRise1.Text=FrmView.InNum.Text=low=0area=0b1=0FrmView.PicView1.ClsFrmView.PicView2.ClsFrmView.PicView2.ScaleLeft=-20FrmView.PicView2.ScaleTop=18FrmView.Picture1.ClsFrmView.ShowFrmView.InRadius.Enabled=TrueFrmView.InRise1.Enabled=TrueFrmView.InNum.Enabled=TrueFrmView.qued.Enabled=TrueFrmView.Label5.Visible=FalseFrmView.CountAll.Caption=0FrmView.CountNow.Caption=0清空Frmin1窗口中文本框的数值数据初始化预览窗口清屏初始化坐标系FrmView.Label18.Caption=基本参数输入FrmView.CmbSlect.Enabled=FalsePicView1.Visible=FalsePicView2.Visible=FalsePicture1.Visible=FalseOption6.Value=TrueEndSubPrivateSubnew1_Click()New_ClickEndSubPrivateSubOption1_Click()zbx=G90EndSubPrivateSubOption2_Click()zbx=G91EndSubPrivateSubOption3_Click()bch=EndSubPrivateSubOption4_Click()bch=G41EndSubPrivateSubOption5_Click()bch=G42EndSubPrivateSubpmian_Click()Command1_ClickEndSubPrivateSubqued_click()Dimc1AsInteger,c2AsInteger,cAsInteger验证基圆半径,升程,曲线段数的输入是否为数字IfVal(InRadius)=0ThenMsgBox(不能为空或负值,请重新输入),16InRadius=InRadius.SetFocusElseIfVal(InRise1)=0ThenMsgBox(不能为空或负值,请重新输入),16InRise1=InRise1.SetFocusElseIfVal(InNum)Val(NumStr)Thenstr=Val(NumStr):end1=Val(NumEnd):h=Val(NumH)radius=Val(FrmView.InRadius)low=10*Val(NumStr)Fori=0To(end1-str)Step0.1X=i*540/360Y=h*(1-Cos(PI*i/(end1-str)/2FrmView.PicView2.PSet(X,Y),RGB(1000,0,0)ptx(low)=(radius+(Gao+Y)*Sin(Huan+i)*PI/180)pty(low)=(radius+(Gao+Y)*Cos(Huan+i)*PI/180)FrmView.PicView1.PSet(ptx(low),pty(low),RGB(1000,0,0)low=low+1Cosx.HideFrmView.CmbSlect.Enabled=FalseIfFrmView.Option7.Value=TrueThenFrmView.Timer1.Enabled=TrueFrmView.Option7.BackColor=&H80FF80FrmView.Option7.ForeColor=&HFF&ElseFrmView.Timer1.Enabled=FalseEndIfIfFrmView.Option6.Value=TrueThenFrmView.Option7.Visible=TrueFrmView.Timer1.Enabled=Falsesavetime=Timer记下开始的时间WhileTimersavetime+0.0001快DoEventsWendElsesavetime=Timer记下开始的时间WhileTimerVal(FrmView.InRise1)ThenMsgBox(超出总升程,请重新输入!),16low=0area=0b1=0FrmView.PicView1.ClsFrmView.PicView2.Cls数据初始化预览窗口清屏FrmView.PicView2.ScaleLeft=-20初始化坐标系FrmView.PicView2.ScaleTop=18FrmView.Picture1.ClsFrmView.ShowFrmView.InRadius.Enabled=TrueFrmView.InRise1.Enabled=TrueFrmView.InNum.Enabled=TrueFrmView.qued.Enabled=TrueFrmView.Label5.Visible=FalseFrmView.CountAll.Caption=0FrmView.CountNow.Caption=0FrmView.Label18.Caption=基本参数输入FrmView.CmbSlect.Enabled=FalseFrmView.PicView1.Visible=FalseFrmView.PicView2.Visible=FalseFrmView.Option6.Value=TrueEndIfElseMsgBox(范围出错!),16Cosx.NumEnd.Text=Cosx.NumEnd.SetFocusEndIfElseMsgBox(输入为空或有非法字符,请重新输入!)EndIfEndSubPrivateSubCommand2_Click()Cosx.HideEndSubSin窗体OptionExplicitPrivateSubCommand1_Click()DimstrAsDouble,end1AsDouble,hAsDoubleDimiAsDouble,radiusAsDouble,savetimeAsDoubleDimXAsDouble,YAsDoubleIfIsNumeric(NumStr)AndIsNumeric(NumEnd)AndIsNumeric(NumH)ThenIfVal(NumEnd)Val(NumStr)Thenstr=Val(NumStr):end1=Val(NumEnd):h=Val(NumH)radius=Val(FrmView.InRadius)low=10*Val(NumStr)Fori=0To(end1-str)Step0.1X=i*540/360Y=h*(i/(end1-str)-Sin(2*PI*i/(end1-str)/(2*PI)FrmView.PicView2.PSet(X,Y),RGB(1000,0,0)ptx(low)=(radius+(Gao+Y)*Sin(Huan+i)*PI/180)pty(low)=(radius+(Gao+Y)*Cos(Huan+i)*PI/180)FrmView.PicView1.PSet(ptx(low),pty(low),RGB(1000,0,0)low=low+1sinx.HideFrmView.CmbSlect.Enabled=FalseIfFrmView.Option7.Value=TrueThenFrmView.Timer1.Enabled=TrueFrmView.Option7.BackColor=&H80FF80FrmView.Option7.ForeColor=&HFF&ElseFrmView.Timer1.Enabled=FalseEndIfIfFrmView.Option6.Value=TrueThenFrmView.Option7.Visible=TrueFrmView.Timer1.Enabled=Falsesavetime=Timer记下开始的时间WhileTimersavetime+0.0001快DoEventsWendElsesavetime=Timer记下开始的时间WhileTimerVal(FrmView.InRise1)ThenMsgBox(超出总升程,请重新输入!),16low=0数据初始化area=0b1=0FrmView.PicView1.Cls预览窗口清屏FrmView.PicView2.ClsFrmView.PicView2.ScaleLeft=-20初始化坐标系FrmView.PicView2.ScaleTop=18FrmView.Picture1.ClsFrmView.ShowFrmView.InRadius.Enabled=TrueFrmView.InRise1.Enabled=TrueFrmView.InNum.Enabled=TrueFrmView.qued.Enabled=TrueFrmView.Label5.Visible=FalseFrmView.CountAll.Caption=0FrmView.CountNow.Caption=0FrmView.Label18.Caption=基本参数输入FrmView.CmbSlect.Enabled=FalseFrmView.PicView1.Visible=FalseFrmView.PicView2.Visible=FalseFrmView.Option6.Value=TrueEndIfElseMsgBox(范围出错!),16sinx.NumEnd.Text=sinx.NumEnd.SetFocusEndIfElseMsgBox(输入为空或有非法字符,请重新输入!)EndIfEndSubPrivateSubCommand2_Click()sinx.HideEndSubDengjiansu窗体OptionExplicitPrivateSubCommand1_Click()DimstrAsDouble,end1AsDouble,hAsDoubleDimiAsDouble,radiusAsDoubleDimXAsDouble,YAsDoubleIfIsNumeric(NumStr)AndIsNumeric(NumEnd)AndIsNumeric(NumH)ThenIfVal(NumEnd)Val(NumStr)Thenstr=Val(NumStr):end1=Val(NumEnd):h=Val(NumH)radius=Val(FrmView.InRadius)low=10*Val(NumStr)Fori=0To(end1-str)Step0.1X=i*540/360Y=h-h*(end1-str)-i)A2/(endi-str)A2FrmView.PicView2.PSet(X,Y),RGB(1000,0,0)ptx(low)=(radius+(Gao+Y)*Sin(Huan+i)*PI/180)pty(low)=(radius+(Gao+Y)*Cos(Huan+i)*PI/180)FrmView.PicView1.PSet(ptx(low),pty(low),RGB(1000,0,0)low=low+1dengjiansu.HideFrmView.CmbSlect.Enabled=FalseIfFrmView.Option7.Value=TrueThenFrmView.Timer1.Enabled=TrueFrmView.Option7.BackColor=&H80FF80FrmView.Option7.ForeColor=&HFF&ElseFrmView.Timer1.Enabled=FalseEndIfIfFrmView.Option6.Value=TrueThenFrmView.Option7.Visible=TrueFrmView.Timer1.Enabled=Falsesavetime=Timer记下开始的时间WhileTimersavetime+0.0001快DoEventsWendElsesavetime=Timer记下开始的时间WhileTimerVal(FrmView.InRise1)ThenMsgBox(超出总升程,请重新输入!),16low=0数据初始化area=0b1=0FrmView.PicView1.Cls预览窗口清屏FrmView.PicView2.ClsFrmView.PicView2.ScaleLeft=-20初始化坐标系FrmView.PicView2.ScaleTop=18FrmView.Picture1.ClsFrmView.ShowFrmView.InRadius.Enabled=TrueFrmView.InRise1.Enabled=TrueFrmView.InNum.Enabled=TrueFrmView.qued.Enabled=TrueFrmView.Label5.Visible=FalseFrmView.CountAll.Caption=0FrmView.CountNow.Caption=0FrmView.Label18.Caption=基本参数输入FrmView.CmbSlect.Enabled=FalseFrmView.PicView1.Visible=FalseFrmView.PicView2.Visible=FalseFrmView.Option6.Value=TrueEndIfElseMsgBox(范围出错!),16dengjiansu.NumEnd.Text=dengjiansu.NumEnd.SetFocusEndIfElseMsgBox(输入为空或有非法字符,请重新输入!)EndIfEndSubPrivateSubCommand2_Click()dengjiansu.HideEndSubDengjiasu窗体OptionExplicitPrivateSubCommand1_Click()DimstrAsDouble,end1AsDouble,hAsDoubleDimiAsDouble,radiusAsDoubleDimXAsDouble,YAsDoubleIfIsNumeric(NumStr)AndIsNumeric(NumEnd)AndIsNumeric(NumH)ThenIfVal(NumEnd)Val(NumStr)Thenstr=Val(NumStr):end1=Val(NumEnd):h=Val(NumH)radius=Val(FrmView.InRadius)low=10*Val(NumStr)Fori=0To(end1-str)Step0.1X=i*540/360Y=h*(iA2)/(end1-str)A2)FrmView.PicView2.PSet(X,Y),RGB(1000,0,0)ptx(low)=(radius+(Gao+Y)*Sin(Huan+i)*PI/180)pty(low)=(radius+(Gao+Y)*Cos(Huan+i)*PI/180)FrmView.PicView1.PSet(ptx(low),pty(low),RGB(1000,0,0)low=low+1dengjiasu.HideFrmView.CmbSlect.Enabled=FalseIfFrmView.Option7.Value=TrueThenFrmView.Timer1.Enabled=TrueFrmView.Option7.BackColor=&H80FF80FrmView.Option7.ForeColor=&HFF&ElseFrmView.Timer1.Enabled=FalseEndIfIfFrmView.Option6.Value=TrueThenFrmView.Option7.Visible=TrueFrmView.Timer1.Enabled=Falsesavetime=Timer记下开始的时间WhileTimersavetime+0.0001快DoEventsWendElsesavetime=Timer记下开始的时间WhileTimerVal(FrmView.InRise1)ThenMsgBox(超出总升程,请重新输入!),16low=0数据初始化area=0b1=0FrmView.PicView1.Cls预览窗口清屏FrmView.PicView2.ClsFrmView.PicView2.ScaleLeft=-20初始化坐标系FrmView.PicView2.ScaleTop=18FrmView.Picture1.ClsFrmView.ShowFrmView.InRadius.Enabled=TrueFrmView.InRise1.Enabled=TrueFrmView.InNum.Enabled=TrueFrmView.qued.Enabled=TrueFrmView.Label5.Visible=FalseFrmView.CountAll.Caption=0FrmView.CountNow.Caption=0FrmView.Label18.Caption=基本参数输入FrmView.CmbSlect.Enabled=FalseFrmView.PicView1.Visible=FalseFrmView.PicView2.Visible=FalseFrmView.Option6.Value=TrueEndIfElseMsgBox(范围出错!),16dengjiasu.NumEnd.Text=dengjiasu.NumEnd.SetFocusEndIfElseMsgBox(输入为空或有非法字符,请重新输入!)EndIfEndSubPrivateSubCommand2_Click()dengjiasu.HideEndSubDengsu窗体OptionExplicitPrivateSubCommand1_Click()DimstrAsDouble,end1AsDouble,hAsDoubleDimiAsDouble,radiusAsDoubleDimXAsDouble,YAsDouble检查输入是否全为数字IfIsNumeric(NumStr)AndIsNumeric(NumEnd)AndIsNumeric(NumH)Then检查终止角度(end1)是否大于初始角度(str)IfVal(NumEnd)Val(NumStr)Thenstr=Val(NumStr):end1=Val(NumEnd):h=Val(NumH)radius=Val(FrmView.InRadius)low=10*Val(NumStr)为ptx()、pty()的下标赋值Fori=0To(end1-str)Step0.1X=i*540/360Y=h*i/(end1-str)FrmView.PicView2.PSet(X,Y),RGB(1000,0,0)坐标变换,把Picview2中的图形转换到Picview1中ptx(low)=(radius+(Gao+Y)*Sin(Huan+i)*PI/180)pty(low)=(radius+(Gao+Y)*Cos(Huan+i)*PI/180)FrmView.PicView1.PSet(ptx(low),pty(low),RGB(1000,0,0)low=low+1dengsu.HideFrmView.CmbSlect.Enabled=FalseIfFrmView.Option7.Value=TrueThenFrmView.Timer1.Enabled=TrueFrmView.Option7.BackColor=&H80FF80FrmView.Option7.ForeColor=&HFF&ElseFrmView.Timer1.Enabled=FalseEndIfIfFrmView.Option6.Value=TrueThenFrmView.Option7.Visible=TrueFrmView.Timer1.Enabled=Falsesavetime=Timer记下开始的时间WhileTimersavetime+0.0001快DoEventsWendElsesavetime=Timer记下开始的时间WhileTimerVal(FrmView.InRise1)ThenMsgBox(超出总升程,请重新输入!),16low=0数据初始化area=0b1=0FrmView.PicView1.Cls预览窗口清屏FrmView.PicView2.ClsFrmView.PicView2.ScaleLeft=-20初始化坐标系FrmView.PicView2.ScaleTop=18FrmView.Picture1.ClsFrmView.ShowFrmView.InRadius.Enabled=TrueFrmView.InRise1.Enabled=TrueFrmView.InNum.Enabled=TrueFrmView.qued.Enabled=TrueFrmView.Label5.Visible=FalseFrmView.CountAll.Caption=0FrmView.CountNow.Caption=0FrmView.Label18.Caption=基本参数输入FrmView.CmbSlect.Enabled=FalseFrmView.PicView1.Visible=FalseFrmView.PicView2.Visible=FalseFrmView.Option6.Value=TrueEndIfElseMsgBox(范围出错!),16dengsu.NumEnd.Text=dengsu.NumEnd.SetFocusEndIfElseMsgBox(输入为空或有非法字符,请重新输入!)EndIfEndSubPrivateSubCommand2_Click()dengsu.HideEndSubFrmabout窗体OptionExplicitPrivateSubcmdOK_Click()FrmView.ShowFrmView.Enabled=TruefrmAbout.HideEndSubPrivateSubTimer1_Timer()IflblTitle.Visible=TrueThenlblTitle.Visible=FalseElselblTitle.Visible=TrueEndIfEndSubPrivateSubTimer3_Timer()StaticbAsBooleanIfbThenLabel2.Left=Label2.Left+150Else:Label2.Left=Label2.Left-150EndIfIfLabel2.Left=frmAbout.Width-Label2.Width-500Thenb=FalseEndIfEndSubFrmNC窗体PrivateSubCommand2_Click()IfIsNumeric(Text1)AndIsNumeric(Text2)AndIsNumeric(Text3)And_IsNumeric(Text4)AndIsNumeric(Text5)AndIsNumeric(Text6)And_IsNumeric(Text7)AndIsNumeric(Text8)ThenDimiAsInteger,jAsDouble,fName2AsStringCommonDialog1.InitDir=c:CommonDialog1.FileName=凸轮代码1.ncCommonDialog1.Filter=nc文件(*.nc)|*.nc|文本(*.txt)|*.txt|所有文件(*.*)|*.*CommonDialog1.DefaultExt=ncCommonDialog1.Action=2OpenCommonDialog1.FileNameForOutputAs#1j=100绝对坐标编程IfOption1.Value=TrueThenNC代码的开始部分Print#1,%Print#1,N;LTrim(RTrim(j);G17G40G49G80j=j+1Print#1,N;LTrim(RTrim(j);M06T01j=j+1Print#1,N;LTrim(RTrim(j);G00G90G54;bch;_D01X;RTrim(LTrim(Format$(ptx(0),#.#);_Y;RTrim(LTrim(Format$(pty(0),#.#);Z;_LTrim(RTrim(Val(Text6);_S;LTrim(RTrim(Val(Text4);M3j=j+1Print#1,N;LTrim(RTrim(j);Z2;F;LTrim(RTrim(Val(Text2)sd=Val(Text8)ForM=1ToVal(Text8)j=j+1Print#1,N;LTrim(RTrim(j);G01Z-;_LTrim(RTrim(Val(Text7);_F;LTrim(RTrim(Text1)j=j+1主要走刀部分Fori=1To3599Print#1,N;LTrim(RTrim(j);G01;_;X;LTrim(RTrim(Format$(ptx(i),#.#);_Y;LTrim(RTrim(Format$(pty(i),#.#)j=j+1Nextisd=sd+Val(Text7)NextMPrint#1,N;LTrim(RTrim(j);G00;G40;_Z;LTrim(RTrim(Val(Text6)j=j+1Print#1,N;LTrim(RTrim(j);M05j=j+1Print#1,N;LTrim(RTrim(j);M02Print#1,%Close#1Else相对坐标编程IfOption2.Value=TrueThenPrint#
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!