摆动导杆机构VB程序

合集下载

VB编程序的基本结构

VB编程序的基本结构

Case 9, 10
Msgbox ("Greater than 8“)
Case Else
Msgbox ("Not between 1 and 10“)
End Select
例:编写程序,当输入X的值后用 Selct Case语句 计算输出Y的值。
Private Sub Button1_Click(ByVal _ sender As System.Object, ByVal e As _ System.EventArgs) Handles _ Button1.Click
InputBox的功能是等待并提示用户为程序运行 输入指定的数据,简称“输入对话框”。
MsgBox的功能是进行提示,用以确认某种程 序的操作,简称“消息框”。
本书目录
6
1. InputBox (输入对话框函数)
输入对话框一般由标题、提示信息、“确定” 按钮、“取消”按钮和一个供用户输入的文本框组 成。当用户将输入信息输入到文本框,并单击“确 定”按钮后,函数返回用户输入的字符串数据。当 单击“取消”按钮时,返回一个空字符串。
语法格式:变量名 = 表达式
功能: 计算赋值号“=”右边表达式的值,然后赋给赋
值号“=”左边的变量。
给变量赋值和设定属性是VB编程中常见的两个任务
如以下语句,
n=n+1
'计数累加
Label1.Text = "欢迎使用VB "
以下语句形式很常用:
• dim sum% , x%
sum=100 : x=5
Select语句举例
Dim Number% Number = Val(InputBox("输入整数"))

摆动导杆机构在低频振动攻丝机中的应用

摆动导杆机构在低频振动攻丝机中的应用

c bt n 叩p1 m cie h o Ni df ̄b i fel e e i aa z .Icnb c ue a o ian yv ri ig ah Tepp l a .ilyo rp em  ̄ s nl e t a ee i ao 1 n , t n e it a y . yd  ̄lddt t  ̄ ltg h cli
论:当曲柄长度与机架长度 之比小于 o1 , 动导杆机构可 足够精确地输 出正弦函数 :给出 了该机构在攻螺纹直径 为 硼; .时 摆 的低
频振动攻丝工作 台中的应用实例 。
关键 词 :摆动导杆机构 ;低频振动攻丝机 ;简谐扭振 ;振 动攻螺纹
中国分类号 :T l2l G0 H 1 ;T 565 文献标识码 :B 文章编号 :lO 一 8 1(O 2 2 8 —3 O l 38 20 l —10
o t r m flt nac rtl t ntert f h ue ul i c uae co y ̄a h ai o te e o
b m∞II 口 l a
cn a
kl ght h rc e  ̄ i es h |0 1 A a r pe v kn ubeo lwf q ec e t otebaein h sl ta. . . r l a l  ̄ igr l fo r un y n s e e ma e
T eA ̄laino O e a n h l l i f si l gGur a Mem i i L w FeunyVba o p igM ̄h l c o n ̄ adB r d s n o rqec irtn pn m i he
K irl g eJad n o
( o eeo ehncl n l tcl hei , C l f cai dEe r a E el g l g M aa ci n K n hg n e i f c neadTx nl y Km ig Yu a , 5O3 um a U i rt o S i c n eh o g , tm n . tm n 6O9 ) v sy e : o

摆动导杆机构课程设计

摆动导杆机构课程设计

摆动导杆机构课程设计一、课程目标知识目标:1. 学生能理解并掌握摆动导杆机构的基本概念、工作原理及其在工程中的应用。

2. 学生能够描述摆动导杆机构的运动特性,包括运动轨迹、速度和加速度的变化规律。

3. 学生能够运用相关的数学知识,分析摆动导杆机构的几何关系,并解决实际问题。

技能目标:1. 学生能够运用CAD软件绘制摆动导杆机构的三维模型,并进行简单的运动仿真。

2. 学生能够通过实验或模拟,观察和分析摆动导杆机构的运动状态,提出并解决问题。

3. 学生能够运用所学知识,设计简单的摆动导杆机构,实现特定的运动要求。

情感态度价值观目标:1. 学生能够培养对机械运动的兴趣,增强对机械设计、制造等相关专业的认识和认同。

2. 学生通过小组合作完成课程任务,培养团队协作精神和沟通能力。

3. 学生能够认识到摆动导杆机构在生活中的应用,提高对科学技术的认识和尊重,激发创新意识。

课程性质:本课程为机械设计基础课程,旨在帮助学生建立摆动导杆机构的基本理论,培养其运用CAD软件进行设计和分析的能力。

学生特点:学生为高中二年级学生,具备一定的物理、数学基础,对机械运动有一定了解,但对摆动导杆机构的认识有限。

教学要求:结合学生特点,注重理论与实践相结合,充分运用现代教学手段,激发学生的学习兴趣,提高其动手能力和解决问题的能力。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容本课程教学内容主要包括以下几部分:1. 摆动导杆机构的基本概念:介绍摆动导杆机构的定义、分类及其在工程中的应用。

- 教材章节:第二章第一、二节- 内容:摆动导杆机构的类型、特点及应用实例。

2. 摆动导杆机构的工作原理:讲解摆动导杆机构的运动原理、运动关系及运动特性。

- 教材章节:第二章第三节- 内容:摆动导杆机构的运动分析、几何关系、速度和加速度的计算。

3. 摆动导杆机构的设计与CAD软件应用:学习如何使用CAD软件进行摆动导杆机构的设计与运动分析。

基于VB与Matlab的曲柄摇杆机构设计

基于VB与Matlab的曲柄摇杆机构设计
关键词 : B M tb 曲柄摇 杆机 构 V aa l 设计
中图分类号 : 】 1 2 Hl
文献标识码 : B
文章编号: 0 68 (00 0 03 — 1 2— 86 2 1)2- 07 0 0 2
De i n o e Cr n c e e h n s Ba e n VB n a l b sg ft a k Ro k r M c a im s d o h a dM t a
rai t n meh d ew e n t b ttk sg o d a tg fVB a d Malb,a h ome a r n l i tr c n a y t e l a i t o sb t e n VB a d Mal .I a e o d a v na e o n t z o a a st e fr rh sa f e dy n e a e a d i e s o i f s
Ke r s VB; t b; r n c e c a i ; ei y wo d : Mal C a k Ro k rMe h ns d sg a m n
0 引言
曲柄摇杆 机构 是 工程 上典 型 传 动机 构之 一 , 在各 种 机 械、 仪器 中获得 了广泛应用 。曲柄摇杆机 构 的常 用设计方 法
( ) xc t 1 E eue方法
Reu sh:Malb E e ue . o t . x c t(. mma d ) a C n ”
功能较 弱。M tb是 M t W rs aa l a o 公司推出 的数学工 具软件 , h k
其科学计算功能强大, 在数值分析、 科学计算 、 算法开发、 建模
和仿真等方 面具有独特 的优势 , 用户界 面设计 的功能相 但其 对较弱。本 文综合利 用 V B与 M tb软件各 自的优点 , aa l 进行 了曲柄摇杆机构 的设 计 , 即利用 V B作为 前端开 发工具进 行

习题解答1-3章

习题解答1-3章

F34 F5 / cos 45 1414 N
Fb

F43

cd ac
1414 0.3535
500N
M b Fb lAB 500 100 50000 N mm
3.3 在图示曲柄滑块机构中,已知各构件的尺寸、转动副轴颈半径r及当量摩擦 系数fv,滑块与导路的摩擦系数f 。而作用在滑块3上的驱动力为Fd 。试求在图 示位置时,需要作用在曲柄上沿x—x方向的平衡力Fb(不计重力和惯性力)。
aBt A a n2 p' 105.9m / s2
2 aBt A / lAB 105.9 / 0.30165 351rad / s2
aA a pa 171.1m / s2
aS2 a p' s2 98.6m / s2
力分析:


FA

m1aA

2.75171.1
vB3 vB2 vB3B2
大小 ? 方向 ⊥CB
ω1lAB ⊥AB
? ∥ BC
vB2 1 lAB 10 0.03 0.3m / s
v

0.3 / 30

0.01
m/s mm
vD v pd 0.0114.5765 0.146m/ s vE v pe 0.0116.6 0.166m/ s
v=5m/s向上移动,试确定作用在各构件上的惯性力。
速度分析:

vB vA vBA

vBA
2
v ab 6.3685m / s
vBA lAB 6.3685/ 0.30165

21.1rad
/
s

摆动导杆机构的Matlab运动学仿真

摆动导杆机构的Matlab运动学仿真
但作图法设计精度较低且无法在设计过程中对所设计机构的运动性能进行仿真分析所以难以准确地满足工程需要matlab是目前国际上广泛使用的一种功能强大的数值计算和仿真软件利用该软件的仿真工具箱可以方便地实现对机构的动态仿真分析提高设计及分析效率从众多的设计方案中寻找出最佳设计方案提高设计水平和设计效率
Vol 21 No 2008202
p lot ( simout (: , 1) , simout (: , 4) , simout (: , 1) , si2 mout(: , 5) )
p lot ( simout (: , 1 ) , simout (: , 7 ) , simout (: , 1 ) , simout (: , 8) )
% u (6) = r3
% u (7) = theta3
r1 = 1000; r2 = 400;
%
a = [ cos ( u ( 7 ) ) - u ( 6 ) 3 sin ( u ( 7 ) ) ; sin ( u
(7) ) u (6) 3 cos ( u (7) ) ];
b = [ - u ( 1) 3 r2 3 sin ( u ( 5) ) - r2 3 u ( 2) ^2 3
cos( u (5) ) + 2 3 u ( 3) 3 u ( 4) 3 sin ( u ( 7 ) )
+ u (6) 3 u (4) ^23 cos( u (7) ) ;
u (1) 3 r2 3 cos ( u ( 5 ) ) - r2 3 u ( 2 ) ^2 3 sin ( u
(5) ) - 2 3 u ( 3) 3 u ( 4) 3 cos ( u ( 7 ) ) + u
M atlab是目前国际上广泛使用的一种功能强大的数

VBO软件操作手册

VBO软件操作手册

1.硬件 (4)1.1硬件` (4)1.2新手上路 (5)1.3LED 解释 (7)1.4电池 (7)1.5连接图 (8)1.6蜂鸣器声音 (10)2.使用技巧 (11)3.操作手则 (12)4.设置 VBOX (15)VBOX安装 (15)4.2Misc Channels其它通道 (16)4.4设置 (17)4.5Info (19)5.软件—新手上路 (20)5.1怎样做加速试验 (20)5.2怎样做制动实验 (20)5.3怎样通过图形化的界面查看测试结果 (20)5.5怎样在没有手提计算机连接的情况下进行试验 (21)6.软件–开始使用 (22)6.1主屏幕 (22)6.1.1用户设置前面板 (23)7.软件主菜单 (24)7.1File 文件 (24)7.1.1File load 文件载入 (24)7.1.2File save 文件保存 (24)7.1.3Replay file 文件回放 (24)7.1.4Repair/expand file 修补/扩充文件 (24)7.1.5Language语言 (24)7.2Options 选项 (24)7.2.1Unit of measurement测量单位 (24)7.2.2GPS cold start GPS 冷启动 (24)7.2.3 com口选择 (25)7.2.4Lock results until manually reset锁定结果直到手动复位 (25)7.2.5VBOX II & Pro Rev 4 (25)7.2.6 Measure distance using external trigger 使用外部触发器测量距离 (25)7.2.7Accel table columns 加速表纵列 (26)7.2.8Reset time when stationary 停止时把时间复位 (26)7.2.9Enable Slip angle calculations on Yaw sensor data 允许在偏航传感器数据上进行偏离角计算 (26)7.2.10Show Real Time Scope 显示实时范围 (26)7.2.11Put radius of turn in channel data 把转弯半径放到通道数据中 (26)7.2.12Delimiter for text files 文本文件的分隔符 (26)7.2.13Use target speed 1 for MFDD 使用的目标速度给MFDD (26)7.3Target speeds 目标速度 (26)7.3.1Test range 1 试验范围1 (26)7.3.2Test range 2试验范围2 (26)7.3.30 to 100 to 0 range 零到100到零范围 (27)7.4Real time plot 实时绘图 (27)7.5Select Run 选择运行 (28)7.5.1Default setups 缺省设置 (29)7.5.2Manual setup 手动设置 (31)7.6VBOX Setup VBOX 设置 (31)7.7Graph 图形 (31)7.8Start Finish 起点终点 (31)7.8.1Load start finish line and splits载入起/终点线和分离位置 (31)7.8.2Save start/finish line and splits保存起/终点线和分离位置 (32)7.8.3Start finish line length起/终点线的长度 (32)7.8.4Start finish line tolerance起终点线的公差 (32)7.8.5Accumulative split times 累计分离时间 (32)7.9.1Enable log file creation 允许记录文件产生 (32)7.9.2Include MFDD in logfile 在记录文件中包括MFDD (32)7.9.3Include test range 2 in logfile 在记录文件中包括试验范围2 (32)7.10Help 帮助 (32)8.GRAPH图形 (33)8.1概述 (33)8.2选择通道 (34)8.3设置外部输入信号的比例大小 (35)8.4键盘和鼠标指令 (36)8.5快捷键 (36)8.6定义起点/终点线和分离点。

机械原理课程设计VB编程

机械原理课程设计VB编程

机械原理课程设计VB编程一、课程目标知识目标:1. 让学生掌握VB编程的基本语法和结构,理解机械原理在编程中的应用。

2. 使学生能够运用VB编程实现简单的机械运动模拟,如直线运动、圆周运动等。

3. 帮助学生了解计算机辅助设计与机械原理的关联,提高对机械原理的认识。

技能目标:1. 培养学生运用VB编程解决实际机械问题的能力,提高编程实践操作技能。

2. 培养学生独立思考、团队协作的能力,能够与他人共同完成复杂的机械运动模拟项目。

情感态度价值观目标:1. 培养学生对机械原理和计算机编程的兴趣,激发学生的创新意识和探索精神。

2. 培养学生具备良好的编程习惯,注重代码规范和工程实践。

3. 引导学生关注机械行业的发展,认识到所学知识在现实生活中的应用价值。

课程性质:本课程为机械原理与计算机编程相结合的实践性课程,注重培养学生的动手能力和实际问题解决能力。

学生特点:学生已具备一定的机械原理基础,对计算机编程有一定了解,但实践操作经验不足。

教学要求:结合学生特点和课程性质,采用任务驱动、项目教学等方法,引导学生动手实践,实现课程目标。

在教学过程中,关注学生的个体差异,提供个性化的指导和帮助,确保学生能够达到预期的学习成果。

二、教学内容1. VB编程基础:变量定义、数据类型、运算符、控制结构(顺序、选择、循环)等基本语法知识。

教材章节:第一章 VB编程概述,第二章 VB编程基础。

2. 机械原理知识回顾:运动学基本概念、运动方程、力学模型等。

教材章节:第三章 机械原理基础。

3. VB编程在机械原理中的应用:利用VB编程实现机械运动模拟,包括直线运动、圆周运动等。

教材章节:第四章 VB编程在机械原理中的应用。

4. 项目实践:分组进行项目设计,实现具有一定难度的机械运动模拟。

教材章节:第五章 机械运动模拟项目实践。

5. 课程总结与拓展:总结所学知识,探讨机械原理与VB编程的结合在工程实践中的应用,引导学生进行拓展学习。

机械原理课程设计(VB版)2012概要

机械原理课程设计(VB版)2012概要

调用方法: call 过程名(参数表) call Link(0,0,0,0,0,0,i*10*Pi/180,W1,0,LAB,XB,YB,XBv,YBv,XBa,YBa)
2. Function 函数
[Public][Private] Function 函数名(参数表) 语句块 End Function 例如:
变量之间用 逗号隔开 定义方法举例: Public XB as double, YB as double Dim LAB as single, LBC as single Dim I as integer, FLAG as integer
三、算术、关系和逻辑运算符
1、算术运算符: + * / ^(乘方) 运算规则:先乘除后加减;乘方优先于乘除;函数优先于乘方; 括号最优先。 2、关系(比较)运算符:
七、子过程
1. Sub 子过程
[Public][Private] Sub 过程名(参数表) 语句块 End Sub 例如:
Public Sub Link(XA As Double, YA As Double, XAv As Double, YAv As Double, XAa As Double, YAa As Double, QAB As Double, WAB As Double, EAB As Double, LAB As Double, XB As Double, YB As Double, XBv As Double, YBv As Double, XBa As Double, YBa As Double) XB = XA + LAB * Cos(QAB) YB = YA + LAB * Sin(QAB) XBv = XAv - LAB * WAB * Sin(QAB) YBv = YAv + LAB * WAB * Cos(QAB) XBa = XAa - LAB * WAB ^ 2 * Cos(QAB) - LAB * EAB * Sin(QAB) YBa = YAa - LAB * WAB ^ 2 * Sin(QAB) + LAB * EAB * Cos(QAB) End Sub

VB编写机构运动仿真程序

VB编写机构运动仿真程序

V B编写机构运动仿真程序内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)VB编写机构运动仿真程序步骤1.建立工程:打开VisualBasic6.0应用程序,在NewProject中建立“StandardEXE”标准可执行文件。

2.设计应用程序的界面:将Form1窗口的Caption改为“铰链四杆机构运动仿真”。

在Form1窗口中添加2个按钮,Name分别取“Start”、“Stop”,Caption分别取“开始”,“停止”。

再添加一个时钟控件,将其“Enabled”属性设置为“False”,“Interval”属性设置为“1000”。

3.编写程序代码:程序代码是在代码窗口中编写的。

直接双击界面,打开代码窗口,首先定义机构参数,分别表示4个杆长尺寸:L1,L2,L3,L4;铰链B点的坐标bx,by;铰链C点的坐标cx,cy;4个杆的位置角angle1,angle2,angle3,sita4。

DimL1,L2,L3,L4,bx,by,cx,cyAsIntegerDimangle1,angle2,angle3,sita4AsDouble4.在窗体载入的子过程中添加代码用于实现窗口的初始化,包括定义窗口的大小,设置用户自定义的坐标范围及坐标原点,以及设置机构的初始参数。

PrivateSubForm_Load()Form1.Width=12000Form1.Height=8000ScaleTop=-1000ScaleLeft=-1500ScaleWidth=3000ScaleHeight=2000L1=300L2=500L3=550L4=600bx=by=cx=cy=0angle1=0.5angle2=angle3=sita4=0EndSub5.添加一个“Sub”子过程,用于实现计算并绘制机构图形。

PrivateSubDrawing()DimL,fei,aa,bb'中间过程变量L=Sqr(L1*L1+L4*L4-2*L1*L4*Cos(angle1-sita4))fei=Atn((L4*Sin(sita4)-L1*Sin(angle1))/(L4*Cos(sita4)-L1*Cos(angle1)))'下面为VB中计算反正弦和反余弦的公式'Arcsin(X)=Atn(X/Sqr(-X*X+1))'Arccos(X)=Atn(-X/Sqr(-X*X+1))+2*Atn(1)aa=(L2*L2-L*L-L3*L3)/(2*L*L3)angle3=Atn(-aa/Sqr(-aa*aa+1))+2*Atn(1)+feibb=(L*Sin(fei)+L3*Sin(angle3))/(L*Cos(fei)+L3*Cos(angle3)) angle2=Atn(bb)If(bb<0)Thenangle2=angle2+3.1415926bx=L1*Cos(angle1)by=-L1*Sin(angle1)cx=bx+L2*Cos(angle2)cy=by-L2*Sin(angle2)DrawWidth=2Line(0,0)-(bx,by),RGB(255,0,0)Line(bx,by)-(cx,cy),RGB(0,255,0)Line(cx,cy)-(L4,0),RGB(0,0,255)DrawWidth=5Line(0,0)-(L4,0)EndSub6.实现机构动画:双击开始、停止按钮以及时钟控件,加入代码实现机构动画。

基于VB的液压支架四连杆运动分析程序设计

基于VB的液压支架四连杆运动分析程序设计

基于VB的液压支架四连杆运动分析程序设计基于VB程序为编程平台,开发出一套可视界面的四连杆运动分析程序;实现对四连杆各个运动阶段的参数化设计,并计算出顶梁运动轨迹和双扭线最大横向摆幅;可以减轻设计人员出差配套时的劳动强度,提高前期設计效率;标签:液压支架;四连杆;运动分析;VB软件计算1 引言液压支架的设计重点主要取决于四连杆机构,根据液压支架的运动分析,合理的四连杆设计可以保证支架的结构稳定性和整体刚度,直接决定了顶梁的运动轨迹与掩护梁的运动姿态;同时四连杆机构设计是否合理直接导致支架前、后连杆的受力分布;设计的四连杆机构应该使支架顶梁前端点的运动轨迹呈近似直线,且支架整个伸收阶段顶梁前端点运动轨迹的最大横向摆幅应尽可能小;更好的提高对顶板的管理性能,使支架能承受较大的水平力。

目前液压支架的设计主要采用OPT软件、迈实软件、三维设计软件等方式;OPT主要鉴于系统、界面更新换代不支持等问题基本不再采用;迈实软件主要为购买为网络加密版,个人外地出差无法使用等问题;三维设计软件主要有采用Pro/E、SW、SE直接分析设计;本程序采用绿色小程序主要为用户提供界面友好、操作方便实现对四连杆机构各个高度位置的参数化计算;2 四连杆动作原理本文从液压支架四连杆机构运动学分析的基础出发,先以支架后连杆水平倾角为自变量X,并列出各个运动函数方程如下:依上图所示,以四连杆机构两个极限位角,以后连杆FH倾角X为自变量推导出液压支架运动学分析的所有公式,以0.0001弧度為循环步距,将上面各函数方程调用计算出已设置支架高度参数的极限角度。

3 程序设计实现下图为基于VB编程平台,开发出的可视界面的四连杆运动分析程序;实现对四连杆各个运动阶段的参数化设计,并计算出顶梁运动轨迹和双扭线最大横向摆幅;通过使用该程序可以减轻设计人员出差配套、做方案时的劳动强度,提高前期设计效率。

下面以ZZ11000/24/50D型支撑掩护式液压支架四连杆机构设计为例,说明该程序的设计和操作过程。

利用VB编程解决钢管杆备料问题

利用VB编程解决钢管杆备料问题


V+ -+ H  ̄) 2 2 (

结 语
在 物 资备 料过 程 中 ,基 于 V 的编程 软件 作 为 公司 的辅 助 工 B 别 表示“ 开始 测算 ”“ 除数 据 ” 退 出程 序 ”其 他 3 T x o 具 , 好地 解决 了钢 管杆 在 轧制长 度上 存在 误 差 的问题 , 效地 防 、清 和“ , 个 et x b 很 有 控 件的含 义分 别 为 “ 管杆 上 开 口尺 寸 ”“ 管杆 下 开 口尺寸 , I 丙 误 荠 而 浩 成 的 i 。 证 钢 管 杆 质量 , 高 了 工 作 效 率 。 r 钢 、钢 , 和 了 匾工 保 提 穸 主 杆的长 度 。整个软 件操 作简 单易行 , 合各 类备料 人 员使用 。 适

L・H( = 、 R/+ +

RS l- C O  ̄
将 ( 、3 的 n R 数值代 入上 式得 : 1 () ) 和 。

V2 ̄)+ H(X +- -2
一V2 ̄)咖 丁+- r ( 2 H-
3(H2( 2 -、 6 -+H) ̄ ) 04)R—( 2 RV+ r r2
钢 管杆 备料 的 宽 D 为 :
管的备料。 关键 词 : 钢 管 杆 : 料 VB; 备
钢 管杆 广泛 用于 国家 电 网建 设 , 有 占地面 积 小 、 形 美观 等 图 2右 图所示 ,确 定钢管 展开 后所 备料 的长 L和 宽 D 的大小 为多 具 外 最 特点 , 随着 中国农 电改造深入 开展 , 管杆 的市场 需求进 一步 加大 。 少 时 , 省料 ? 钢 V saB s 是 Mioot i l ai u c c sf公司 推 出 的一种 Wi O 应 用 程 序 r n WS d

在PPT中使用VBA实现单摆运动模拟

在PPT中使用VBA实现单摆运动模拟
了V B A 的运 用 ,对 基 于 V B A编 程 的 动 画 设 计 具备 一 定 的参 考 意 义 .
关键词 :P P l 1 软件 ;V B A语言 :单摆运 动;定时器

l 前言
利用微软 的 P o w e r P o i n t 进行 课件 制作 是一种流行方 法。
r h 于机械能 E是常值 ,对上式求导可得 。
t R o t a t i o n函数 ) 。
P P T的 V B A中没有直 线绕某点旋转 的函数 ,因此绕某
点 选 择 必 须 用 户 自 己实 现 。
具体 策略是先 绕直线 中心进行旋转 ,在移 动直线到 给
定端点 。
3 . 4 定 时器 处 理
在P P T的V B A 中未提 供窗 口定 时器实 现 ,也 未提 供
网 球 和 矩 形 对 象 ,如 图 2所 示 。

直线 ( 埘象
形 ( 对 象
图 1 单 摆 的 受 力分 析 图
如图 1 所 示 ,单摆 的周期仅 和摆 长 L相关 ,在高中 课
本中给f I I 了 周期 公 式 如下 :
T:2 1 【f 一
【 受 I 蛛 ( 对蒙 2 )
作者简 介:朱玉姗 ( 1 9 9 9 一 ) ,女 ,研 究 方 向 : O f k e应 用 软件开发。 收 稿 日期 :2 l 6 一 l 0 一 ( ) 4
E = 妻 m ( L ) + m g L ( 1 一 c o s O )
积 - - 翟 i 2 技 l 0 1 圬 7 与 . 0 罐 2 、 7 7
在小角度下 ,s i n O 可 以近似为 ,则上式变成

vb机构仿真课程设计

vb机构仿真课程设计

vb机构仿真课程设计一、课程目标知识目标:1. 掌握VB编程语言的基本语法和结构,理解其在机构仿真中的应用;2. 学会使用VB编写程序,实现简单的机构运动仿真;3. 了解机构仿真的基本原理,掌握相关概念和术语。

技能目标:1. 能够运用VB编程语言,设计并编写简单的机构仿真程序;2. 培养学生的问题分析能力,使其能够针对实际问题,运用所学知识进行机构仿真;3. 提高学生的程序调试和优化能力,使其能够对仿真程序进行有效改进。

情感态度价值观目标:1. 培养学生对计算机编程和机构仿真的兴趣,激发其探索精神和创新意识;2. 增强学生的团队合作意识,使其在课程实践中学会相互协作、共同进步;3. 引导学生认识到计算机编程在工程领域的重要性,培养其应用所学知识解决实际问题的信心。

本课程针对高中年级学生,结合学科特点,以VB编程为基础,注重培养学生的实际操作能力和问题解决能力。

课程目标既考虑了学生的认知水平,又兼顾了实用性,旨在让学生在掌握编程技能的同时,深入理解机构仿真在实际工程中的应用。

通过本课程的学习,学生将能够独立完成简单的机构仿真程序设计,为未来进一步学习和从事相关工作打下坚实基础。

二、教学内容1. VB编程基础:变量、数据类型、运算符、控制结构(顺序、循环、分支)、函数和子程序;2. VB界面设计:窗体、控件的基本属性和使用方法,以及事件处理机制;3. 机构仿真原理:机构运动分析基本理论,包括自由度计算、运动方程建立和求解;4. VB实现机构仿真:利用VB编写程序,实现机构的运动仿真,包括运动轨迹、速度和加速度的图形化展示;5. 实践项目:结合实际案例,设计并实现一个简单的机构仿真程序,如四杆机构、曲柄滑块机构等。

教学内容按照以下进度安排:第一周:VB编程基础学习,重点掌握变量、数据类型和控制结构;第二周:学习VB界面设计,熟悉窗体和控件的使用方法;第三周:介绍机构仿真原理,理解并掌握基本概念;第四周:利用VB实现机构仿真,学习运动轨迹、速度和加速度的图形化展示方法;第五周:实践项目,结合所学知识,设计并实现一个简单的机构仿真程序。

摆动导杆机构运动特性分析

摆动导杆机构运动特性分析

摆动导杆机构运动特性分析作者:陶军张楷强来源:《科技创新导报》 2014年第35期陶军张楷强(沈阳理工大学机械工程学院辽宁沈阳 110159)摘要:该文研究了摆动导杆机构的行程速比系数及影响因素,计算了相关运动参数。

研究结果表明,行程速比系数K主要与曲柄长度有关,行程速比系数K随曲柄长度的增大而增大,曲柄越长,行程速比系数K值越大,即机构的急回运动越明显,急回特性受到运动稳定性的影响;随着极位夹角的增大,输出滑块的工作行程速度平稳性略有好转。

应用ADAMS软件对摆动导杆机构进行了运动仿真分析,得到了摆动导杆机构的运动线图,并应用ZNH-B型连杆机构实验台对急回特性的理论分析进行了实验验证,表明该文运动参数的选取是合理的。

关键词:摆动导杆机构急回特性极位夹角行程速比系数中图分类号:TP311 文献标识码:A 文章编号:1674-098X(2014)12(b)-0081-02摆动导杆机构是在曲柄滑块机构中将曲柄作为机架演化而来的,将曲柄的连续回转运动转化为导杆的往复摆动,故称为摆动导杆机构。

摆动导杆机构在牛头刨床、插床、低频振动攻丝机和缆线爬行机器人[1-3]等机构中得到了广泛的应用,对其运动参数进行分析研究,对于优化设计摆动导杆机构,提高工作效率具有重要意义。

该文研究了摆动导杆机构的急回特性及影响因素,应用ADAMS软件对其进行了运动仿真分析,并应用ZNH-B型连杆机构实验台对运动参数的合理性进行了实验验证。

1 摆动导杆机构相关参数的确定如图1所示,ABCDE为摆动导杆偏置滑块机构运动简图,A1B1C1D1E1和A2B2C2D2E2是其两个极限位置,E为偏置滑块,、、和分别表示AC、AB、CD和DE的长度,AB为曲柄,为极位夹角。

工作时,以曲柄AB为原动件,带动滑块B在导杆DC中往复移动,同时,导杆DC带动偏置滑块E在水平导轨上往复运动,设滑块E向左运动为工作行程,要求速度平稳,工作结束空程返回时,要求速度较快,具有急回特性,以提高工作效率。

基于VB与Matlab的船舶摇荡运动仿真

基于VB与Matlab的船舶摇荡运动仿真

基于VB与Matlab的船舶摇荡运动仿真晁大海;宋杨【摘要】基于船舶摇荡运动的控制理论,建立船舶横摇运动和纵摇运动的状态运动方程,求解出船舶运动姿态,同时建立了横摇与垂荡耦合的时域模型,利用SQL Server数据库存储数据信息,通过OpenGL建立船舶三维模型,用存储的运动姿态数据驱动模型实现运动仿真.本文应用VB建立了可视化程序主界面,在主界面输入真实船舶参数和仿真环境参数,得到二维时域波形图以及三维仿真动态图,从而方便、快捷地实现了实船摇荡运动仿真的可视化,并总结实船摇荡运动规律,为船舶设计提供依据,为船舶的操纵提供建议.【期刊名称】《舰船科学技术》【年(卷),期】2018(040)010【总页数】4页(P63-66)【关键词】运动仿真;船舶;VB;Matlab【作者】晁大海;宋杨【作者单位】海军驻大连地区军事代表室,辽宁大连 116013;大连测控技术研究所,辽宁大连 116013【正文语种】中文【中图分类】U662.90 引言随着计算机辅助设计的发展,三维船舶模型建立软件层出不穷。

同时由于虚拟现实技术的发展以及OPENGL图形库可提供强大的底层命令,为船舶设计可视化提供了程序支撑。

源于实船在随机海况中运动的可视化可以使船舶设计人员能够更直观地了解实船的运动性能[1–2],同时,随着飞速发展的计算机技术,可视化技术越来越逼真,近年来,计算机辅助设计和科学计算的可视化已在船舶设计领域屡见应用,发展成为船舶在随机海况中运动机理研究的重要手段之一。

由于船舶在随机海况中运动的复杂性,计算机仿真研究已成为必然,即可以直观再现船舶运动过程,又可以研究极端海况下实船的运动情况,总结运动规律,为设计人员提供参考,为操作人员提供建议,因此实船运动仿真研究越来越得到学术上的关注。

在实船运动仿真的研究中,首先要建立数学模型,并求解。

在此过程中会需要大批量的矩阵计算,并对分析结果实时图形化显示。

Matlab是MathWorks公司开发的科学计算环境,具有强大的计算绘图能力,提供大量的函数库、工具箱,几乎涵盖了所有的工程计算领域,被誉为“演算纸”式的工程计算工具[3–5]。

四连杆结构动画

四连杆结构动画
BD AB2 DA2 2 AB DA Cos( )
B2
A
D
B3
四连杆结构动画
界面布局
VB6.0默认窗体 控件
command控件 Timer控件 Label控件 Text控件 如图:
运行效果
如图:单击【启动】运行动画,单击【停止】停止动画。
程序代码
程序代码仅供参考
BDC ADB ADC BD2 AD2 AB2 ADB ArcCos 2 BD AD 2 CD BD2 CB 2 BDC ArcCos 2 BD CD
B2
D
B3
C3
C2
BD2 AB2 DA2 2 AB DA Cos( )
:为BAD
四连杆结构动画
VB-小程序实例
ห้องสมุดไป่ตู้连杆结构动画
C3 C1 C2

运动分析
B3
四连杆机构如图:AB绕A点圆周转动, BC为连杆,带动CD摆动。
B2

程序分析
ADB BDC ADC BD2 AD2 AB2 2 BD AD 2 CD BD2 CB 2 BDC ArcCos 2 BD CD ADB ArcCos
A
B1
D
C3
角度: 连接BD,可得: 当:0<θ <180
C2
B3
B2
BD2 AB2 DA2 2 AB DA Cos( )
:为BAD
BD AB2 DA2 2 AB DA Cos( )
A
D
四连杆结构动画

程序分析
A B1
C3
C1 C2
角度: 连接BD,可得: 当:180<θ <360

基于VB的插床导杆机构分析系统_朱玉

基于VB的插床导杆机构分析系统_朱玉

第1卷 第4期2003年12月南京工程学院学报(自然科学版)Journal of Nanji ng Inst i tute o f T e chnolog y(Nat ural Science Edition)Vol.1,No.4Dec.,2003 文章编号:1672-2558(2003)04-0049-05基于VB 的插床导杆机构分析系统收稿日期:2003-09-16作者简介:朱玉(1970-),男,学士,讲师,主要从事机械设计教学与研究工作。

朱 玉(南京工程学院机械工程系,江苏 南京,210013)摘 要:为开发插床导杆机构分析系统软件,在建立导杆机构数学模型的基础上,用V B 编程实现临床导杆机构运动和受力分析以及飞轮计算的电算化,着重探讨如何有效地将V B 界面友好的特点应用于机构的分析与设计中。

应用分析表明该软件可应用于实践。

关键词:插床导杆机构;运动分析;动态静力分析;飞轮设计中图分类号:T P311.52文献标识码:AAnalysis System of Leader Mechanism of Slotting Machine Based on VBZHU Yu(Dept.of M echanical Engineering,Nanjing Institute of Technalogy,Nanjing 210013,China)Abstract:T his paper presents the process of developing the software of analysis system of leader mechani sm of slotting machine with V B6.0,discusses emphatically how to apply effectiv ely the friendly character istic of VB inter face in t he analysis and design of the machine.Key words:leader mechanism of slotting machine;kinematics analysis;dy namic analysis of static force;desig ning of t heflyw heel1 引言目前,计算机技术已经在机构分析中得到普遍而深入地应用,并由此推动了相关学科的快速发展。

自己编写的VB上位机控制舵机

自己编写的VB上位机控制舵机

(1)上图是自己编写的上位机界面大致分为功能部分有端口选择,用以选择合适的端口进行串口通信,波特率选择,打开与关闭端口,小车控制部分是对车体进行准确有效的控制,用文本框来显示VB与单片机之间的通信内容。

舵机控制部分,通过设定角度按键,滑动滚动条把值赋给当前角度文本框,达到对舵机的有效控制。

(2)为了便于布局,应用frame 控件建立区域,用右列文本框实时读取舵机当前角度。

端口与波特率的选择应用combobox控件。

指示灯部分则用picturebox控件添加一个蓝色的图片用来显示端口的开关状态。

(3)每个MSComm控件对应于一个串行端口。

使用多个串行口时,要使用多个MSComm控件。

(4)为随时判断端口是否开启,并用黑红等来显示当前状态,运用timer 控件,将interval 设置为100,双击控件并输入如下代码。

则程序每隔100ms执行一次下面的程序。

(5)同时如果在文本框中输入0~180之间的度数,点击“设定”按钮,需要将其度数对应的数值赋给HScroll.value,然后发给单片机进行处理。

(6)由于PC与单片机之间的数据传输要以字节型数据传输,而字节数据的范围为0~256,所以数据设置为50~200传送到单片机,然后对字符进行数字转化,最后转化为我们所需要的舵机识别参数。

Private Sub Combo1_Click()If Combo1.Text = "COM1" ThenmPort = 1ElseIf Combo1.Text = "COM2" ThenmPort = 2ElseIf Combo1.Text = "COM3" ThenmPort = 3ElsemPort = 4End IfEnd SubPrivate Sub Combo2_Click()If Combo2.Text = "9600" ThenMSComm1.Settings = "9600,N,8,1"ElseIf Combo2.Text = "115200" ThenMSComm1.Settings = "115200,N,8,1"End IfEnd SubPrivate Sub Command1_Click()If MSComm1.PortOpen = False ThenMSComm1.PortOpen = True '打开串口End IfEnd SubPrivate Sub Command10_Click()If Text6.Text = "" ThenMsgBox "未输入数值", 5, "警告" '出现警告的提示框,提示"未输入数值"ElseIf Text6.Text < 0 Or Text6.Text > 180 ThenMsgBox "0-180为有效数值", 5, "警告" '出现警告的提示框,提示"0-180为有效数值"ElseHScroll3.Value = Format((Text6.Text + 60) * 5 / 6, 0)End IfEnd SubPrivate Sub Command11_Click()If Text8.Text = "" ThenMsgBox "未输入数值", 5, "警告" '出现警告的提示框,提示"未输入数值"ElseIf Text8.Text < 0 Or Text8.Text > 180 ThenMsgBox "0-180为有效数值", 5, "警告" '出现警告的提示框,提示"0-180为有效数值"ElseHScroll4.Value = Format((Text8.Text + 60) * 5 / 6, 0)End IfEnd SubPrivate Sub Command12_Click()Text1.Text = "" '清空回收区End SubPrivate Sub Command13_Click()If Text10.Text = "" ThenMsgBox "未输入数值", 5, "警告" '出现警告的提示框,提示"未输入数值"ElseIf Text10.Text < 0 Or Text10.Text > 180 ThenMsgBox "0-180为有效数值", 5, "警告" '出现警告的提示框,提示"0-180为有效数值"ElseHScroll5.Value = Format((Text10.Text + 60) * 5 / 6, 0)End IfEnd SubPrivate Sub Command14_Click()If Text12.Text = "" ThenMsgBox "未输入数值", 5, "警告" '出现警告的提示框,提示"未输入数值"ElseIf Text12.Text < 0 Or Text12.Text > 180 ThenMsgBox "0-180为有效数值", 5, "警告" '出现警告的提示框,提示"0-180为有效数值"ElseHScroll6.Value = Format((Text12.Text + 60) * 5 / 6, 0)End IfEnd SubPrivate Sub Command2_Click()If Text2.Text = "" ThenMsgBox "未输入数值", 5, "警告" '出现警告的提示框,提示"未输入数值"ElseIf Text2.Text < 0 Or Text2.Text > 180 ThenMsgBox "0-180为有效数值", 5, "警告" '出现警告的提示框,提示"0-180为有效数值"ElseHScroll1.Value = Format((Text2.Text + 60) * 5 / 6, 0)End IfEnd SubPrivate Sub Command3_Click()If MSComm1.PortOpen = True ThenMSComm1.PortOpen = False '关闭串口End IfEnd SubPrivate Sub Command4_Click()EndEnd SubPrivate Sub Command9_Click()If Text4.Text = "" ThenMsgBox "未输入数值", 5, "警告" '出现警告的提示框,提示"未输入数值"ElseIf Text4.Text < 0 Or Text4.Text > 180 ThenMsgBox "0-180为有效数值", 5, "警告" '出现警告的提示框,提示"0-180为有效数值"ElseHScroll2.Value = Format((Text4.Text + 60) * 5 / 6, 0)End IfEnd SubPrivate Sub Form_Load()MSComm1.RThreshold = 1MSComm1.SThreshold = 1MSComm1.InputLen = 0MSComm1.InputMode = comInputModeTextMSComm1.InBufferCount = 0Timer1.Enabled = Timer1.Enabled '窗体的加载时,同时定时器控件事件Timer2.Enabled = Timer2.EnabledEnd SubPrivate Sub HScroll1_Change()MSComm1.Output = "1"’发送1表示控制舵机1Dim r1 As StringText3.Text = Format(HScroll1.Value * 1.2 - 60, "0") '显示当前角度MSComm1.OutBufferCount = 0 '...清空输出寄存器r1 = HScroll1.ValueMSComm1.Output = r1End SubPrivate Sub HScroll2_Change()MSComm1.Output = "2" ’发送2表示控制舵机2Dim r2 As StringText5.Text = Format(HScroll2.Value * 1.2 - 60, "0")MSComm1.OutBufferCount = 0 '...清空输出寄存器r2 = HScroll2.ValueMSComm1.Output = r2End SubPrivate Sub HScroll3_Change()MSComm1.Output = "3" ’发送3表示控制舵机3Dim r3 As StringText7.Text = Format(HScroll3.Value * 1.2 - 60, "0") '显示当前角度MSComm1.OutBufferCount = 0 '...清空输出寄存器r3 = HScroll3.ValueMSComm1.Output = r3End SubPrivate Sub HScroll4_Change() ’发送4表示控制舵机4 MSComm1.Output = "4"Dim r4 As StringText9.Text = Format(HScroll4.Value * 1.2 - 60, "0") '显示当前角度MSComm1.OutBufferCount = 0 '...清空输出寄存器r4 = HScroll4.ValueMSComm1.Output = r4End SubPrivate Sub HScroll5_Change()MSComm1.Output = "5" ’发送5表示控制舵机5Dim r5 As StringText11.Text = Format(HScroll5.Value * 1.2 - 60, "0") '显示当前角度MSComm1.OutBufferCount = 0 '...清空输出寄存器r5 = HScroll5.ValueMSComm1.Output = r5End SubPrivate Sub HScroll6_Change()MSComm1.Out put = "6" ’发送6表示控制舵机6Dim r6 As StringText13.Text = Format(HScroll6.Value * 1.2 - 60, "0") '显示当前角度MSComm1.OutBufferCount = 0 '...清空输出寄存器r6 = HScroll6.ValueMSComm1.Output = r6End SubPrivate Sub Timer1_Timer()If MSComm1.PortOpen = ture ThenPicture1.Visible = FalseElsePicture1.Visible = TrueEnd IfEnd SubPrivate Sub Timer2_Timer()Dim inbuff As StringDim i As IntegerIf MSComm1.InBufferCount > 0 Then '程序检查输入缓冲区中是否有数据,若有数据inbuff = MSComm1.InputText1.Text = Text1.Text + inbuffMSComm1.InBufferCount = 0 '清空缓冲区End IfEnd Sub。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录一、设计任务书 (1)摆动导杆机构 (1)二、摆动导杆机构 (2)1.数学模型的建立 (2)2.主要控件名称及其说明 (4)3. 主要变量说明 (7)4.程序源代码及运行结果 (9)三、小结 (20)四、主要参考资料 (22)主要控件名称及其说明3.主要变量说明4.程序资源代码及运行结果Option ExplicitPublic dbll_AB As Integer, dbll_CD As Integer, dbll_AC As Integer, dblN As Double, dblW As Double, dblE_AB As DoublePublic intM, intcw, intendangle, intstartangle As Integer, PI As DoublePrivate Sub cmdRun_Click()Dim i As Integer, dbll_max As Double, dbll_min As Double, dbll_sum As DoubleDim dbll_AB As Integer, dbll_CD As Integer, dbll_AC As Integer, dblN As Double, dblW As Double, PI As Double, dblE_AB As DoubleDim intM, intcw, intendangle, intstartangle As IntegerFor i = 0 To 3If Val(Text1(i).Text) <= 0 ThenText1(i) = ""Exit SubEnd IfNext idbll_max = Val(Text1(1).Text)For i = 0 To 2If Val(Text1(i).Text) < dbll_min Then dbll_min = Val(Text1(i).Text)If Val(Text1(i).Text) > dbll_max Then dbll_max =Val(Text1(i).Text)dbll_sum = dbll_sum + Val(Text1(i).Text)Next iIf Val(Text1(1).Text) <> dbll_max Then Exit SubIf dbll_max <= dbll_sum - dbll_max Then Exit SubIf Val(Text1(0).Text) > Val(Text1(2).Text) Then Exit Subdbll_AB = Val(Text1(0).Text)dbll_CD = Val(Text1(1).Text)dbll_AC = Val(Text1(2).Text)dblN = Val(Text1(3).Text)dblW = 2 * PI * dblN / 60dblE_AB = 0PI = 3.1415926If optClockWise.Count = True Thenintcw = -1intstartangle = 360intendangle = 0Elseintstartangle = 0intendangle = 360intcw = 1End Ifcmdrun.Enabled = Falsecmdlist.Enabled = TruecmdDraw.Enabled = TrueCommand3.Enabled = TrueEnd SubPrivate Sub cmdExit_Click()Unload MeEnd SubPrivate Sub txtangle_Change()Dim i As IntegerIf Timer1.Enabled = True ThenExit SubEnd IfDim dblF_AB, dblF_CD, dblW_CD, dblE_CD, dblS_B, dblV_B, dblA_B As DoubleCall YDFX(i, dblF_CD, dblW_CD, dblE_CD, dblS_B, dblV_B, dblA_Blblcurrent(0).Caption = Format(Str(dblF_CD), "0.00")lblcurrent(1).Caption = Format(Str(dblW_CD), "0.00") lblcurrent(2).Caption = Format(Str(dblE_CD), "0.00") lblcurrent(3).Caption = Format(Str(dblS_B), "0.00")lblcurrent(4).Caption = Format(Str(dblV_B), "0.00")lblcurrent(5).Caption = Format(Str(dblA_B), "0.00")End SubPrivate Sub cmdlist_Click()Dim i As Integer, dblF_AB, dblF_CD, dblW_CD, dblE_CD, dblS_B, dblV_B, dblA_B As DoubleDim inttemp As IntegerIf optClockWise.Count = True Thenintcw = -1intstartangle = 360intendangle = 0Elseintstartangle = 0intendangle = 360intcw = 1End IfIf optClockWise.Count = True ThenintM = 1ElseintM = -1End IfFor i = 0 To 6grddatalist.ColAlignment(i) = flexAlignCenterCenterNext iinttemp = 30grddatalist.AddItem ("f_AB " & Chr(9) & "f_CD" & Chr(9) & "w_CD" _& Chr(9) & "e_CD" & Chr(9) & "s_B" & Chr(9) & "v_B" & Chr(9) & "a_B")For i = intstartangle To intendangle Step intcw * inttemp Call YDFX(i, dblF_CD, dblW_CD, dblE_CD, dblS_B, dblV_B, dblA_B)grddatalist.AddItem (Str(i) & Chr(9) & Format(Str(dblF_CD), "0.00") _& Chr(9) & Format(Str(dblW_CD), "0.00") _& Chr(9) & Format(Str(dblE_CD), "0.00") _& Chr(9) & Format(Str(dblS_B), "0.00") _& Chr(9) & Format(Str(dblV_B), "0.00") _& Chr(9) & Format(Str(dblA_B), "0.00"))Next igrddatalist.FixedRows = 1cmdlist.Enabled = FalseEnd SubPrivate Sub cmdDraw_Click()Dim dblwp As Double, dblhp As Double, i As Integerdblwp = Abs(picdraw(0).ScaleWidth)dblhp = Abs(picdraw(0).ScaleHeight)Dim dblangle_l As Double, dblsx As DoubleIf intendangle * intstartangle < 0 ThenIf intstartangle < 0 Thendblangle_l = Abs(intstartangle)Elsedblangle_l = Abs(intendangle)End IfElsedblangle_l = 0End Ifdblsx = (dblwp - 240) / 360For i = 0 To 5picdraw(i).Clspicdraw(i).ScaleMode = 1picdraw(i).DrawStyle = 0picdraw(i).DrawWidth = 1.5picdraw(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 - 700picdraw(i).CurrentY = 250picdraw(i).Print "f_AB"picdraw(i).CurrentX = -120picdraw(i).CurrentY = -10picdraw(i).Print "O"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 = 160picdraw(i).CurrentY = dblhp / 2 - 160Select Case iCase 0picdraw(i).Print "f_CD"Case 1picdraw(i).Print "w_CD"Case 2picdraw(i).Print "e_CD"Case 3picdraw(i).Print "s_B"Case 1picdraw(i).Print "v_B"Case 1picdraw(i).Print "a_B"End SelectNext iTimer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer()Dim dblwp As Double, dblhp As Double, i As Integerdblwp = Abs(picdraw(0).ScaleWidth)dblhp = Abs(picdraw(0).ScaleHeight)Dim dblmax_f_CD As Double, dblmax_w_CD As Double, dblmax_e_CD As DoubleDim dblmax_s_B As Double, dblmax_v_B As Double, dblmax_a_B As DoubleDim dblF_AB, dblF_CD, dblW_CD, dblE_CD, dblS_B, dblV_B, dblA_B As DoubleIf optClockWise.Count = True Thenintcw = -1intstartangle = 360intendangle = 0Elseintstartangle = 0intendangle = 360intcw = 1End IfFor i = intstartangle To intendangle Step 1 * intcwCall YDFX(i, dblF_CD, dblW_CD, dblE_CD, dblS_B, dblV_B, dblA_B)If Abs(dblF_CD) > dblmax_f_CD Then dblmax_f_CD = Abs(dblF_CD)If Abs(dblW_CD) > dblmax_w_CD Then dblmax_w_CD = Abs(dblW_CD)If Abs(dblE_CD) > dblmax_e_CD Then dblmax_e_CD = Abs(dblE_CD)If Abs(dblS_B) > dblmax_s_B Then dblmax_s_B = Abs(dblS_B)If Abs(dblV_B) > dblmax_v_B Then dblmax_v_B = Abs(dblV_B)If Abs(dblA_B) > dblmax_a_B Then dblmax_a_B =Abs(dblA_B)Next iDim dblsx As Double, dblsy As Doubledblsx = (dblwp - 240) / 360Static j As Integeri = intstartangle + jCall YDFX(i, dblF_CD, dblW_CD, dblE_CD, dblS_B, dblV_B, dblA_B)dblsy = (dblhp / 2 - 240) / dblmax_f_CDpicdraw(0).PSet (i * dblsx, dblF_CD * dblsy)lblrealtime(0).Caption = Format(Str(dblF_CD), "0.00")dblsy = (dblhp / 2 - 240) / dblmax_w_CDpicdraw(1).PSet (i * dblsx, dblW_CD * dblsy)lblrealtime(1).Caption = Format(Str(dblW_CD), "0.00")dblsy = (dblhp / 2 - 240) / dblmax_e_CDpicdraw(2).PSet (i * dblsx, dblE_CD * dblsy)lblrealtime(2).Caption = Format(Str(dblE_CD), "0.00")dblsy = (dblhp / 2 - 240) / dblmax_s_Bpicdraw(3).PSet (i * dblsx, dblS_B * dblsy)lblrealtime(3).Caption = Format(Str(dblS_B), "0.00")dblsy = (dblhp / 2 - 240) / dblmax_v_Bpicdraw(4).PSet (i * dblsx, dblV_B * dblsy)lblrealtime(4).Caption = Format(Str(dblV_B), "0.00")dblsy = (dblhp / 2 - 240) / dblmax_a_Bpicdraw(5).PSet (i * dblsx, dblA_B * dblsy)lblrealtime(5).Caption = Format(Str(dblA_B), "0.00")j = j + intcw * 1If i = intendangle ThenTimer1.Enabled = Falsej = 0End IfEnd SubPrivate Sub Command3_Click()picplay.Clspicplay.ScaleMode = 1picplay.DrawStyle = 0picplay.DrawWidth = 2Dim dblwp As Double, dblhp As Doubledblwp = picplay.ScaleWidthdblhp = picplay.ScaleHeightpicplay.Scale (-dblwp / 3, dblhp / 2)-(2 * dblwp / 3, -dblhp / 2)If Val(Text3.Text) <= 0 Or Val(Text3.Text) > 50 ThenMsgBox "请输(0,50)之间的值作为比例!", vbInformation + vbOKOnly, "消息框"Text3.Text = ""Exit SubEnd IfTimer2.Enabled = TrueEnd SubPrivate Sub cmdQuit_Click()If Timer2.Enabled ThenTimer2.Enabled = Falsecmdquit.Caption = "继续"ElseTimer2.Enabled = Truecmdquit.Caption = "暂停"End IfEnd SubPrivate Sub Timer2_Timer()picplay.ClsIf Val(Text3.Text) <= 0 Or Val(Text3.Text) > 50 ThenMsgBox "请输(0,50)之间的值作为比例!", vbInformation + vbOKOnly, "消息框"Text3.Text = ""Timer2.Enabled = FalseExit SubEnd IfTimer2.Interval = hsbspeed.ValueDim dblsxy As Double, i As Integerdblsxy = Val(Text3.Text)Static j As Integeri = intstartangle + jDim dblF_AB, dblF_CD, dblW_CD, dblE_CD, dblS_B, dblV_B, dblA_B As DoubleCall YDFX(i, dblF_CD, dblW_CD, dblE_CD, dblS_B, dblV_B, dblA_B)txtangle.Text = Str(i)lblcurrent(0).Caption = Format(Str(dblF_CD), "0.00") lblcurrent(1).Caption = Format(Str(dblW_CD), "0.00") lblcurrent(2).Caption = Format(Str(dblE_CD), "0.00") lblcurrent(3).Caption = Format(Str(dblS_B), "0.00")lblcurrent(4).Caption = Format(Str(dblV_B), "0.00")lblcurrent(5).Caption = Format(Str(dblA_B), "0.00")Dim dblax, dblay, dblcx, dblcy, dblbx, dblby, dbldx, dbldy, dbl1x, dbl1y,dbl2x, dbl2y, dbl3x, dbl3y, dbl4x, dbl4y, x As Double dblF_AB = i * PI / 180x = Atn((dbll_AC + dbll_AB * Sin(dblF_AB)) / (dbll_AB * Cos(dblF_AB)))If x < 0 Then x = x - PIdblax = 0dblay = 0dblbx = dbll_AB * Cos(i * PI / 180)dblby = dbll_AB * Sin(i * PI / 180)dblcx = 0dblcy = -dbll_ACdbldx = dbll_CD * Cos(x)dbldy = Abs(dbll_CD * Sin(x) - dbll_AC)dbl1x = dblbx - 20 * Cos(x) + 10 * Sin(x)dbl2x = dblbx - 20 * Cos(x) - 10 * Sin(x)dbl3x = dblbx + 20 * Cos(x) + 10 * Sin(x)dbl4x = dblbx + 20 * Cos(x) - 10 * Sin(x)dbl1y = dblby - 20 * Sin(x) - 10 * Cos(x)dbl2y = dblby - 20 * Sin(x) + 10 * Cos(x)dbl3y = dblby + 20 * Sin(x) - 10 * Cos(x)dbl4y = dblby + 20 * Sin(x) + 10 * Cos(x)dbl1x = dbl1x * dblsxydbl1y = dbl1y * dblsxydbl2x = dbl2x * dblsxydbl2y = dbl2y * dblsxydbl3x = dbl3x * dblsxydbl3y = dbl3y * dblsxydbl4x = dbl4x * dblsxydbl4y = dbl4y * dblsxydblax = dblax * dblsxydblay = dblay * dblsxydblbx = dblbx * dblsxydblby = dblby * dblsxydblcx = dblcx * dblsxydblcy = dblcy * dblsxydbldx = dbldx * dblsxydbldy = dbldy * dblsxypicplay.FillStyle = vbFSSolidpicplay.FillColor = vbRedDim dblr As Double, dbltemp As Doubledblr = dbll_AB / 15 * dblsxydbltemp = dbll_AB / 4 * dblsxypicplay.Line (dblax, dblay)-Step(-dbltemp, -dbltemp)picplay.Line (dblax, dblay)-Step(dbltemp, -dbltemp)picplay.Line (-2 * dbltemp, -dbltemp)-Step(4 * dbltemp, 0) picplay.Line (-1.5 * dbltemp, -dbltemp)-Step(-dbltemp / 2, -dbltemp / 2)picplay.Line (0, -dbltemp)-Step(-dbltemp / 2, -dbltemp / 2) picplay.Line (1.5 * dbltemp, -dbltemp)-Step(-dbltemp / 2, -dbltemp / 2)picplay.Line (dblcx, dblcy)-Step(-dbltemp, -dbltemp)picplay.Line (dblcx, dblcy)-Step(dbltemp, -dbltemp)picplay.Line (-2 * dbltemp, dblcy - dbltemp)-Step(4 * dbltemp, 0) picplay.Line (-1.5 * dbltemp, dblcy - dbltemp)-Step(-dbltemp / 2, -dbltemp / 2)picplay.Line (0, dblcy - dbltemp)-Step(-dbltemp / 2, -dbltemp / 2) picplay.Line (1.5 * dbltemp, dblcy - dbltemp)-Step(-dbltemp / 2, -dbltemp / 2)picplay.Line (dblax, dblay)-(dblbx, dblby), vbBluepicplay.Circle (dblax, dblay), dblr, vbRedpicplay.Line (dblcx, dblcy)-(dbldx, dbldy), vbBluepicplay.Circle (dblcx, dblcy), dblr, vbRedpicplay.Circle (dblbx, dblby), dblr, vbRedpicplay.Line (dbl1x, dbl1y)-(dbl2x, dbl2y), vbBluepicplay.Line (dbl1x, dbl1y)-(dbl3x, dbl3y), vbBluepicplay.Line (dbl4x, dbl4y)-(dbl2x, dbl2y), vbBluepicplay.Line (dbl4x, dbl4y)-(dbl3x, dbl3y), vbBlueDim intmarkbar As IntegerIf intmarkbar = 0 Thenj = j + intcw * 1If i = intendangle Thenj = 0End IfEnd IfEnd SubPublic Sub YDFX(i, dblF_CD, dblW_CD, dblE_CD, dblS_B, dblV_B, dblA_B)PI = 3.1415926Dim dblF_AB, dblN, xdbll_AB = Text1(0).Textdbll_CD = Text1(1).Textdbll_AC = Text1(2).TextdblN = Text1(3).TextdblF_AB = i * PI / 180dblW = 2 * PI * dblN / 60dblS_B = ((dbll_AC / 1000) ^ 2 + (dbll_AB / 1000) ^ 2 + 2 * dbll_AC / 1000 * dbll_AB / 1000 * Sin(dblF_AB)) ^ (1 / 2)x = Atn((dbll_AC + dbll_AB * Sin(dblF_AB)) / (dbll_AB * Cos(dblF_AB)))If x < 0 Then x = x + PIdblF_CD = x * 180 / PIdblV_B = -dbll_AB * dblW * Sin(dblF_AB - x) / 1000dblW_CD = (dbll_AB * dblW * Cos(dblF_AB - x)) / (dblS_B * 1000)dblA_B = (1000 * dblS_B * dblW_CD ^ 2 - dbll_AB * dblE_AB * Sin(dblF_AB - x) - dbll_AB * dblW ^ 2 * Cos(dblF_AB - x)) / 1000 dblE_CD = (dbll_AB * dblE_AB * Cos(dblF_AB - x) - dbll_AB * dblW ^ 2 * Sin(dblF_AB - x) - 2 * dblV_B ^ 2 * dblW_CD ^ 2) / (dblS_B * 1000)End Sub参考资料:[1]朱国华主编. Visual Basic 程序设计. 第一版. 北京﹕中国铁道出版社. 2009[2]申永胜主编. 机械原理教程. 第二版. 北京﹕清华大学出版社. 2009。

相关文档
最新文档