VB凸轮轮廓线数控加工程序设计源代码Word文档格式.docx
《VB凸轮轮廓线数控加工程序设计源代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《VB凸轮轮廓线数控加工程序设计源代码Word文档格式.docx(36页珍藏版)》请在冰点文库上搜索。
![VB凸轮轮廓线数控加工程序设计源代码Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/c82e81d4-ab1a-48c4-a23b-7e4161e3e1c8/c82e81d4-ab1a-48c4-a23b-7e4161e3e1c81.gif)
'
清空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="
dengsu.NumEnd.Enabled=False
dengsu.NumH.Text=-b1
dengsu.Show1
Case2'
正弦加速度运动
sinx.NumStr.Text="
sinx.NumEnd.Text="
sinx.NumH.Text="
sinx.NumStr.Text=area
sinx.NumStr.Enabled=False
sinx.NumEnd.Enabled=True
sinx.NumEnd.Text="
sinx.NumEnd.Enabled=False
sinx.NumH.Text=-b1
sinx.Show1
Case3'
余弦加速度运动
Cosx.NumStr.Text="
Cosx.NumEnd.Text="
Cosx.NumH.Text="
Cosx.NumStr.Text=area
Cosx.NumStr.Enabled=False
Cosx.NumEnd.Enabled=True
Cosx.NumEnd.Text="
Cosx.NumEnd.Enabled=False
Cosx.NumH.Text=-b1
Cosx.Show1
Case4'
等减速运动
dengjiansu.NumStr.Text="
dengjiansu.NumEnd.Text="
dengjiansu.NumH.Text="
dengjiansu.NumStr.Text=area
dengjiansu.NumStr.Enabled=False
dengjiansu.NumEnd.Enabled=True
dengjiansu.NumEnd.Text="
dengjiansu.NumEnd.Enabled=False
dengjiansu.NumH.Text=-b1
dengjiansu.Show1
EndSelect
EndSub
PrivateSubCommand1_Click()
OnErrorResumeNext
Statici%
Dim$
i%=i%+1
j%=i%
CommonDialog2.Action=2
CommonDialog2.InitDir="
c:
\"
$=CommonDialog2.
PicView1.Picture=PicView1.Image
SavePicturePicView1.Picture,$
PrivateSubCommand2_Click()
OnErrorResumeNext'
推杆运动曲线图导出
Statici%
Dim$
i%=i%+1
j%=i%
CommonDialog3.Action=2
CommonDialog3.InitDir="
$=CommonDialog3.
PicView2.Picture=PicView2.Image
SavePicturePicView2.Picture,$
PrivateSubCommand3_Click()
NC
PrivateSubForm_Load()
area=0
countnum=1
FrmView.Show
frmAbout.Show
frmAbout.Timer1.Interval=250
PrivateSubFrmch_Click()
Frmliuch.Show
PrivateSubNC()
FrmNC.Show1
PrivateSubNew_Click()
FrmView.InRadius.Text="
清空Frmin1窗口中文本框的数值
FrmView.InRise1.Text="
FrmView.InNum.Text="
low=0'
数据初始化
b1=0
FrmView.PicView1.Cls'
预览窗口清屏
FrmView.PicView2.Cls
FrmView.PicView2.ScaleLeft=-20'
初始化坐标系
FrmView.PicView2.ScaleTop=18
FrmView.Picture1.Cls
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
PrivateSubnew1_Click()
New_Click
PrivateSubOption1_Click()
zbx="
G90"
PrivateSubOption2_Click()
G91"
PrivateSubOption3_Click()
bch="
PrivateSubOption4_Click()
G41"
PrivateSubOption5_Click()
G42"
PrivateSubpmian_Click()
Command1_Click
PrivateSubqued_click()
Dimc1AsInteger,c2AsInteger,cAsInteger
'
验证基圆半径,升程,曲线段数的输入是否为数字
IfVal(InRadius)<
=0Then
MsgBox("
不能为空或负值,请重新输入"
),16
InRadius="
InRadius.SetFocus
ElseIfVal(InRise1)<
InRise1="
InRise1.SetFocus
ElseIfVal(InNum)<
=1Then
这不是凸轮,请输入大于等于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.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)
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)
FrmView.PicView2.ScaleHeight=-1.1*c2
FrmView.PicView2.ScaleTop=c2
主窗口显示要输入的曲线的段数
FrmView.CountAll.Caption=InNum.Text
FrmView.CountNow.Caption=1
tch=0:
sch=Val(InRise1)
Huan=0:
Gao=0
FrmView.Picture1.Print"
"
;
基圆半径"
:
InRadius.Text
升程"
InRise1.Text
曲线段数"
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
输入为空,或非法字符,请重新输入"
EndIf
PrivateSubquxiao_Click()
tuichu.Show
PrivateSubqxian_Click()
Command2_Click
PrivateSubTimer1_Timer()
StaticaAsInteger
IfaThen
Option7.Visible=True
Option7.Visible=False
a=Nota
Cosx窗体
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&
FrmView.Timer1.Enabled=False
IfFrmView.Option6.Value=TrueThen
FrmView.Option7.Visible=True
FrmView.Timer1.Enabled=False
savetime=Timer'
记下开始的时间
WhileTimer<
savetime+0.0001'
快
DoEvents
Wend
Else
savetime+0.01'
循环等待
Nexti
FrmView.CmbSlect.Enabled=True
FrmView.Option7.BackColor=&
H808000
H80000012
显示当前为第几条曲线
IfFrmView.CountAll.Caption=FrmView.CountNow.CaptionThen
FrmView.Label5.Visible=True
countnum=countnum+1
FrmView.CountNow.Caption=countnum
设定范围
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("
超出总升程,请重新输入!
low=0'
FrmView.PicView1.Visible=False
FrmView.PicView2.Visible=False
FrmView.Option6.Value=True
范围出错!
Cosx.NumEnd.SetFocus
输入为空或有非法字符,请重新输入!
)
Cosx.Hide
Sin窗体
Di