1、VB凸轮轮廓线数控加工程序设计源代码八 附源程序模块Option ExplicitPublic ptx(3600) As Double 曲线存储点数组Public pty(3600) As Double 由于存储最终输出的点Public low As Double 数组下标Public countnum As Integer 存储当前为第几段曲线输入的值Public Const PI = 3.14159Public area As Double 存储角度范围的值Public sch As Double 总升程Public tch As Double 输入曲线的推程Public Huan As
2、Double 坐标变换数据Public Gao As DoublePublic a1 As String, a2 As String, a3 As StringPublic b1 As DoublePublic savetime As DoublePublic i As DoubleFrmView 主窗口Option ExplicitDim j%Public bch As String, zbx As String, M As Integer, sd As StringPrivate Sub CmbSlect_Click() 选择曲线类型Select Case CmbSlect.ListInd
3、exCase 0 等加速运动dengjiasu.NumStr.Text = 清空Text文本框dengjiasu.NumEnd.Text = dengjiasu.NumH.Text = dengjiasu.NumStr.Text = area 设定default范围dengjiasu.NumStr.Enabled = Falsedengjiasu.NumEnd.Enabled = True If CountAll.Caption = CountNow.Caption Then 最后一段曲线 dengjiasu.NumEnd.Text = 360 输入时,自动输入 dengjiasu.NumEn
4、d.Enabled = False 默认值 dengjiasu.NumH.Text = -b1 End Ifdengjiasu.Show 1Case 1 等速运动dengsu.NumStr.Text = dengsu.NumEnd.Text = dengsu.NumH.Text = dengsu.NumStr.Text = areadengsu.NumStr.Enabled = Falsedengsu.NumEnd.Enabled = True If CountAll.Caption = CountNow.Caption Then dengsu.NumEnd.Text = 360 dengsu
5、.NumEnd.Enabled = False dengsu.NumH.Text = -b1 End Ifdengsu.Show 1Case 2 正弦加速度运动sinx.NumStr.Text = sinx.NumEnd.Text = sinx.NumH.Text = sinx.NumStr.Text = areasinx.NumStr.Enabled = Falsesinx.NumEnd.Enabled = True If CountAll.Caption = CountNow.Caption Then sinx.NumEnd.Text = 360 sinx.NumEnd.Enabled =
6、 False sinx.NumH.Text = -b1 End Ifsinx.Show 1Case 3 余弦加速度运动Cosx.NumStr.Text = Cosx.NumEnd.Text = Cosx.NumH.Text = Cosx.NumStr.Text = areaCosx.NumStr.Enabled = FalseCosx.NumEnd.Enabled = True If CountAll.Caption = CountNow.Caption Then Cosx.NumEnd.Text = 360 Cosx.NumEnd.Enabled = False Cosx.NumH.Text
7、 = -b1 End IfCosx.Show 1Case 4 等减速运动dengjiansu.NumStr.Text = dengjiansu.NumEnd.Text = dengjiansu.NumH.Text = dengjiansu.NumStr.Text = areadengjiansu.NumStr.Enabled = Falsedengjiansu.NumEnd.Enabled = True If CountAll.Caption = CountNow.Caption Then dengjiansu.NumEnd.Text = 360 dengjiansu.NumEnd.Enabl
8、ed = False dengjiansu.NumH.Text = -b1 End Ifdengjiansu.Show 1End SelectEnd SubPrivate Sub Command1_Click()On Error Resume NextStatic i%Dim FileSelect$i% = i% + 1j% = i%CommonDialog2.Action = 2CommonDialog2.InitDir = c:FileSelect$ = CommonDialog2.FileNamePicView1.Picture = PicView1.ImageSavePicture P
9、icView1.Picture, FileSelect$End SubPrivate Sub Command2_Click()On Error Resume Next 推杆运动曲线图导出 Static i% Dim FileSelect$ i% = i% + 1 j% = i% CommonDialog3.Action = 2 CommonDialog3.InitDir = c: FileSelect$ = CommonDialog3.FileName PicView2.Picture = PicView2.Image SavePicture PicView2.Picture, FileSel
10、ect$End SubPrivate Sub Command3_Click() NCFile_ClickEnd SubPrivate Sub Form_Load()area = 0countnum = 1FrmView.ShowfrmAbout.ShowfrmAbout.Timer1.Interval = 250End SubPrivate Sub Frmch_Click()Frmliuch.ShowEnd SubPrivate Sub NCFile_Click()FrmNC.Show 1End SubPrivate Sub New_Click()FrmView.InRadius.Text =
11、 清空Frmin1窗口中文本框的数值FrmView.InRise1.Text = FrmView.InNum.Text = low = 0 数据初始化area = 0b1 = 0FrmView.PicView1.Cls 预览窗口清屏FrmView.PicView2.ClsFrmView.PicView2.ScaleLeft = -20 初始化坐标系FrmView.PicView2.ScaleTop = 18FrmView.Picture1.ClsFrmView.ShowFrmView.InRadius.Enabled = TrueFrmView.InRise1.Enabled = TrueFr
12、mView.InNum.Enabled = TrueFrmView.qued.Enabled = TrueFrmView.Label5.Visible = FalseFrmView.CountAll.Caption = 0FrmView.CountNow.Caption = 0FrmView.Label18.Caption = 基本参数输入FrmView.CmbSlect.Enabled = FalsePicView1.Visible = FalsePicView2.Visible = FalsePicture1.Visible = FalseOption6.Value = TrueEnd S
13、ubPrivate Sub new1_Click()New_ClickEnd SubPrivate Sub Option1_Click()zbx = G90End SubPrivate Sub Option2_Click()zbx = G91End SubPrivate Sub Option3_Click()bch = End SubPrivate Sub Option4_Click()bch = G41End SubPrivate Sub Option5_Click()bch = G42End SubPrivate Sub pmian_Click() Command1_ClickEnd Su
14、bPrivate Sub qued_click()Dim c1 As Integer, c2 As Integer, c As Integer验证基圆半径,升程,曲线段数的输入是否为数字If Val(InRadius) = 0 ThenMsgBox (不能为空或负值,请重新输入), 16InRadius = InRadius.SetFocusElseIf Val(InRise1) = 0 ThenMsgBox (不能为空或负值,请重新输入), 16InRise1 = InRise1.SetFocusElseIf Val(InNum) Val(NumStr) Then str = Val(Num
15、Str): end1 = Val(NumEnd): h = Val(NumH) radius = Val(FrmView.InRadius) low = 10 * Val(NumStr) For i = 0 To (end1 - str) Step 0.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(l
16、ow) = (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 If FrmView.Option7.Value = True ThenFrmView.Timer1.Enabled = TrueFrmView.Option7.BackColor = &H80FF80FrmView.Option7.ForeColor = &
17、HFF&ElseFrmView.Timer1.Enabled = FalseEnd If If FrmView.Option6.Value = True Then FrmView.Option7.Visible = True FrmView.Timer1.Enabled = False savetime = Timer 记下开始的时间 While Timer savetime + 0.0001 快 DoEvents Wend Else savetime = Timer 记下开始的时间 While Timer Val(FrmView.InRise1) Then MsgBox (超出总升程,请重新
18、输入!), 16 low = 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 = True
19、FrmView.Label5.Visible = FalseFrmView.CountAll.Caption = 0FrmView.CountNow.Caption = 0FrmView.Label18.Caption = 基本参数输入FrmView.CmbSlect.Enabled = FalseFrmView.PicView1.Visible = FalseFrmView.PicView2.Visible = FalseFrmView.Option6.Value = True End If Else MsgBox (范围出错!), 16 Cosx.NumEnd.Text = Cosx.NumEnd.SetFocus End IfElse MsgBox (输入为空或有非法字符,请重新输入!)End IfEnd SubPrivate Sub Command2_Click()Cosx.HideEn
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1