基于VB的轴系机构设计系统开发2.docx
《基于VB的轴系机构设计系统开发2.docx》由会员分享,可在线阅读,更多相关《基于VB的轴系机构设计系统开发2.docx(21页珍藏版)》请在冰豆网上搜索。
![基于VB的轴系机构设计系统开发2.docx](https://file1.bdocx.com/fileroot1/2022-12/30/863cf4fa-11a4-44c1-b780-7be3eb71156a/863cf4fa-11a4-44c1-b780-7be3eb71156a1.gif)
基于VB的轴系机构设计系统开发2
4零件建模过程分析
4.1深沟球轴承建模过程分析
4.1.1设计过程
深沟球轴承的三维建模主要有两大步:
绘出如图4-1所示的草图并分别旋转和阵列滚珠。
(2)
(1)
图41轴承草图
本文选了深沟球轴承四个驱动参数,分别为轴承外径、内径、宽度和圆角,即草图
(1)中的D1
(1)、D5
(1)、D6
(1)和RD8
(1),其它从动尺寸与驱动尺寸有如下的关系:
D2
(1)=D1
(1)+(D5
(1)-D1
(1))/3;
D3
(1)=(D1
(1)+D5
(1))/2;
D4
(1)=D5
(1)-(D5
(1)-D1
(1))/3;
D7
(1)=D6
(1)/2;
D9
(1)=(D5
(1)-D1
(1))/4;
RD1
(2)=D9
(1)+0.05;
D2
(2)=D3
(1);
通过以上的关系式,可以在程序中实现尺寸之间的联系,再通过程序连接到数据库,得到四个驱动尺寸的数字,从而达到尺寸驱动的效果。
(注:
为了在程序设计的方便,程序设计的参数表达和上述关系表达可能不一致,但关系是一致的。
)
4.1.2程序设计及运行效果图
1.程序
DimswAppAsObject,PartAsObject,boolstatusAsBoolean,strfilenameAsString
DimlongstatusAsLong,longwarningsAsLong
PrivateSubCombo1_Click()
DimconAsNewADODB.Connection,rstAsNewADODB.Recordset
DimsqlAsString,connAsString
con.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+"E:
\solidworks二次开发\数据\数据库97.mdb"'与数据库连接
sql="select*from深沟球轴承where型号="+Combo1.Text
rst.CursorLocation=adUseClient
rst.Opensql,con,adOpenKeyset,adLockOptimistic
Text1.Text=rst.Fields("d1")'轴承内径
Text2.Text=rst.Fields("d2")'轴外径
Text3.Text=rst.Fields("B")'轴承宽度
Text4.Text=rst.Fields("r")'圆角
rst.Close
con.Close
EndSub
PrivateSubCommand1_Click()
DimPartAsObject
DimstrfilenameAsString
DimlongstatusAsLong
DimD1AsSingle,D2AsSingle,D3AsSingle,D4AsSingle,D5AsSingle
DimD6AsSingle,D7AsSingle,DimD8AsSingle,D9AsSingle
DimD10AsSingle,D11AsSingle,rAsSingle,mAsInteger
IfDir(strfilename)=""Then
MsgBox("文件不存在,请检查路径:
"&vbCrLf&strfilename)
ExitSub
EndIf
strfilename="E:
/solidworks二次开发/模型/轴承1.sldprt"
SetswApp=CreateObject("sldworks.application")
swApp.Visible=ture
SetPart=swApp.OpenDoc4(strfilename,1,0,"",longstatus)
SetPart=swApp.ActivateDoc("轴承1")
D1=Val(Text1.Text)/2'计算草图中个尺寸与四个参数的关系
D4=Val(Text2.Text)/2
D5=Val(Text3.Text):
r=Val(Text4.Text)
ProgressBar1.Value=4
D8=(D1+D4)/2:
D2=(D1+(D4-D1)/3):
D3=(D4-(D4-D1)/3)
D6=(D4-D1)/2:
D7=D5/2:
D9=D7
D10=D8:
D11=D6+0.1:
m=Int(2.2/((D11/2)/D8))
Debug.PrintD1,D4,D5,r,D6,D2,D3,D7,D8,D9,D10,D11,m
strfilename="@轴承1.sldprt"'运用尺寸驱动绘制三维模型
Part.Parameter("D1@草图1"&strfilename).SystemValue=D1/1000
Part.Parameter("D2@草图1"&strfilename).SystemValue=D2/1000
Part.Parameter("D3@草图1"&strfilename).SystemValue=D3/1000
Part.Parameter("D4@草图1"&strfilename).SystemValue=D4/1000
Part.Parameter("D5@草图1"&strfilename).SystemValue=D5/1000
ProgressBar1.Value=30
Part.Parameter("D6@草图1"&strfilename).SystemValue=D6/1000
Part.Parameter("D7@草图1"&strfilename).SystemValue=D7/1000
Part.Parameter("D8@草图1"&strfilename).SystemValue=D8/1000
Part.Parameter("D9@草图2"&strfilename).SystemValue=D9/1000
Part.Parameter("D10@草图2"&strfilename).SystemValue=D10/1000
Part.Parameter("D11@草图2"&strfilename).SystemValue=D11/1000
Part.Parameter("r@圆角1"&strfilename).SystemValue=r/1000
Part.Parameter("m@阵列(圆周)1"&strfilename).SystemValue=m
Part.EditRebuild
SetPart=Nothing
SetswApp=Nothing
ProgressBar1.Value=100
StatusBar1.Panels
(1).Text="建模成功"
EndSub
PrivateSubCommand2_Click()
form2.Hide'关闭当前窗体
Form1.Show'返回窗体1
EndSub
PrivateSubForm_Load()
Combo1.Text="选择深沟球轴承型号:
"'控件初始化
Text1.Text="":
Text2.Text="":
Text3.Text="":
Text4.Text=""
Picture1=LoadPicture("E:
\solidworks二次开发\图片\深沟球轴承.jpg")
DimconAsNewADODB.Connection:
rstAsNewADODB.Recordset
DimsqlAsString:
connAsString
con.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+"E:
\solidworks二次开发\数据\数据库97.mdb"'数据库连接
sql="select型号from深沟球轴承"
rst.CursorLocation=adUseClient
rst.Opensql,con,adOpenKeyset,adLockOptimistic
DoWhileNotrst.EOF
Combo1.AddItemrst.Fields("型号")&""
rst.MoveNext
Loop
rst.Close
con.Close
EndSub
2.效果图
图4-2所示为轴承型号6007的效果图:
图42轴承6007效果图
4.2凸缘联轴器建模过程分析
4.2.1设计过程
凸缘联轴器的三维模型建立基本步骤是:
绘出如图4-3所示的草图并旋转,绘制一个螺栓孔并切除拉伸,阵列螺栓孔,绘制键槽的草图并拉伸切除。
凸缘联轴器的基本三维模型是一样的,所以建立了图4-3的基本草图,然后在基本三维模型的基础上生成不同型号联轴器的不同尺寸特征,如圆角、倒角等,就可以得到不同型号联轴器的三维模型。
图43凸缘联轴器基本草图
因为此零件为标准件,只有某些特征尺寸不是标准尺寸,其他都为标准尺寸。
其驱动尺寸如下:
D1、D2、D3、D4、键槽的宽度和螺栓的数量、直径。
其他尺寸与驱动尺寸在程序中也建立了相互的关系,从而达到尺寸驱动。
4.2.2部分程序及效果图
1.与数据库的链接程序
con.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+"E:
\solidworks二次开发\数据\数据库97.mdb"
sql="select*from联轴器where型号="+str1
rst.CursorLocation=adUseClient
rst.Opensql,con,adOpenKeyset,adLockOptimistic
Text1.Text=rst.Fields("许用转矩"):
Text2.Text=rst.Fields("许用转速(铁)")
Text3.Text=rst.Fields("轴孔直径((铁)"):
Text4.Text=rst.Fields("轴孔直径(钢)")
Text5.Text=rst.Fields("轴孔长度(Y型)"):
Text7.Text=rst.Fields("D")
Text6.Text=rst.Fields("轴孔长度(J、J1型)");Text10.Text=rst.Fields("螺栓直径")
Text8.Text=rst.Fields("D0"):
Text9.Text=rst.Fields("螺栓数量")
rst.Close
con.Close
2.效果图
下图为型号为YL607的效果图:
图44型号YL607三维图
4.3轴承端盖(透盖)建模过程分析
4.3.1设计过程
轴承端盖(透盖)为标准件,其尺寸为标准尺寸,三维模型建立的基本过程:
绘制如图4-5所示的草图并旋转,绘制螺栓孔并拉伸切除,阵列螺栓孔。
图45轴承端盖(透盖)基本草图
轴承端盖(透盖)模型生成中,驱动尺寸为D1(轴承的外径)、螺栓孔的直径D0和数量K、D6。
其他尺寸与驱动尺寸有入选关系:
D2=D1-0.25D0
D3=D1-(5~8)
D4=D1+2.5D0
D5=D1+1.75D0
D7=1.2D0
其中D6为轴的直径加1mm,此值从数据库读入。
(注:
为了在程序设计的方便,程序设计的参数表达和上述关系表达可能不一致,但关系是一致的。
)
4.3.2部分程序及效果图
1.建模程序
IfDir(strfilename)=""Then
MsgBox("文件不存在,请检查路径:
"&vbCrLf&strfilename)
ExitSub
EndIf
strfilename="E:
/solidworks二次开发/模型/轴承端盖(透盖).sldprt"
SetswApp=CreateObject("sldworks.application")
swApp.Visible=True
SetPart=swApp.OpenDoc4(strfilename,1,0,"",longstatus)
SetPart=swApp.ActivateDoc("轴承端盖(透盖)")
D9=Val(Text1.Text)/2:
D1=1.2*Val(Text3.Text)
D2=D9+2.5*Val(Text3.Text):
D4=Val(Text6.Text)/2
D5=Val(Text5.Text)/2:
D8=D9-0.25*Val(Text3.Text)
D6=D8+1:
D7=D9–5:
D10=Val(Text2.Text)
D16=Val(Text7.Text):
D21=Val(Text3.Text)+1
D22=Val(Text1.Text)+2.5*Val(Text3.Text)
D23=D1:
K=Val(Text4.Text)
If0D17=5
Else
D17=8
EndIf
If0D30=6
Else
D30=12
EndIf
Debug.PrintD1,D2,D4,D5,D6,D7,D8,D9,D10,D16,D17,D21,D22,D23,D30,K
ProgressBar1.Value=10
strfilename="@轴承端盖(透盖).sldprt"
PartParameter("D1@草图1"&strfilename).SystemValue=D1/1000
Part.Parameter("D2@草图1"&strfilename).SystemValue=D2/1000
Part.Parameter("D4@草图1"&strfilename).SystemValue=D4/1000
Part.Parameter("D5@草图1"&strfilename).SystemValue=D5/1000
Part.Parameter("D6@草图1"&strfilename).SystemValue=D6/1000
Part.Parameter("D7@草图1"&strfilename).SystemValue=D7/1000
Part.Parameter("D8@草图1"&strfilename).SystemValue=D8/1000
Part.Parameter("D9@草图1"&strfilename).SystemValue=D9/1000
Part.Parameter("D10@草图1"&strfilename).SystemValue=D10/1000
Part.Parameter("D16@草图1"&strfilename).SystemValue=D16/1000
Part.Parameter("D17@圆角2"&strfilename).SystemValue=D17/1000
Part.Parameter("D21@草图2"&strfilename).SystemValue=D21/1000
ProgressBar1.Value=50
Part.Parameter("D22@草图2"&strfilename).SystemValue=D22/1000
Part.Parameter("D23@切除-拉伸1"&strfilename).SystemValue=D23/1000
Part.Parameter("D30@圆角1"&strfilename).SystemValue=D30/1000
Part.Parameter("K@阵列(圆周)1"&strfilename).SystemValue=K
Part.EditRebuild
SetPart=Nothing
SetswApp=Nothing
ProgressBar1.Value=100
StatusBar1.Panels
(1).Text="建模成功"
EndSub
2.效果图
图46轴承端盖(透盖)效果图
4.4直齿圆柱齿轮建模过程分析
4.4.1设计分析
直齿圆柱齿轮建模比较复杂,一般的的方法是绘制一齿轮的草图并拉伸即可,但是这样的拉伸很有可能使齿的形状发生改变,及不规则模型。
本文用以下方法建模:
绘制如图4-7所示的草图并拉伸,然后在齿面绘制如图4-8所示的草图,并做拉伸,拉伸的长度和前面拉伸的长度一样。
这样就避免了在拉伸过程中草图之间的互相干扰带来的齿畸形。
图47基本草图
图48直齿草图
在上述两草图中,ΦD1为齿轮的齿根圆直径,RD1为齿根圆半径,RD2为基圆半径,RD3为分度圆半径,RD4为齿顶圆半径,D5为单齿在分度圆的夹角的1/2倍。
设齿数为Z,模数为m,压力角为a,齿顶系数为C,齿根系数为C*。
直齿圆柱齿轮的驱动尺寸为:
齿数,模数,齿宽系数,轴孔直径。
其他尺寸与四个驱动尺寸有以下关系:
ΦD1=2×RD1=(Z-2×C-C*)×m
RD2=(Z×m×Cosa)/2
RD3=Z×m/2
RD4=(Z+2×C)×m/2
D5=90°/Z
4.4.2部分程序及效果图
1.数据判断程序
D1=Val(Combo2.Text)/2
D2=Val(Text5.Text)*0.5+0.3
D3=Val(Text4.Text):
D4=(Val(Text3.Text)-2.5)*Val(Combo1.Text)
D5=Val(Text2.Text)*Val(Text3.Text)*Val(Combo1.Text)
D6=90/Val(Text3.Text):
D7=D4/2
D9=Val(Text3.Text)*Val(Combo1.Text):
D8=D9*0.9397
D10=((Val(Text3.Text)+2)*Val(Combo1.Text))/2
D11=D5:
K=Val(Text3.Text)
If2*D7>D8Then
MsgBox("齿根圆直径大于基圆直径,数据不合理。
")
Command1.Enabled=False
Else
IfVal(Combo2.Text)>D4Then
MsgBox("齿根圆直径小于轴孔直径,数据不合理。
")
Command1.Enabled=False
Else
MsgBox("数据合理。
")
Command1.Enabled=True
EndIf
EndIf
2.效果图
图49直齿圆柱齿轮效果图
4.5轴承端盖(闷盖)建模过程分析
4.5.1设计分析
轴承端盖(闷盖)的设计过程相对比较简单,其三维模型建立步骤:
绘制如图4-10所示的基本草图并旋转,绘制螺栓孔草图并拉伸切除,阵列螺栓孔。
图410轴承端盖(闷盖)基本草图
轴承端盖(闷盖)的三维模型建立中的驱动尺寸为:
D1(轴承的外径)、螺栓孔的直径D0和数量,其他尺寸与驱动尺寸有以下关系:
D2=D1-0.25D0
D3=D1-(5~8)
D4=D1+2.5D0
D5=D1+1.75D0
D6=1.2D0
通过以上尺寸关系,在程序中建立相应关系,从而达到尺寸驱动的效果。
(注:
为了在程序设计的方便,程序设计的参数表达和上述关系表达可能不一致,但关系是一致的。
)
4.5.2部分程序及效果图
1.程序
DimswAppAsObject,PartAsObject,boolstatusAsBoolean
DimstrfilenameAsString,longstatusAsLong,longwarningsAsLong
PrivateSubCommand1_Click()
DimD1AsSingle,D2AsSingle,D3AsSingle,D4AsSingle,D5AsSingle
DimD6AsSingle,D7AsSingle,D8AsSingle,D9AsSingle,D10AsSingle
DimD11AsSingle,D12AsSingle,D13AsSingle,D14AsSingle
DimD15AsSingle,KAsInteger
IfDir(strfilename)=""Then
MsgBox("文件不存在,请检查路径:
"&vbCrLf&strfilename)
ExitSub
EndIf
strfilename="E:
/solidworks二次开发/模型/轴承端盖(闷盖).sldprt"
SetswApp=CreateObject("sldworks.application")
swApp.Visible=True
SetPart=swApp.OpenDoc4(strfilename,1,0,"",longstatus)
SetPart=swApp.ActivateDoc("轴承端盖(闷盖)")
D4=Val(Text1.Text)/2:
D6=Val(Text2.Text):
D14=Val(Text3.Text)+1
K=Val(Text4.Text):
D1=D4+2.5*D14:
D2=D4-1
D3=1.2*Val(Text3.Text):
D5=D3:
D7=2:
D8=D3:
D9=D4-5
D13=Val(Text1.Text)+2.5*Val(Text3.Text):
D15=D5
If0D10=6
Else
D10=10
EndIf
Deb