vb编写的一个凸轮NC代码生成软件.docx

上传人:b****5 文档编号:7545393 上传时间:2023-01-24 格式:DOCX 页数:29 大小:40.54KB
下载 相关 举报
vb编写的一个凸轮NC代码生成软件.docx_第1页
第1页 / 共29页
vb编写的一个凸轮NC代码生成软件.docx_第2页
第2页 / 共29页
vb编写的一个凸轮NC代码生成软件.docx_第3页
第3页 / 共29页
vb编写的一个凸轮NC代码生成软件.docx_第4页
第4页 / 共29页
vb编写的一个凸轮NC代码生成软件.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

vb编写的一个凸轮NC代码生成软件.docx

《vb编写的一个凸轮NC代码生成软件.docx》由会员分享,可在线阅读,更多相关《vb编写的一个凸轮NC代码生成软件.docx(29页珍藏版)》请在冰豆网上搜索。

vb编写的一个凸轮NC代码生成软件.docx

vb编写的一个凸轮NC代码生成软件

OptionExplicit

Constpi=3.141592653

PrivateSubbtnRun_Click()

lbldraw.Visible=True

lbldraw.Caption="»æͼÖÐ......"

Picture1.Cls

'ÉèÖõÚÒ»»æͼ´°×ø±êϵ

Picture1.ScaleMode=6

Picture1.Scale(-500,300)-(500,-300)

Picture1.Line(-500,0)-(500,0)

Picture1.Line(0,300)-(0,-300)

Picture1.CurrentX=0:

Picture1.CurrentY=0:

Picture1.Print0

Picture1.CurrentX=480:

Picture1.CurrentY=40:

Picture1.Print"X"

Picture1.CurrentX=10:

Picture1.CurrentY=300:

Picture1.Print"Y"

DimnAsSingle,dAsSingle,rAsSingle,XAsSingle,YAsSingle,SAsSingle

DimbAsSingle,qAsSingle,kAsSingle

r=Text2

(2).Text

n=Text2(0).Text

S=Text2

(1).Text

b=Text2(3).Text

q=Text2(4).Text

k=360-n-b-q

DimFAsSingle

Picture1.CurrentX=r:

Picture1.CurrentY=0

RemµÈËÙÔ˶¯ÂÖÀª

Ifmnudengsu.CheckedThen

Ford=0TonStep0.01

X=(r+S*d/n)*Cos(pi/180*d)

Y=(r+S*d/n)*Sin(pi/180*d)

Picture1.PSet(X,Y),vbRed

Next

Ford=0TobStep0.01

Y=(r+S)*Sin(pi/180*(n+d))

X=(r+S)*Cos(pi/180*(n+d))

Picture1.PSet(X,Y),vbRed

Next

Ford=0ToqStep0.01

Y=(r+S-S*d/q)*Sin(pi/180*(n+b+d))

X=(r+S-S*d/q)*Cos(pi/180*(n+b+d))

Picture1.PSet(X,Y),vbRed

Next

Ford=0TokStep0.01

Y=r*Sin(pi/180*(n+b+q+d))

X=r*Cos(pi/180*(n+b+q+d))

Picture1.PSet(X,Y),vbRed

Next

lbldraw.Caption="»æͼÍê³É"

RemÔȼӼõËÙÔ˶¯ÂÖÀª

ElseIfmnudengjiajian.CheckedThen

Ford=0Ton/2Step0.01

X=(r+2*S*d^2/n^2)*Cos(pi/180*d)

Y=(r+2*S*d^2/n^2)*Sin(pi/180*d)

Picture1.PSet(X,Y),vbRed

Next

Ford=n/2TonStep0.01

X=(r+S-2*S*(n-d)^2/n^2)*Cos(pi/180*d)

Y=(r+S-2*S*(n-d)^2/n^2)*Sin(pi/180*d)

Picture1.PSet(X,Y),vbRed

Next

Ford=0TobStep0.01

Y=(r+S)*Sin(pi/180*(n+d))

X=(r+S)*Cos(pi/180*(n+d))

Picture1.PSet(X,Y),vbRed

Next

F=n+b

Ford=qToq/2Step-0.01

F=F+0.01

X=(r+S-2*S*(q-d)^2/q^2)*Cos(pi/180*F)

Y=(r+S-2*S*(q-d)^2/q^2)*Sin(pi/180*F)

Picture1.PSet(X,Y),vbRed

Next

Ford=q/2To0Step-0.01

F=F+0.01

X=(r+2*S*d^2/q^2)*Cos(pi/180*F)

Y=(r+2*S*d^2/q^2)*Sin(pi/180*F)

Picture1.PSet(X,Y),vbRed

Next

Ford=0TokStep0.01

Y=r*Sin(pi/180*(n+b+q+d))

X=r*Cos(pi/180*(n+b+q+d))

Picture1.PSet(X,Y),vbRed

Next

lbldraw.Caption="»æͼÍê³É"

Rem°ÚÏßÔ˶¯ÂÖÀª

ElseIfmnubaixian.CheckedThen

Ford=0TonStep0.01

X=(r+S*(10*(d/n)^3-15*(d/n)^4+6*(d/n)^5))*Cos(pi/180*d)

Y=(r+S*(10*(d/n)^3-15*(d/n)^4+6*(d/n)^5))*Sin(pi/180*d)

Picture1.PSet(X,Y),vbRed

Next

Ford=0TobStep0.01

Y=(r+S)*Sin(pi/180*(n+d))

X=(r+S)*Cos(pi/180*(n+d))

Picture1.PSet(X,Y),vbRed

Next

F=n+b

Ford=qTo0Step-0.01

F=F+0.01

X=(r+S*(10*(d/q)^3-15*(d/q)^4+6*(d/q)^5))*Cos(pi/180*F)

Y=(r+S*(10*(d/q)^3-15*(d/q)^4+6*(d/q)^5))*Sin(pi/180*F)

Picture1.PSet(X,Y),vbRed

Next

Ford=0TokStep0.01

Y=r*Sin(pi/180*(n+b+q+d))

X=r*Cos(pi/180*(n+b+q+d))

Picture1.PSet(X,Y),vbRed

Next

lbldraw.Caption="»æͼÍê³É"

'ÕýÏÒ¼ÓËÙÔ˶¯°ÚÏßÂÖÀª

ElseIfmnuSin.CheckedThen

Ford=0TonStep0.01

X=(r+S*(d/n-Sin(2*pi*d/n)/(2*pi)))*Cos(pi/180*d)

Y=(r+S*(d/n-Sin(2*pi*d/n)/(2*pi)))*Sin(pi/180*d)

Picture1.PSet(X,Y),vbRed

Next

Ford=0TobStep0.01

Y=(r+S)*Sin(pi/180*(n+d))

X=(r+S)*Cos(pi/180*(n+d))

Picture1.PSet(X,Y),vbRed

Next

F=n+b

Ford=qTo0Step-0.01

F=F+0.01

X=(r+S*(d/q-Sin(2*pi*d/q)/(2*pi)))*Cos(pi/180*F)

Y=(r+S*(d/q-Sin(2*pi*d/q)/(2*pi)))*Sin(pi/180*F)

Picture1.PSet(X,Y),vbRed

Picture1.PSet(X,Y),vbRed

Next

Ford=0TokStep0.01

Y=r*Sin(pi/180*(n+b+q+d))

X=r*Cos(pi/180*(n+b+q+d))

Picture1.PSet(X,Y),vbRed

Next

lbldraw.Caption="»æͼÍê³É"

RemÓàÏÒ¼ÓËÙÔ˶¯ÂÖÀª

Else

Ford=0TonStep0.01

X=(r+S/2*(1-Cos(pi*d/n)))*Cos(pi/180*d)

Y=(r+S/2*(1-Cos(pi*d/n)))*Sin(pi/180*d)

Picture1.PSet(X,Y),vbRed

Next

Ford=0TobStep0.01

Y=(r+S)*Sin(pi/180*(n+d))

X=(r+S)*Cos(pi/180*(n+d))

Picture1.PSet(X,Y),vbRed

Next

F=n+b

Ford=qTo0Step-0.01

F=F+0.01

X=(r+S/2*(1-Cos(pi*d/q)))*Cos(pi/180*F)

Y=(r+S/2*(1-Cos(pi*d/q)))*Sin(pi/180*F)

Picture1.PSet(X,Y),vbRed

Next

Ford=0TokStep0.01

Y=r*Sin(pi/180*(n+b+q+d))

X=r*Cos(pi/180*(n+b+q+d))

Picture1.PSet(X,Y),vbRed

Next

lbldraw.Caption="»æͼÍê³É"

EndIf

EndSub

PrivateSubcmmCreate_Click()

Frame1.Caption="Éú³ÉNC´úÂë......"

Text3.Text=""

DimX0AsSingle,Y0AsSingle,X1AsSingle,Y1AsSingle,ag1AsSingle,ag2AsSingle,ag3AsSingle,ag4AsSingle

DimSAsSingle,FAsSingle,rAsSingle,hAsSingle,LAsSingle,qAsSingle,wAsSingle,pAsSingle

DimiAsInteger

DimnAsSingle

DimeAsSingle,kAsSingle,aAsSingle

ag1=Text2(0).Text:

ag2=Text2(3).Text:

ag3=Text2(4).Text:

ag4=360-ag1-ag2-ag3

r=Abs(Text2

(2).Text):

h=Text2

(1).Text:

S=Text2(6).Text:

F=Text2(7).Text:

p=Abs(Text1.Text)

X0=r:

Y0=0

'Éú³ÉµÈËÙÔ˶¯µÄ¼Ó¹¤´úÂë

IfS=0OrF=0Then

MsgBox"ΪÊäÈëÕýȷתËٺͽø¸øËÙ¶È",vbCritical,"ϵͳÌáʾ"

Else

L=2*Sqr(r*p)

q=Format(Val(X0),"0.000")

w=Format(Val(Y0),"0.000")

Ifag1=0Orag3=0Then

MsgBox"ÍƳ̽Ǻͻس̽Dz»ÄÜΪ0£¬ÇëÖØÐÂÊäÈë",vbCritical,"ϵͳÌáʾ"

ExitSub

Else

Ifmnudengsu.CheckedThen

Text3.Text=""

Text3.SelText="N00"&""&"G91"&""&"G00"&""&"x"&(q)&""&"y"&(w)&""&"M03"&""&"LF"

Do

Fore=aToag1Step0.0001

X1=(r+h*e/ag1)*Cos(pi/180*e)

Y1=(r+h*e/ag1)*Sin(pi/180*e)

k=Abs((X1-X0)^2+(Y1-Y0)^2-L^2)

a=e

If(k<0.05)And(k>0)Then

ExitFor

EndIf

Next

Picture1.Line(X0,Y0)-(X1,Y1),vbBlue

q=Format(Val(X1-X0),"0.000")

w=Format(Val(Y1-Y0),"0.000")

i=i+1

Ifi=1Then

Text3.SelText=vbNewLine&"N0"&(i)&""&"G01"&""&"X"&(q)&""&"Y"&(w)&""&"F"&(F)&""&"S"&(S)&""&"LF"

ElseIfi>9Then

Text3.SelText=vbNewLine&"N"&(i)&""&"G01"&""&"X"&(q)&""&"Y"&(w)&""&"LF"

Else

Text3.SelText=vbNewLine&"N0"&(i)&""&"G01"&""&"X"&(q)&""&"Y"&(w)&""&"LF"

EndIf

X0=X1

Y0=Y1

LoopWhilee

Ifag2<>0Then

Picture1.Circle(0,0),(r+h),vbBlue,(pi/180*ag1),(pi/180*(ag1+ag2))

X0=(r+h)*Cos(pi/180*(ag1+ag2))

Y0=(r+h)*Sin(pi/180*(ag1+ag2))

i=i+1

q=Format(Val(X0),"0.000")

w=Format(Val(Y0),"0.000")

Ifi<9Then

Text3.SelText=vbNewLine&"N0"&(i)&""&"G03"&""&"X"&(q)&""&"Y"&(w)&""&"R"&(r+h)&""&"LF"

Else

Text3.SelText=vbNewLine&"N"&(i)&""&"G03"&""&"X"&(q)&""&"Y"&(w)&""&"R"&(r+h)&""&"LF"

EndIf

EndIf

a=0

Do

Fore=aToag3Step0.0001

X1=(r+h-h*e/ag3)*Cos(pi/180*(ag1+ag2+e))

Y1=(r+h-h*e/ag3)*Sin(pi/180*(ag1+ag2+e))

k=Abs((X1-X0)^2+(Y1-Y0)^2-L^2)

a=e

If(k<0.05)And(k>0)Then

ExitFor

EndIf

Next

Picture1.Line(X0,Y0)-(X1,Y1),vbBlue

q=Format(Val(X1-X0),"0.000")

w=Format(Val(Y1-Y0),"0.000")

i=i+1

Ifi=1Then

Text3.SelText=vbNewLine&"N0"&(i)&""&"G01"&""&"X"&(q)&""&"Y"&(w)&""&"F"&(F)&""&"S"&(S)&""&"LF"

ElseIfi>9Then

Text3.SelText=vbNewLine&"N"&(i)&""&"G01"&""&"X"&(q)&""&"Y"&(w)&""&"LF"

Else

Text3.SelText=vbNewLine&"N0"&(i)&""&"G01"&""&"X"&(q)&""&"Y"&(w)&""&"LF"

EndIf

X0=X1

Y0=Y1

LoopWhilee

Ifag4<>0Then

Picture1.Circle(0,0),r,vbBlue,(pi/180*(ag1+ag2+ag3)),(2*pi)

q=Format(Val(X0),"0.000")

w=Format(Val(Y0),"0.000")

i=i+1

Ifi<9Then

Text3.SelText=vbNewLine&"N0"&(i)&""&"G03"&""&"X"&(q)&""&"Y"&(w)&""&"R"&(r)&""&"LF"

Else

Text3.SelText=vbNewLine&"N"&(i)&""&"G03"&""&"X"&(q)&""&"Y"&(w)&""&"R"&(r)&""&"LF"

EndIf

EndIf

'ÔȼӼõËÙµÄNC´úÂëÉú³É

ElseIfmnudengjiajian.CheckedThen

Text3.Text=""

Text3.SelText="N00"&""&"G91"&""&"G00"&""&"X"&(q)&""&"Y"&(w)&""&"M03"&""&"LF"

Rem¼ÓËٶαƽü

Do

Fore=aToag1/2Step0.001

X1=(r+2*h*e^2/ag1^2)*Cos(pi/180*e)

Y1=(r+2*h*e^2/ag1^2)*Sin(pi/180*e)

k=Abs((X1-X0)^2+(Y1-Y0)^2-L^2)

a=e

If(k<0.05)And(k>0)Then

ExitFor

EndIf

Next

Picture1.Line(X0,Y0)-(X1,Y1),vbBlue

q=Format(Val(X1-X0),"0.000")

w=Format(Val(Y1-Y0),"0.000")

i=i+1

Ifi=1Then

Text3.SelText=vbNewLine&"N0"&(i)&""&"G01"&""&"X"&(q)&""&"Y"&(w)&""&"F"&(F)&""&"S"&(S)&""&"LF"

ElseIfi>9Then

Text3.SelText=vbNewLine&"N"&(i)&""&"G01"&""&"X"&(q)&""&"Y"&(w)&""&"LF"

Else

Text3.SelText=vbNewLine&"N0"&(i)&""&"G01"&""&"X"&(q)&""&"Y"&(w)&""&"LF"

EndIf

X0=X1

Y0=Y1

Lo

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

当前位置:首页 >

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1