77范文网 - 专业文章范例文档资料分享平台

vb编程 课程设计说明书

来源:网络收集 时间:2019-04-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

目录

一、 设计任务书…………………………………

二、 数学模型的建立……………………………

三、 程序流程图…………………………………

四、 程序主体…………………………………… 五、 控件名称……………………………………

六、 运行结果……………………………………

七、 设计小结…………………………………… 八、 主要参考资料………………………………

四、程序主体

Option Explicit

Public L_ab As Double, L_bc As Double, L_cd As Double, L_ad As Double Public N As Double, W_AB As Double, E_AB As Double Public intM As Integer, intCW As Double

Public intstartangle As Double, intendangle As Double Const PI As Double = 3.1415926

Public Sub YDFX(i, L_a, L_b, F_BC, F_CD, W_BC, W_CD, E_BC, E_CD, X_E, Y_E, Vx_E, Vy_E, Ax_E, Ay_E)

Dim F_AB As Double, A As Double, B As Double, C As Double, D As Double, sxy As Double

F_AB = i * PI / 180

L_ab = Val(Txtlength(0).Text) L_bc = Val(Txtlength(1).Text) L_cd = Val(Txtlength(2).Text) L_ad = Val(Txtlength(3).Text)

N = Val(frmmain.Txtlength(4).Text) L_a = Val(Txtlength(5).Text) L_b = Val(Txtlength(6).Text) sxy = Val(frmmain.txtscale.Text) W_AB = PI * N / 30

A = L_ad - L_ab * Cos(F_AB) B = -L_ab * Sin(F_AB)

C = (A ^ 2 + B ^ 2 + L_cd ^ 2 - L_bc ^ 2) / (2 * L_cd) D = A ^ 2 + B ^ 2 - C ^ 2

'计算杆cd得角位移

F_CD = 2 * Atn((B + Sqr(D)) / (A - C)) If F_CD < 0 Then F_CD = F_CD - 2 * PI '计算杆bc得角位移

F_BC = Atn((B + L_cd * Sin(F_CD)) / (A + L_cd * Cos(F_CD)))

'计算BC,CD 杆的角速度

W_BC = -(W_AB * L_ab * Sin(F_AB - F_CD)) / (L_bc * Sin(F_BC - F_CD)) W_CD = (W_AB * L_ab * Sin(F_AB - F_BC)) / (L_cd * Sin(F_CD - F_BC)) '计算bc杆角加速度

Dim E21 As Double, E22 As Double, E23 As Double E21 = -L_ab * W_AB ^ 2 * Cos(F_AB - F_CD) E22 = -L_bc * W_BC ^ 2 * Cos(F_BC - F_CD) E23 = L_cd * W_CD ^ 2

E_BC = (E21 + E22 + E23) / (L_bc * Sin(F_BC - F_CD)) '计算cd 的角加速度

Dim E31 As Double, E32 As Double, E33 As Double E31 = L_ab * (W_AB ^ 2) * Cos(F_AB - F_BC) E32 = L_bc * W_BC ^ 2

E33 = -L_cd * (W_CD ^ 2) * Cos(F_CD - F_BC)

E_CD = (E31 + E32 + E33) / (L_cd * Sin(F_CD - F_BC)) '计算xe,ye

X_E = L_ab * Cos(F_AB) + Sqr(L_a ^ 2 + L_b ^ 2) * Cos(F_BC + Atn(L_b / L_a))

Y_E = L_ab * Sin(F_AB) + Sqr(L_a ^ 2 + L_b ^ 2) * Sin(F_BC + Atn(L_b / L_a))

'计算e的速度

Vx_E = -L_ab * W_AB * Sin(F_AB) - Sqr(L_a ^ 2 + L_b ^ 2) * W_BC * Sin(F_BC + Atn(L_b / L_a))

Vy_E = L_ab * W_AB * Sin(F_AB) + Sqr(L_a ^ 2 + L_b ^ 2) * W_BC * Cos(F_BC + Atn(L_b / L_a))

'计算e的加速度

Ax_E = -L_ab * (W_AB ^ 2) * Cos(F_AB) - Sqr(L_a ^ 2 + L_b ^ 2) * E_BC * Sin(F_BC + Atn(L_b / L_a)) - Sqr(L_a ^ 2 + L_b ^ 2) * (W_BC ^ 2) * Cos(F_BC + Atn(L_b / L_a))

Ay_E = -L_ab * (W_AB ^ 2) * Sin(F_AB) + Sqr(L_a ^ 2 + L_b ^ 2) * E_BC * Cos(F_BC + Atn(L_b / L_a)) - Sqr(L_a ^ 2 + L_b ^ 2) * (W_BC ^ 2) * Sin(F_BC + Atn(L_b / L_a))

'单位换算

F_BC = F_BC * 180 / PI F_CD = F_CD * 180 / PI X_E = X_E * 180 / PI Y_E = Y_E * 180 / PI End Sub

Private Sub Form_Load() Cmdlist.Enabled = False

Cmddraw.Enabled = False Cmdplay.Enabled = False

Dim strStr1 As String, strStr2 As String Dim i As Integer

strStr1 = \ strStr2 = \& Chr(9) & \Chr(9) & \& Chr(9) & \& Chr(9) & \

grdDataList.AddItem (strStr1 & Chr(9) & strStr2) grdDataList.ColWidth(0) = 600 grdDataList.RowHeight(0) = 300 For i = 1 To 9

grdDataList.ColWidth(i) = (grdDataList.Width - 1000) / 9 Next i

Label3.Caption = \此程序由邵小伟开发\ Label3.ForeColor = vbRed Label3.FontSize = 15 Label3.AutoSize = True End Sub

Sub mymove()

Label3.Move Label3.Left + 50, Label3.Top

If Label3.Left > frmmain.Width Then Label3.Left = 0 End Sub

Private Sub timer1_timer() Call mymove

End Sub

Private Sub cmdrun_Click() Command6.Enabled = True Cmdlist.Enabled = True Cmddraw.Enabled = True Cmdplay.Enabled = True

Dim i As Integer

Dim L_a As Double, L_b As Double, L_ab As Double, L_bc As Double, L_cd As Double, L_ad As Double

Dim L_max As Double, L_min As Double, L_sum As Double '判断各数

据的合法性

'条件1:各参数应大于0 For i = 0 To 6

If Val(Txtlength(i).Text) <= 0 Then

MsgBox \请输入正确的\& Label1(i).Caption, vbInformation + vbOKOnly, \消息框\

Txtlength(i).Text = \ Exit Sub End If Next i

'最长杆杆长应小于其余三杆杆长之和 L_min = Val(Txtlength(0).Text) For i = 0 To 3

If Val(Txtlength(i).Text) < L_min Then L_min = Val(Txtlength(i).Text) If Val(Txtlength(i).Text) > L_max Then L_max = Val(Txtlength(i).Text) L_sum = L_sum + Val(Txtlength(i).Text) Next i

If L_max > L_sum - L_max Then

MsgBox \无法装配!最长杆杆长应小于其余三杆杆长之和!\vbInformation + vbOKOnly End If

'条件2:曲柄AB为最短杆

If Val(Txtlength(0).Text) <> L_min Then Exit Sub

'条件3:最长杆和最短杆杆长之和应小于其余两杆杆长之和 If L_max + L_min > L_sum - (L_max + L_min) Then Exit Sub '为变量赋值

L_a = Val(Txtlength(5).Text) L_b = Val(Txtlength(6).Text)

L_ab = Val(Txtlength(0).Text) '各杆长度 L_bc = Val(Txtlength(1).Text) L_cd = Val(Txtlength(2).Text) L_ad = Val(Txtlength(3).Text)

N = Val(Txtlength(4).Text) '曲柄AB的转速.角速度.角加速度 W_AB = PI * N / 30 E_AB = 0

If Optclockwise.Value = True Then '杆AB转动方向为顺时针 intCW = -1

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库vb编程 课程设计说明书在线全文阅读。

vb编程 课程设计说明书.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/599113.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: