vb编写的一个凸轮NC代码生成软件.docx
- 文档编号:7545393
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:29
- 大小:40.54KB
vb编写的一个凸轮NC代码生成软件.docx
《vb编写的一个凸轮NC代码生成软件.docx》由会员分享,可在线阅读,更多相关《vb编写的一个凸轮NC代码生成软件.docx(29页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 编写 一个 凸轮 NC 代码 生成 软件
![提示](https://static.bdocx.com/images/bang_tan.gif)