VB凸轮轮廓线数控加工程序设计源代码.docx
- 文档编号:24109775
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:37
- 大小:19.53KB
VB凸轮轮廓线数控加工程序设计源代码.docx
《VB凸轮轮廓线数控加工程序设计源代码.docx》由会员分享,可在线阅读,更多相关《VB凸轮轮廓线数控加工程序设计源代码.docx(37页珍藏版)》请在冰豆网上搜索。
VB凸轮轮廓线数控加工程序设计源代码
八附源程序
模块
OptionExplicit
Publicptx(3600)AsDouble'曲线存储点数组
Publicpty(3600)AsDouble'由于存储最终输出的点
PubliclowAsDouble'数组下标
PubliccountnumAsInteger'存储当前为第几段曲线输入的值
PublicConstPI=3.14159
PublicareaAsDouble'存储角度范围的值
PublicschAsDouble'总升程
PublictchAsDouble'输入曲线的推程
PublicHuanAsDouble'坐标变换数据
PublicGaoAsDouble
Publica1AsString,a2AsString,a3AsString
Publicb1AsDouble
PublicsavetimeAsDouble
PubliciAsDouble
FrmView主窗口
OptionExplicit
Dimj%
PublicbchAsString,zbxAsString,MAsInteger,sdAsString
PrivateSubCmbSlect_Click()'选择曲线类型
SelectCaseCmbSlect.ListIndex
Case0'等加速运动
dengjiasu.NumStr.Text=""'清空Text文本框
dengjiasu.NumEnd.Text=""
dengjiasu.NumH.Text=""
dengjiasu.NumStr.Text=area'设定default范围
dengjiasu.NumStr.Enabled=False
dengjiasu.NumEnd.Enabled=True
IfCountAll.Caption=CountNow.CaptionThen'最后一段曲线
dengjiasu.NumEnd.Text="360"'输入时,自动输入
dengjiasu.NumEnd.Enabled=False'默认值
dengjiasu.NumH.Text=-b1
EndIf
dengjiasu.Show1
Case1'等速运动
dengsu.NumStr.Text=""
dengsu.NumEnd.Text=""
dengsu.NumH.Text=""
dengsu.NumStr.Text=area
dengsu.NumStr.Enabled=False
dengsu.NumEnd.Enabled=True
IfCountAll.Caption=CountNow.CaptionThen
dengsu.NumEnd.Text="360"
dengsu.NumEnd.Enabled=False
dengsu.NumH.Text=-b1
EndIf
dengsu.Show1
Case2'正弦加速度运动
sinx.NumStr.Text=""
sinx.NumEnd.Text=""
sinx.NumH.Text=""
sinx.NumStr.Text=area
sinx.NumStr.Enabled=False
sinx.NumEnd.Enabled=True
IfCountAll.Caption=CountNow.CaptionThen
sinx.NumEnd.Text="360"
sinx.NumEnd.Enabled=False
sinx.NumH.Text=-b1
EndIf
sinx.Show1
Case3'余弦加速度运动
Cosx.NumStr.Text=""
Cosx.NumEnd.Text=""
Cosx.NumH.Text=""
Cosx.NumStr.Text=area
Cosx.NumStr.Enabled=False
Cosx.NumEnd.Enabled=True
IfCountAll.Caption=CountNow.CaptionThen
Cosx.NumEnd.Text="360"
Cosx.NumEnd.Enabled=False
Cosx.NumH.Text=-b1
EndIf
Cosx.Show1
Case4'等减速运动
dengjiansu.NumStr.Text=""
dengjiansu.NumEnd.Text=""
dengjiansu.NumH.Text=""
dengjiansu.NumStr.Text=area
dengjiansu.NumStr.Enabled=False
dengjiansu.NumEnd.Enabled=True
IfCountAll.Caption=CountNow.CaptionThen
dengjiansu.NumEnd.Text="360"
dengjiansu.NumEnd.Enabled=False
dengjiansu.NumH.Text=-b1
EndIf
dengjiansu.Show1
EndSelect
EndSub
PrivateSubCommand1_Click()
OnErrorResumeNext
Statici%
DimFileSelect$
i%=i%+1
j%=i%
CommonDialog2.Action=2
CommonDialog2.InitDir="c:
\"
FileSelect$=CommonDialog2.FileName
PicView1.Picture=PicView1.Image
SavePicturePicView1.Picture,FileSelect$
EndSub
PrivateSubCommand2_Click()
OnErrorResumeNext'推杆运动曲线图导出
Statici%
DimFileSelect$
i%=i%+1
j%=i%
CommonDialog3.Action=2
CommonDialog3.InitDir="c:
\"
FileSelect$=CommonDialog3.FileName
PicView2.Picture=PicView2.Image
SavePicturePicView2.Picture,FileSelect$
EndSub
PrivateSubCommand3_Click()
NCFile_Click
EndSub
PrivateSubForm_Load()
area=0
countnum=1
FrmView.Show
frmAbout.Show
frmAbout.Timer1.Interval=250
EndSub
PrivateSubFrmch_Click()
Frmliuch.Show
EndSub
PrivateSubNCFile_Click()
FrmNC.Show1
EndSub
PrivateSubNew_Click()
FrmView.InRadius.Text=""'清空Frmin1窗口中文本框的数值
FrmView.InRise1.Text=""
FrmView.InNum.Text=""
low=0'数据初始化
area=0
b1=0
FrmView.PicView1.Cls'预览窗口清屏
FrmView.PicView2.Cls
FrmView.PicView2.ScaleLeft=-20'初始化坐标系
FrmView.PicView2.ScaleTop=18
FrmView.Picture1.Cls
FrmView.Show
FrmView.InRadius.Enabled=True
FrmView.InRise1.Enabled=True
FrmView.InNum.Enabled=True
FrmView.qued.Enabled=True
FrmView.Label5.Visible=False
FrmView.CountAll.Caption=0
FrmView.CountNow.Caption=0
FrmView.Label18.Caption="基本参数输入"
FrmView.CmbSlect.Enabled=False
PicView1.Visible=False
PicView2.Visible=False
Picture1.Visible=False
Option6.Value=True
EndSub
PrivateSubnew1_Click()
New_Click
EndSub
PrivateSubOption1_Click()
zbx="G90"
EndSub
PrivateSubOption2_Click()
zbx="G91"
EndSub
PrivateSubOption3_Click()
bch=""
EndSub
PrivateSubOption4_Click()
bch="G41"
EndSub
PrivateSubOption5_Click()
bch="G42"
EndSub
PrivateSubpmian_Click()
Command1_Click
EndSub
PrivateSubqued_click()
Dimc1AsInteger,c2AsInteger,cAsInteger
'验证基圆半径,升程,曲线段数的输入是否为数字
IfVal(InRadius)<=0Then
MsgBox("不能为空或负值,请重新输入"),16
InRadius=""
InRadius.SetFocus
ElseIfVal(InRise1)<=0Then
MsgBox("不能为空或负值,请重新输入"),16
InRise1=""
InRise1.SetFocus
ElseIfVal(InNum)<=1Then
MsgBox("这不是凸轮,请输入大于等于2的数"),64
InNum=""
InNum.SetFocus
ElseIfIsNumeric(InRadius.Text)And_
IsNumeric(InRise1)AndIsNumeric(InNum.Text)Then
FrmView.InRadius.Enabled=False
FrmView.InRise1.Enabled=False
FrmView.InNum.Enabled=False
FrmView.qued.Enabled=False
FrmView.Label18.Caption="基本参数输入完毕!
"
FrmView.CmbSlect.Enabled=True
FrmView.CmbSlect.Enabled=True
PicView1.Visible=True
PicView2.Visible=True
Picture1.Visible=True
'确定FrmView.PicView1,FrmView.PicView2的坐标系,其范围随输入的
'基圆半径、升程的变化而变化
c1=Val(InRadius)
c2=Val(InRise1)
c=1.2*(c1+c2)
FrmView.PicView1.Scale(-c,c)-(c,-c)
PicView1.Line(0,-1.2*(c1+c2))-(0,1.2*(c1+c2)),RGB(0,128,0)
PicView1.Line(-1.2*(c1+c2),0)-(1.2*(c1+c2),0),RGB(0,128,0)
Fori=1To10
PicView1.Line(0+i*((c1+c2)/10),0)-(0+i*((c1+c2)/10),c/50),RGB(0,128,0)
PicView1.Line(0-i*((c1+c2)/10),0)-(0-i*((c1+c2)/10),c/50),RGB(0,128,0)
PicView1.Line(0,0+i*((c1+c2)/10))-(c/30,0+i*((c1+c2)/10)),RGB(0,128,0)
PicView1.Line(0,0-i*((c1+c2)/10))-(c/30,0-i*((c1+c2)/10)),RGB(0,128,0)
Nexti
PicView2.ScaleHeight=-1.1*c2
PicView2.ScaleTop=c2
PicView2.Line(0,0)-(540,0),RGB(0,128,0)
Fori=1To4
PicView2.Line(0,0+i*(c2/4))-(5,0+i*(c2/4)),RGB(0,128,0)
Nexti
PicView2.Line(0,0)-(0,c2),RGB(0,128,0)
Fori=1To8
PicView2.Line(0+i*(540/8),0)-(0+i*(540/8),c2/24),RGB(0,128,0)
Nexti
FrmView.PicView2.ScaleHeight=-1.1*c2
FrmView.PicView2.ScaleTop=c2
'主窗口显示要输入的曲线的段数
FrmView.CountAll.Caption=InNum.Text
FrmView.CountNow.Caption=1
countnum=1
tch=0:
sch=Val(InRise1)
Huan=0:
Gao=0
FrmView.Label5.Visible=False
FrmView.Picture1.Print"";"基圆半径";":
";InRadius.Text
FrmView.Picture1.Print"";"升程";":
";InRise1.Text
FrmView.Picture1.Print"";"曲线段数";":
";InNum.Text
'在Frmview.Picview1中输出基圆及升程的图形
FrmView.PicView1.DrawStyle=2
FrmView.PicView1.Circle(0,0),Val(InRadius),RGB(0,0,1000)
FrmView.PicView1.Circle(0,0),Val(InRadius)+Val(InRise1),RGB(0,0,1000)
FrmView.PicView1.DrawStyle=0
Else
MsgBox("输入为空,或非法字符,请重新输入"),16
EndIf
EndSub
PrivateSubquxiao_Click()
tuichu.Show
EndSub
PrivateSubqxian_Click()
Command2_Click
EndSub
PrivateSubTimer1_Timer()
StaticaAsInteger
IfaThen
Option7.Visible=True
Else
Option7.Visible=False
EndIf
a=Nota
EndSub
Cosx窗体
OptionExplicit
PrivateSubCommand1_Click()
DimstrAsDouble,end1AsDouble,hAsDouble
DimiAsDouble,radiusAsDouble
DimXAsDouble,YAsDouble
IfIsNumeric(NumStr)AndIsNumeric(NumEnd)AndIsNumeric(NumH)Then
IfVal(NumEnd)>Val(NumStr)Then
str=Val(NumStr):
end1=Val(NumEnd):
h=Val(NumH)
radius=Val(FrmView.InRadius)
low=10*Val(NumStr)
Fori=0To(end1-str)Step0.1
X=i*540/360
Y=h*(1-Cos(PI*i/(end1-str)))/2
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+1
Cosx.Hide
FrmView.CmbSlect.Enabled=False
IfFrmView.Option7.Value=TrueThen
FrmView.Timer1.Enabled=True
FrmView.Option7.BackColor=&H80FF80
FrmView.Option7.ForeColor=&HFF&
Else
FrmView.Timer1.Enabled=False
EndIf
IfFrmView.Option6.Value=TrueThen
FrmView.Option7.Visible=True
FrmView.Timer1.Enabled=False
savetime=Timer'记下开始的时间
WhileTimer DoEvents Wend Else savetime=Timer'记下开始的时间 WhileTimer DoEvents Wend EndIf Nexti FrmView.CmbSlect.Enabled=True FrmView.Timer1.Enabled=False FrmView.Option7.BackColor=&H808000 FrmView.Option7.ForeColor=&H80000012 '显示当前为第几条曲线 IfFrmView.CountAll.Caption=FrmView.CountNow.CaptionThen FrmView.Label5.Visible=True FrmView.CmbSlect.Enabled=False Else countnum=countnum+1 FrmView.CountNow.Caption=countnum EndIf Cosx.Hide '设定范围 area=Val(NumEnd) tch=tch+h '坐标变换数据 FrmView.PicView2.ScaleTop=sch-tch FrmView.PicView2.ScaleLeft=-20-540/360*Val(NumEnd) Huan=Val(NumEnd) Gao=Gao+h a1=NumStr: a2=NumEnd: a3=NumH FrmView.Picture1.Printa1;"~";a2;"";"h=";a3;"";_ "余弦加速度运动" b1=b1+Val(NumH) IfGao>Val(FrmView.InRise1)Then MsgBox("超出总升程,请重新输入! "),16 low=0'数据初始化 area=0 b1=0 FrmView.PicView1.Cls'预览窗口清屏 FrmView.PicView2.Cls FrmView.PicView2.ScaleLeft=-20'初始化坐标系 FrmView.PicView2.ScaleTop=18 FrmView.Picture1.Cls FrmView.Show FrmView.InRadius.Enabled=True FrmView.InRise1.Enabled=True FrmView.InNum.Enabled=True FrmView.qued.Enabled=True FrmView.Label5.Visible=False FrmView.CountAll.Caption=0 FrmView.CountNow.Caption=0 FrmView.Label18.Caption="基本参数输入" FrmView.CmbSlect.Enabled=False FrmView.PicView1.Visible=False FrmView.PicView2.Visible=False FrmView.Option6.Value=True EndIf Else MsgBox("范围出错! "),16 Cosx.NumEnd.Text="" Cosx.NumEnd.SetFocus EndIf Else MsgBox("输入为空或有非法字符,请重新输入! ") EndIf EndSub PrivateSubCommand2_Click() Cosx.Hide En
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 凸轮 轮廓 数控 加工 程序设计 源代码