vb编写的一个凸轮NC代码生成软件Word格式文档下载.docx
《vb编写的一个凸轮NC代码生成软件Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《vb编写的一个凸轮NC代码生成软件Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。
ø
±
ê
Ï
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:
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))
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))
Ford=0TokStep0.01
Y=r*Sin(pi/180*(n+b+q+d))
X=r*Cos(pi/180*(n+b+q+d))
³
"
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)
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)
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)
Ford=q/2To0Step-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)
Rem°
ß
ElseIfmnubaixian.CheckedThen
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)
Ford=qTo0Step-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)
'
Õ
ý
ElseIfmnuSin.CheckedThen
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)
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)
RemÓ
à
Else
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)
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)
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),"
Ifag1=0Orag3=0Then
Æ
Ç
Ø
²
Ü
0£
¬
ExitSub
Ifmnudengsu.CheckedThen
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
Picture1.Line(X0,Y0)-(X1,Y1),vbBlue
q=Format(Val(X1-X0),"
w=Format(Val(Y1-Y0),"
i=i+1
Ifi=1Then
Text3.SelText=vbNewLine&
N0"
(i)&
G01"
F"
(F)&
S"
(S)&
ElseIfi>
9Then
N"
X0=X1
Y0=Y1
LoopWhilee<
ag1
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))
Ifi<
G03"
R"
(r+h)&
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))
ag3
Ifag4<
Picture1.Circle(0,0),r,vbBlue,(pi/180*(ag1+ag2+ag3)),(2*pi)
(r)&
Rem¼
ü
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)
Lo