VB凸轮轮廓线数控加工程序设计源代码.docx

上传人:b****3 文档编号:5523754 上传时间:2023-05-08 格式:DOCX 页数:36 大小:19.20KB
下载 相关 举报
VB凸轮轮廓线数控加工程序设计源代码.docx_第1页
第1页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第2页
第2页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第3页
第3页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第4页
第4页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第5页
第5页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第6页
第6页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第7页
第7页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第8页
第8页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第9页
第9页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第10页
第10页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第11页
第11页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第12页
第12页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第13页
第13页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第14页
第14页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第15页
第15页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第16页
第16页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第17页
第17页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第18页
第18页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第19页
第19页 / 共36页
VB凸轮轮廓线数控加工程序设计源代码.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VB凸轮轮廓线数控加工程序设计源代码.docx

《VB凸轮轮廓线数控加工程序设计源代码.docx》由会员分享,可在线阅读,更多相关《VB凸轮轮廓线数控加工程序设计源代码.docx(36页珍藏版)》请在冰点文库上搜索。

VB凸轮轮廓线数控加工程序设计源代码.docx

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%

Dim$

i%=i%+1

j%=i%

CommonDialog2.Action=2

CommonDialog2.InitDir="c:

\"

$=CommonDialog2.

PicView1.Picture=PicView1.Image

SavePicturePicView1.Picture,$

EndSub

PrivateSubCommand2_Click()

OnErrorResumeNext'推杆运动曲线图导出

Statici%

Dim$

i%=i%+1

j%=i%

CommonDialog3.Action=2

CommonDialog3.InitDir="c:

\"

$=CommonDialog3.

PicView2.Picture=PicView2.Image

SavePicturePicView2.Picture,$

EndSub

PrivateSubCommand3_Click()

NC

EndSub

PrivateSubForm_Load()

area=0

countnum=1

FrmView.Show

frmAbout.Show

frmAbout.Timer1.Interval=250

EndSub

PrivateSubFrmch_Click()

Frmliuch.Show

EndSub

PrivateSubNC()

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

EndSub

Sin窗体

OptionExplicit

PrivateSubCommand1_Click()

DimstrAsDouble,end1AsDouble,hAsDouble

Di

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2