课程设计最终作业.docx
- 文档编号:6335645
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:26
- 大小:228.32KB
课程设计最终作业.docx
《课程设计最终作业.docx》由会员分享,可在线阅读,更多相关《课程设计最终作业.docx(26页珍藏版)》请在冰点文库上搜索。
课程设计最终作业
目录
一、设计任务书………………………………………………………
平面连杆机构……………………………………………………
二、铰链四杆机构……………………………………………………
1.数学模型的建立…………………………………………………
2.控件名称…………………………………………………………
3.主要变量说明…………………………………………
4.程序源代码及运行结果…………………………………………
三、小结
四、主要参考资料……………………………………………………
2.主要控件名称及相关说明
控件名称
类型
变量名
含义、功能
单位
txtLength(0)
TextBox
控件数组
dblL_AB
主动连架杆AB长度
mm
txtLength
(1)
dblL_BC
连杆BC长度
mm
txtLength
(2)
dblL_CD
从动连架杆CD长度
mm
txtLength(3)
dblL_AD
机架AD长度
mm
txtLength(4)
dblN
主动连架杆AB的转速n
r/min
txtLength(5)
dblL_BE
BE的长度
mm
txtLength(6)
dblF_BE
杆BE与杆AB的夹角δ
mm
txtAngle
TextBox
-
主动连架杆AB的任意角位移
°
textScale
TextBox
dblSxy
运动仿真的显示比例
-
optClockWise
OptionButton
intCW
杆AB顺时针转,intCW=-1
-
optNCW
杆AB逆时针转,intCW=1
optPosition
OptionButton
intM
B、C、D顺时针排列,intM=-1
-
optNPosition
B、C、D逆时针排列,intM=1
lblCurrent(0)
Lable
控件数组
-
显示指定时刻杆CD的角位移
°
lblCurrent
(1)
显示指定时刻杆CD的角速度
rad/s
lblCurrent
(2)
显示指定时刻杆CD的角加速度
rad/s2
lblCurrent(3)
显示指定时刻点E对x轴角位移
°
lblCurrent(4)
显示指定时刻点E对x轴角速度
rad/s
lblCurrent(5)
显示指定时刻点E对x轴角加速度
rad/s2
lblCurrent(6)
显示指定时刻点E对y轴角位移
°
lblCurrent(7)
显示指定时刻点E对y轴角速度
rad/s
lblCurrent(8)
显示指定时刻点E对y轴角加速度
rad/s2
lblRealtimeAB
Lable
-
实时显示杆AB的角位移
°
lblRealtime(0)
Lable
控件数组
Lable
控件数组
-
实时显示杆CD的角位移
°
lblRealtime
(1)
实时显示杆CD的角速度
rad/s
lblRealtime
(2)
实时显示杆CD的角加速度
rad/s2
lblRealtime(3)
实时显示点E对x轴角位移
°
lblRealtime(4)
实时显示点E对x轴角速度
rad/s
lblRealtime(5)
实时显示点E对x轴角加速度
rad/s2
lblRealtime(6)
实时显示点E对y轴角位移
°
lblRealtime(7)
实时显示点E对y轴角速度
rad/s
lblRealtime(8)
实时显示点E对y轴角加速度
rad/s2
cmdRun
CommandButton
-
运行程序
-
cmdList
CommandButton
-
显示计算结果
-
cmdDraw
CommandButton
-
绘制运动曲线
-
cmdPlay
CommandButton
-
进行运动仿真
-
Command1
CommandButton
-
暂停运动仿真
-
cmdExit
CommandButton
-
退出程序
-
tmrDraw
Timer
-
控制运动曲线的绘制速度
-
tmrPlay
Timer
-
控制运动仿真的速度
-
sstResult
SStab
-
提供一组选项卡显示程序运行结果
-
grdDataList
MSFlexGrid
-
显示分析结果
-
picFigure
PictureBox
-
显示机构示意图
-
picDraw(0)
PictureBox
控件数组
-
显示杆CD的角位移曲线
-
picDraw
(1)
-
显示杆CD的角速度曲线
-
picDraw
(2)
-
显示杆CD的角加速度曲线
-
picDraw(3)
-
显示点E对x轴角位移曲线
-
picDraw(4)
-
显示点E对x轴角速度曲线
-
picDraw(5)
-
显示点E对x轴角加速度曲线
-
picDraw(6)
-
显示点E对y轴角位移曲线
-
picDraw(7)
-
显示点E对y轴角速度曲线
-
picDraw(8)
-
显示点E对x轴角加速度曲线
-
picPlay
PictureBox
-
显示运动仿真
-
hsbSpeed
HscrollBar
-
调节运动仿真速度
-
3.主要变量说明
变量名
含义
单位
程序中
数学模型中
dblL_AB
L1
主动连架杆AB长度
mm
dblL_BC
L2
连杆BC长度
mm
dblL_CD
L3
从动连架杆CD长度
mm
dblL_AD
L4
机架AD长度
mm
dblN
主动连架杆AB的转速
r/min
dblL_BE
a
BE的长度
mm
dblF_BE
δ
杆BE与杆AB的夹角
mm
txtAngle
-
主动连架杆AB的任意角位移
°
dblSxy
-
运动仿真的显示比例
-
intCW
-
杆AB顺时针转,intCW=-1,反之intC=1
-
intM
-
B、C、D顺时针排列intM=-1,反之intM=1
-
dblF_AB
AB杆的角位移
°
dblF_BC
BC杆的角位移
°
dblF_CD
φ3
CD杆的角位移
°
dblW_BC
BC杆的角速度
rad/s
dblW_CD
CD杆的角速度
rad/s
dblE_BC
BC杆的角加速度
rad/s2
dblE_CD
CD杆的角加速度
rad/s2
X_E
点E对x轴位移
mm
X1_E
点E对x轴速度
mm/s
X2_E
点E对x轴加速度
mm/s2
Y_E
点E对y轴位移
mm
Y1_E
点E对y轴速度
mm/s
Y2_E
点E对y轴加速度
mm/s2
(dblAx,dblAy)
-
铰链A的坐标
mm
(dblBx,dblBy)
-
铰链B的坐标
mm
(dblCx,dblCy)
-
铰链C的坐标
mm
(dblDx,dblDy)
-
铰链D的坐标
mm
(dblEx,dblEy)
-
铰链E的坐标
mm
dblSx,dblSy
-
运动曲线的横向、纵向作图比例
-
dblWP、dblHP
-
PictureBox控件的宽度值、高度值
Twip
dblAngle_L
-
杆AB负角位移的最大绝对值
°
dblMax_f_CD
-
CD杆的最大角位移
°
dblMax_w_CD
-
CD杆的最大角速度
rad/s
dblMax_e_CD
-
CD杆的最大角加速度
rad/s2
dblMax_X_E
-
点E对x轴最大位移
mm
dblMax_X1_E
-
点E对x轴最大速度
mm/s
dblMax_X2_E
-
点E对x轴最大加速度
mm/s2
dblMax_Y_E
-
点E对y轴最大位移
mm
dblMax_Y1_E
-
点E对y轴最大速度
mm/s
dblMax_Y2_E
-
点E对y轴最大加速度
mm/s2
dblL_max
-
最长杆杆长
mm
dblL_min
-
最短杆杆长
mm
dblL_sum
-
各杆杆长之和
mm
intAngle_max
-
杆AB角位移的最大值
mm
intAngle_min
-
杆AB角位移的最小值
mm
intMarkBar
-
为0表示杆AB由intStartAngle位置转到intEndAngle为-1表示杆AB是摇杆,由intEndAngle位置返回intStartAngle
-
intMarkAngle
-
为1表示杆AB转过0度位置
-
为-1表示杆AB不转过0度位置
dblE21dblE22dblE23
-
中间变量
-
dblE31dblE32dblE33
-
-
dblAdblBdblCdblD
-
-
strStr1strStr2strStr3
-
-
4.程序源代码及运行结果
OptionExplicit
PrivateSubForm_Load()
cmdList.Enabled=False,cmdDraw.Enabled=False,cmdPlay.Enabled=False
DimstrStr1AsString,strStr2AsString,iAsInteger
strStr1="f_AB"&Chr(9)&"f_CD"&Chr(9)&"w_CD"&Chr(9)&"e_CD"
strStr2="X_E"&Chr(9)&"Vx_E"&Chr(9)&"Ax_E"&Chr(9)&"Y_E"&Chr(9)&"Vy_E"&Chr(9)&"Ay_E"
grdDataList.AddItem(strStr1&Chr(9)&strStr2)
grdDataList.ColWidth(0)=600
grdDataList.RowHeight(0)=300
Fori=1To9
grdDataList.ColWidth(i)=(grdDataList.Width-1000)/9
Nexti
EndSub
PrivateSubcmdRun_Click()
DimiAsInteger
DimdblL_maxAsDouble,dblL_minAsDouble,dblL_sumAsDouble
Fori=0To5
IfVal(txtLength(i).Text)<=0Then
MsgBox"请正确输入",vbInformation+vbOKOnly,"消息框"
txtLength(i).Text=""
ExitSub
EndIf
Next
dblL_min=Val(txtLength(0).Text)
Fori=0To3
IfVal(txtLength(i).Text) IfVal(txtLength(i).Text)>dblL_maxThendblL_max=Val(txtLength(i).Text) dblL_sum=dblL_sum+Val(txtLength(i).Text) Next IfdblL_max>dblL_sum-dblL_maxThen MsgBox"无法装配! 最长杆杆长应小于其余三杆杆长之和! ",vbInformation+vbOKOnly,"消息框" ExitSub EndIf ConstIP=3.1415936 dblL_AB=Val(txtLength(0).Text) dblL_BC=Val(txtLength (1).Text) dblL_CD=Val(txtLength (2).Text) dblL_AD=Val(txtLength(3).Text) dblN=Val(txtLength(4).Text) dblL_BE=Val(txtLength(5).Text) dblF_BE=Val(txtLength(6).Text) dblW_AB=2*PI*dblN/60 dblE_AB=0 IfoptClockWise.Value=TrueThen intCW=-1 Else intCW=1 EndIf IfoptPosition.Value=TrueThenintM=1 Else intM=-1 EndIf CallModule2.Angle_AB cmdList.Enabled=True,cmdDraw.Enabled=True,cmdPlay.Enabled=True EndSub PrivateSubcmdExit_Click() UnloadMe EndSub PrivateSubcmdList_Click() DimdblF_CD,dblW_CD,dblE_CD,X_E,X1_E,X2_E,Y_E,Y1_E,Y2_EAsDouble DimiAsInteger,intTempAsInteger,strStr1AsString,strStr2AsString,strStr3AsString Fori=0To9 grdDataList.ColAlignment(i)=flexAlignCenterCenter Next IfAbs(intEndAngle-intStartAngle)<360Then intTemp=1 Else intTemp=30 EndIf Fori=intStartAngleTointEndAngleStepintCW*intTemp CallModule1.YDFX(i,dblF_CD,dblW_CD,dblE_CD,X_E,X1_E,X2_E,Y_E,Y1_E,Y2_E) strStr1=Format(Str(dblF_CD),"0.00")&Chr(9)&Format(dblW_CD,"0.00")&Chr(9)&Format(dblE_CD,"0.00") strStr2=Format(Str(X_E),"0.00")&Chr(9)&Format(X1_E,"0.00")&Chr(9)&Format(X2_E,"0.00") strStr3=Format(Str(Y_E),"0.00")&Chr(9)&Format(Y1_E,"0.00")&Chr(9)&Format(Y2_E,"0.00") grdDataList.AddItem(Str(i)&Chr(9)&strStr1&Chr(9)&strStr2&Chr(9)&strStr3) Next cmdList.Enabled=False EndSub PrivateSubcmdDraw_Click() DimdblWPAsDouble,dblHPAsDouble,iAsInteger dblWP=Abs(picDraw(0).ScaleWidth) dblHP=Abs(picDraw(0).ScaleHeight) Fori=0To8 picDraw(i).Cls picDraw(i).ScaleMode=1 picDraw(i).DrawStyle=0 picDraw(i).DrawWidth=1.5 picDraw(i).Scale(-120,dblHP/2)-(dblWP-120,-dblHP/2) picDraw(i).Line(0,0)-(dblWP-160,0) picDraw(i).Line(dblWP-160,0)-Step(-120,120) picDraw(i).Line(dblWP-160,0)-Step(-120,-120) picDraw(i).CurrentX=dblWP-700 picDraw(i).CurrentY=250 picDraw(i).Print"f_AB" picDraw(i).CurrentX=-120 picDraw(i).CurrentY=-10 picDraw(i).Print"0" picDraw(i).Line(0,dblHP/2-60)-(0,-(dblHP/2-60)) picDraw(i).Line(0,dblHP/2-60)-Step(-120,-120) picDraw(i).Line(0,dblHP/2-60)-Step(120,-120) picDraw(i).CurrentX=160 picDraw(i).CurrentY=dblHP/2-60 SelectCasei Case0 picDraw(i).Print"f_CD" Case1 picDraw(i).Print"w_CD" Case2 picDraw(i).Print"e_CD" Case3 picDraw(i).Print"X_E" Case4 picDraw(i).Print"Vx_E" Case5 picDraw(i).Print"ax_E" Case6 picDraw(i).Print"Y_E" Case7 picDraw(i).Print"Vy_E" Case8 picDraw(i).Print"ay_E" EndSelect Next cmdDraw.Enabled=False tmrDraw.Enabled=True EndSub PrivateSubtmrDraw_Timer() DimdblWPAsDouble,dblHPAsDouble,iAsInteger StaticjAsInteger dblWP=Abs(picDraw(0).ScaleWidth) dblHP=Abs(picDraw(0).ScaleHeight) DimdblMax_f_CD,dblMax_w_CD,dblMax_e_CDAsDouble Dimdblmax_X_EAsDouble,dblmax_X1_EAsDouble,dblmax_X2_EAsDouble Dimdblmax_Y_EAsDouble,dblmax_Y1_EAsDouble,dblmax_Y2_EAsDouble DimdblF_AB,dblF_BC,dblF_CD,dblW_BC,dblW_CD,dblE_BC,dblE_CDAsDouble DimX_E,X1_E,X2_E,Y_E,Y1_E,Y2_EAsDouble Fori=intStartAngleTointEndAngleStepintCW*1 CallModule1.YDFX(i,dblF_CD,dblW_CD,dblE_CD,X_E,X1_E,X2_E,Y_E,Y1_E,Y2_E) IfAbs(dblF_CD)>dblMax_f_CDThendblMax_f_CD=Abs(dblF_CD) IfAbs(dblW_CD)>dblMax_w_CDThendblMax_w_CD=Abs(dblW_CD) IfAbs(dblE_CD)>dblMax_e_CDThendblMax_e_CD=Abs(dblE_CD) IfAbs(X_E)>dblmax_X_EThendblmax_X_E=Abs(X_E) IfAbs(X1_E)>dblmax_X1_EThendblmax_X1_E=Abs(X1_E) IfAbs(X2_E)>dblmax_X2_EThendblmax_X2_E=Abs(X2_E) IfAbs(Y_E)>dblmax_Y_EThendblmax_Y_E=Abs(Y_E) IfAbs(Y1_E)>dblmax_Y1_EThendblmax_Y1_E=Abs(Y1_E) IfAbs(Y2_E)>dblmax_Y2_EThendblmax_Y2_E=Abs(Y2_E) Nexti DimdblSxAsDouble,dblSyAsDouble dblSx=(dblWP-240)/360 i=intStartAngle+j CallModule1.YDFX(i,dblF_CD,dblW_CD,dblE_CD,X_E,X1_E,X2_E,Y_E,Y1_E,Y2_E) lblRealtimeAB.Caption=Str(i) dblSy=(dblHP/2-240)/dblMax_f_CD picDraw(0).PSet(i*dblSx,dblF_CD*dblSy) lblRealtime(0).Caption=Format(Str(dblF_CD*dblSy),"0.00") dblSy=(dblHP/2-240)/dblMax_w_CD picDraw (1).PSet(i*dblSx,dblW_CD*dblSy) lblRealtime (1).Caption=Format(Str(dblW_CD*dblSy),"0.00") dblSy=(dblHP/2-240)/dblMax_e_CD picDraw (2).PSet(i*dblSx,dblE_CD*dblSy) lblRealtime (2).Caption=Format(Str(dblE_CD*dblSy),"0.00") dblSy=(dblHP/2-240)/dblmax_X_E picDraw(3).PSet(i*dblSx,X_E*dblSy) l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 最终 作业