您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 机械原理课程设计(VB版)2012讲解
一、标识符用来表示变量、常量、函数、数组、文件名等名称的符号。由字母、数字、下划线组成,但必须以字母开头。注意:VB语言中大小写字母是没有区别的,如LAB与lab相同。VB语言要点变量之间用逗号隔开二、数据类型常用的有:integer:整型single:单精度型double:双精度型string:字符串型variant:变体型定义方法举例:PublicXBasdouble,YBasdoubleDimLABassingle,LBCassingleDimIasinteger,FLAGasinteger三、算术、关系和逻辑运算符1、算术运算符:+-*/^(乘方)运算规则:先乘除后加减;乘方优先于乘除;函数优先于乘方;括号最优先。2、关系(比较)运算符:===或运算的结果是一个布尔(BOOLEAN)值,即真(True)或假(False);各运算符的优先级相同,但它们的优先级都低于算术运算符。例如:7+3=3+2True52+1False3、逻辑运算符not非and与or或逻辑运算符的运算量是布尔值,运算结果也是一个布尔值;运算符的优先级:not、and、or;(但都低于比较运算符)例如:not38True(38)and(56)False(38)or(56)True四、赋值和显示语句1、赋值语句变量名=表达式或:对象名.属性=表达式如:Flag=1Pi=3.14159c=a+bText1.text=“10”具体格式请参考VB教材2、显示语句可用MsgBox语句:MsgBox“输出信息字符串”[,Buttons]例如:IfFlag=0ThenMsgBox“无解”,vbOKOnlyExitSubEndIf文本框——用于输入、输出数字和文字信息五、控制语句FoxPro格式:IF(条件)语句行序列1ELSE语句行序列1ENDIF1、If语句:If条件1Then语句1Else语句2EndIf或:If条件Then语句例如:IfFlag=1ThenMsgBox“有解。”ElseMsgBox“无解。”EndIf或:IFFlag=0ThenMsgBox“无解。”此外,还有SelectCase语句也可以按条件选择执行语句。ForVar=初始值TO结束值[STEP增量]语句段[ExitFor]NextVar例如:ForI=0To36CallLink(0,0,0,0,0,0,i*10*Pi/180,W1,0,LAB,XB,YB,XBv,YBv,XBa,YBa)…NextI此外,还有While-WendDo-Loop等执行循环的语句。2、For循环语句六、数组1、定义1维:Dim或Public数组名(常量表达式)如:PublicMD(25)asDouble,Q(3)asDouble,W(3)asDouble2维:Dim或Public数组名(常量表达式1,常量表达式2)如:Publica(3,4)asDouble,d(100,40)asInteger注意:默认数组下标为0。也可指定上下标,如:Dima(1to3,1to4),b(-99to-5,-3To0)2、赋值用赋值语句或输入语句使数组元素得到值。例如:a(1,1)=cos(W(1)+W(0)):a(1,3)=3:d(2,1)=d(1,1)+203、引用数组元素也可以出现在表达式的右侧,如:d(1)=m*z(1):p1=a(1,4):b(1,2)=(a(3,2)+a(2,1))/2七、子过程1.Sub子过程[Public][Private]Sub过程名(参数表)语句块EndSub例如:PublicSubLink(XAAsDouble,YAAsDouble,XAvAsDouble,YAvAsDouble,XAaAsDouble,YAaAsDouble,QABAsDouble,WABAsDouble,EABAsDouble,LABAsDouble,XBAsDouble,YBAsDouble,XBvAsDouble,YBvAsDouble,XBaAsDouble,YBaAsDouble)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)EndSub调用方法:call过程名(参数表)callLink(0,0,0,0,0,0,i*10*Pi/180,W1,0,LAB,XB,YB,XBv,YBv,XBa,YBa)2.Function函数[Public][Private]Function函数名(参数表)语句块EndFunction例如:PublicFunctionRRR2(XAAsDouble,YAAsDouble,XAvAsDouble,YAvAsDouble,XAaAsDouble,YAaAsDouble,XCAsDouble,YCAsDouble,XCvAsDouble,YCvAsDouble,XCaAsDouble,YCaAsDouble,LABAsDouble,LBCAsDouble,MountAsDouble,QABAsDouble,WABAsDouble,EABAsDouble,QCBAsDouble,WCBAsDouble,ECBAsDouble)AsInteger…If(LAC=LAB+LBCAndLAC=Abs(LAB-LBC))ThenRRR2=1ElseRRR2=0ExitFunctionEndIf…EndFunction调用方法:Flag=RRR2(XB,YB,XBv,YBv,XBa,YBa,LAD,0,0,0,0,0,LBC,LCD,1,QBC,WBC,EBC,QDC,WDC,EDC)注意:VB中定义了许多标准函数,如sin()、cos()、atn()、abs()、sqr()使用方法查有关资料。机械原理课程设计第一节运动分析部分(题Ⅰ)一、机构组成原理机构基本杆组+I级机构可拆分可组成Ⅱ级机构Ⅲ级机构…Ⅱ级杆组Ⅲ级杆组……可分为可分为当给定I级机构的运动规律后,机构中各基本杆组的运动是确定的。如果编写了各种杆组类型的子程序,就可按机构的组成原理来分析机构的运动规律。二、Ⅱ级杆组(几种最简单类型)R---RevolutePairP---PrismaticPair还有PRP、PPR三、计算机辅助运动分析步骤1.构件及Ⅱ级杆组子程序(P2~P9)AB1)构件:PublicSubLink(XAAsDouble,YAAsDouble,XAvAsDouble,YAvAsDouble,XAaAsDouble,YAaAsDouble,QABAsDouble,WABAsDouble,EABAsDouble,LABAsDouble,XBAsDouble,YBAsDouble,XBvAsDouble,YBvAsDouble,XBaAsDouble,YBaAsDouble)调用方法:CallLink(0,0,0,0,0,0,i*10*Pi/180,W1,0,LAB,XB,YB,XBv,YBv,XBa,YBa)CallLink(XD,YD,0,0,0,0,QCD-AFA,WCD,ECD,LDE,XE,YE,XEv,YEv,XEa,YEa)ABCDEFACB2)RRR杆组:PublicFunctionRRR2(XAAsDouble,YAAsDouble,XAvAsDouble,YAvAsDouble,XAaAsDouble,YAaAsDouble,XCAsDouble,YCAsDouble,XCvAsDouble,YCvAsDouble,XCaAsDouble,YCaAsDouble,LABAsDouble,LBCAsDouble,MountAsDouble,QABAsDouble,WABAsDouble,EABAsDouble,QCBAsDouble,WCBAsDouble,ECBAsDouble)AsInteger若装配方式A-B-C为顺时针:Mount=1若装配方式A-B-C为逆时针:Mount=-1FLAG=0:无解;FLAG=1:有解调用方法:FLAG=RRR2(XB,YB,XBv,YBv,XBa,YBa,XD,YD,0,0,0,0,LBC,LCD,1,QBC,WBC,EBC,QCD,WCD,ECD)ABCDEF3)RRP杆组:PublicFunctionRRP2(AFAAsDouble,PxAsDouble,PyAsDouble,XAAsDouble,YAAsDouble,XAvAsDouble,YAvAsDouble,XAaAsDouble,YAaAsDouble,LABAsDouble,QABAsDouble,WABAsDouble,EABAsDouble)AsIntegerFLAG=0:无解;FLAG=1:有解AFA为滑块导路与X轴的夹角,如图1-3所示;Px,Py分别为滑块导路参考点P的x,y坐标。调用方法:FLAG=RRP2(0,0,E,XE,YE,XEv,YEv,XEa,YEa,LEF,QEF,WEF,EEF)ABCDEF4)RPR杆组:PublicSubRPR2(XAAsDouble,YAAsDouble,XAvAsDouble,YAvAsDouble,XAaAsDouble,YAaAsDouble,XBAsDouble,YBAsDouble,XBvAsDouble,YBvAsDouble,XBaAsDouble,YBaAsDouble,QAsDouble,WAsDouble,EAsDouble)ARPR调用方法:CallRPR2(0,-LAD,0,0,0,0,XB,YB,XBv,YBv,XBa,YBa,QDE,WDE,EDE)ABCDEF2.具体机构拆分杆组(P10图1-7)如:ABBCEF3.编写具体机构运动分析主程序如:在“你使用的子程序模块”中编写以下内容:在“OptionExplicitPublicLABAsDouble,LBC……PublicXBAsDouble,YB…..PublicaAsDouble,V…..”下一行添加未定义的变量PublicEAsDouble,XFAsDouble,…..PublicW1AsDouble,AFAAsDouble…..ABCDEF定义变量PublicSubcalResult()ReDimCurveVal1(0To36),CurveVal2(0To36),CurveVal3(0To36),CurveVal4(0To36)ReDimCurveVal5(0To36),CurveVal6(0To36),CurveVal7(0To0),CurveVal8(0To0)ReDimCurveVal9(0To0),CurveVal10(0To0),CurveVal11(0To0),CurveVal12(0To0)’要根据实际需要调整上标TotalPathNum=UBound(CurveVal1)’在下面添加你编写的主程序LAB=20:W1=5:LBC=40:AFA=30…..’参数输入语句FORI=0TO36CallLink(0,0,0,0,0,0,I*10*Pi/180,W1,0,LAB,XB,YB,XBv,YBv,XBa,YBa)FLAG=RRR2(XB,YB,XBv,YBv,XBa,YBa,XD,YD,0,0,0,0,LBC,LCD,1,QBC,WBC,EBC,QCD,WCD,ECD)IfFlag=0ThenMsgBox“无解”,vbOKOnlyExitSub’第34题除外EndIfABCDEF用来定义或重定义原来已经用带空圆括号(没有维数下标)的Private、Public或Dim语句声明过的动态数组的大小。CallLink(XD,YD,0,0,0,0,QCD-AFA*Pi/180,WCD,ECD,LDE,XE,Y
本文标题:机械原理课程设计(VB版)2012讲解
链接地址:https://www.777doc.com/doc-5898222 .html