分级变速主传动系统_第1页
分级变速主传动系统_第2页
分级变速主传动系统_第3页
分级变速主传动系统_第4页
分级变速主传动系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验分级变速主传动系统CAD实验目的1 通过对分级变速主传动系统的设计来巩固课堂学习的相关知识;2了解和掌握CAD的方法,初步学会应用VB来进行AutoCAD二次开发。十二、实验内容和步骤实验题目:(参照教材138页)设计一中型机床传动系统,电动机转速1440rpm,要求输出12级转速、最低转速31.5rpm、最高转速1400rpm。根据题目要求,工作流程如下:第一步:输入设计原始数据。主要包括电动机转速、要求输出的转速级数、输出最低转速、输出最高转速等。第二步:参照教材45页的标准数列表,用写字板等编辑软件,编写标准数列表文件a.dat,并将其存放在程序指定的位置。第三步:生成符合要求的输出

2、转速序列,相应数据以文件outdata.dat形式输出,并将其存放在程序指定的位置。以上第一到第三步通过编写QBASIC1序来完成。第四步:确定传动系统的结构式。第五步:编程绘制转速图,通过VB编程完成。第六步:完成配齿。以上第四步、第六步由同学们参考教材在课后自己完成。第七步:绘制传动系统图。由同学们独立完成,可以手绘,也可以在计算机上完成。由以上介绍可以看出,实验课上完成的内容是除第四步和第六步外的全部内容,我们将这些内容分为三大部分。第一部分,包括第一到第三步的全部内容:即利用QBASICS程,通过运算生成符合题目要求的转速数列等数据,以outdata.dat文件形式输出。QBASIC源

3、程序见下:DIMn(171),Nz(31)OPEN"e:a.dat"FORINPUTAS#1i=1DOWHILENOTEOF(1)INPUT#1,n(i)i=i+1LOOPCLOSE#1INPUT"nmotor"nmotorINPUT"nmin"NminINPUT"nmax"nmaxINPUT"z"zNz=nmax/Nminng=LOG(Nz)nh=ng/(z-1)fai=EXP(nh)x=INT(LOG(fai)/LOG(1.06)+.5)FORi=1TO161IFn(i)=NminTHENj

4、=iELSENEXTiOPEN"e:outdata.dat"FOROUTPUTAS#2WRITE#2,nmotorWRITE#2,zFORk=1TOzNz(k)=n(j)j=j+xWRITE#2,Nz(k)NEXTkCLOSE#2END请注意程序中的一句,OPEN"e:a.dat"FORINPUTAS#1,这里说明:a.dat文件是标准数列文件,所谓标准数列见教材45页表2.12。这个文件在程序运行前,要编辑好,并放在相应的地方,程序原句要求将a.dat文件放在E盘的根目录下。程序正确运行后自动生成的outdata.dat文件内容见下。14401231.

5、545639012518025035550071010001400以上部分即第一部分用2学时完成。第二部分编写VB程序,绘制转速图,就是第五步工作内容。首先进入VB6.0中文系统,分别制作两个窗体,见图1和图2。图1主控窗体4第1工传动蛆丁个传韵副纵匕已告物息|0一;工工轴最高转速了刖秒分级变速超镯虞编CAD:1 IIIII.ILLLUliURRRUdKKa口口口aaauJ4JJJI,厂第口工传动蛆p一个传动副皴比指数是|6口工轴最高转速rpm最施速比:1 iiii:ihiibb:nnnnuu)d确定图2绘图参数输入窗体在图1的窗体中,“输入转速图绘制所需参数”命令按钮的代码如下:Privat

6、eSubCmd输入参数_Click()Forml.ShowEndSub“绘制转速图”命令按钮的代码如下:'进入AutoCADPrivateSubCmd绘图_Click()OnErrorResumeNextSetacadapp=GetObject(,"autocad.application")IfErrThenErr.ClearSetacadapp=CreateObject("autocad.application")IfErrThenMsgBox("不能运行AutoCAD200#请检查是否安装了AutoCAD")ExitSub

7、5实验分级变速主传动系统CADEndIfEndIfacadapp.Visible=Trueacadapp.ActiveDocument.ActiveViewport.GridOn=True'画表格DimlineobjAsAcadLineDimstartpoint1(0To2)AsDoubleDimendpoint1(0To2)AsDoubleDimzAsIntegerz=12startpoint1(0)=1#:startpoint1(1)=1#:startpoint1(2)=0#endpoint1(0)=57#:endpoint1(1)=1#:endpoint1(2)=0#:setli

8、ne1obj=acadapp.ActiveDocument.ModelSpace.AddLine(startpoint1,endpoint1)retval1=line1obj.ArrayRectangular(z,1,1,6,0,0)Dimsp(0To2)AsDoubleDimep(0To2)AsDoublesp(0)=1#:sp(1)=1#:sp(2)=0#ep(0)=1#:ep(1)=67#:ep(2)=0#:Setline2obj=acadapp.ActiveDocument.ModelSpace.AddLine(sp,ep)retval2=line2obj.ArrayRectangul

9、ar(1,5,1,1,14,0)'写图表标题acadapp.ActiveDocument.ActiveTextStyle.fontFile="c:winntfontssimfang.tf"DimtextobjAsAcadTextDimtextstringAsStringDimip(0To2)AsDoubleDimiip(0To2)AsDoubleDimh,txAsDoubletextstring="分级变速主传动系统转速图"h=2ip(0)=13:ip(1)=-3:ip(2)=0Settextobj=acadapp.ActiveDocument.

10、ModelSpace.AddText(textstring,ip,h)acadapp.ActiveDocument.Preferences.LineWeightDisplay=True'从outdata.dat文件中读出相关数据Open"e:outdata.dat"ForInputAs#2Input#2,n0Input#2,zFork=1TozInput#2,n(k)NextkClose#2Dimzbj(1To5)AsStringDimf(1To3)AsIntegerDimtextzh(0To2)AsDoubleDimzip(0To2)AsDoubleDimziip

11、(0To2)AsDoubleDimziiip(0To2)AsDoubleDimziipg(0To2)AsDoubleDimziiipg(0To2)AsDoubleDimz4P(0To2)AsDoubleForm=1To3Forl=1TozIfdrmax(m)=n(l)Thenf(m)=lNextlNextmzip(0)=15#:zip(1)=1+6*(f(1)-1):zip(2)=0ziip(0)=29#:ziip(1)=1+6*(f(2)-1):ziip(2)=0ziipg(0)=ziip(0):ziipg(1)=ziip(1):ziipg(2)=ziip(2)ziiip(0)=43#:zi

12、iip(1)=1+6*(f(3)-1):ziiip(2)=0ziiipg(0)=ziiip(0):ziiipg(1)=ziiip(1):ziiipg(2)ziiip(2)'画电动机到第一传动组的线SetlineOobj=acadapp.ActiveDocument.ModelSpace.AddLine(zip,ep)line0obj.Lineweight=acLnWt050'画第一传动组的三条线Forl=1TodfSetlineshapeobj=acadapp.ActiveDocument.ModelSpace.AddLine(zip,ziipg)lineshapeobj.Li

13、neweight=acLnWt050ziipg(1)=ziipg(1)-6*js(1)Nextl画第二传动组的六条线Setlineshape21obj=acadapp.ActiveDocument.ModelSpace.AddLine(ziip,ziiip)lineshape21obj.Lineweight=acLnWt050ziiip(1)=ziiip(1)-6*js(2)Setlineshape22obj=acadapp.ActiveDocument.ModelSpace.AddLine(ziip,ziiip)lineshape22obj.Lineweight=acLnWt050retva

14、l3=lineshape21obj.ArrayRectangular(js(2),1,1,-6,0,0)retval4=lineshape22obj.ArrayRectangular(js(2),1,1,-6,0,0)'ziiip点坐标恢复原值ziiip(1)=ziiip(1)+6*js(2)'画第三传动组的十二条线z4p(0)=1+14*(ds-1):z4p(1)=1+6*(z-1):z4p(2)=0Setlineshape31obj=acadapp.ActiveDocument.ModelSpace.AddLine(ziiipg,z4p)lineshape31obj.Lin

15、eweight=acLnWt050z4p(1)=z4p(1)-6*js(3)Setlineshape32obj=acadapp.ActiveDocument.ModelSpace.AddLine(ziiipg,z4p)lineshape32obj.Lineweight=acLnWt050retval5=lineshape31obj.ArrayRectangular(js(3),1,1,-6,0,0)retval6=lineshape32obj.ArrayRectangular(js(3),1,1,-6,0,0)'z4P点坐标恢复原值z4P(1)=z4p(1)+6*js(3)'画

16、圆DimrAsDoubleDimhatchobjAsAcadHatchDimhatchobj1AsAcadHatchDimhatchobj2AsAcadHatchDimpatternnameAsStringDimpatterntypeAsLongDimbassociativityAsBooleanr=0.5patterntype=0patternname="solid"bassociativity=TrueSethatchobj=acadapp.ActiveDocument.ModelSpace.AddHatch(patterntype,patternname,bassoc

17、iativity)Sethatchobj1=acadapp.ActiveDocument.ModelSpace.AddHatch(patterntype,atternname,bassociativity)Sethatchobj2=acadapp.ActiveDocument.ModelSpace.AddHatch(patterntype,patternname,bassociativity)Sethatchobj3=acadapp.ActiveDocument.ModelSpace.AddHatch(patterntype,patternname,bassociativity)Dimoute

18、rloop(0To0)AsAcadEntityDimouterloop1(0To0)AsAcadEntityDimouterloop2(0To0)AsAcadEntityDimouterloop3(0To0)AsAcadEntitySetouterloop(0)=acadapp.ActiveDocument.ModelSpace.AddCircle(ep,r)hatchobj.AppendOuterLoop(outerloop)Setouter100P(0)=acadapp.ActiveDocument.ModelSpace.AddCircle(zip,r)hatchobj.AppendOut

19、erLoop(outerloop)Setouter100P1(0)=acadapp.ActiveDocument.ModelSpace.AddCircle(ziip,r)hatchobj1.AppendOuterLoop(outerloop1)retval11=hatchobj1.ArrayRectangular(3,1,1,-6,0,0)Debug.Print"ziiip(1)="ziiipSetouter100P2(0)=acadapp.ActiveDocument.ModelSpace.AddCircle(ziiip,r)hatchobj2.AppendOuterLo

20、op(outerloop2)retval12=hatchobj2.ArrayRectangular(6,1,1,-6,0,0)Setouterloop3(0)=acadapp.ActiveDocument.ModelSpace.AddCircle(z4p,r)hatchobj3.AppendOuterLoop(outerloop3)retval13=hatchobj3.ArrayRectangular(z,1,1,-6,0,0)hatchobj.Evaluateacadapp.ActiveDocument.RegenTrue'写图中文字iip(0)=58.5:iip(1)=-6:iip

21、(2)=0Forj=1Toztx=n(j)iip(1)=iip(1)+6SetText=acadapp.ActiveDocument.ModelSpace.AddText(tx,iip,h)NextjSetTextDimtextjz(0To2)AsDoubletextjz(0)=-6:textjz(1)=66:textjz(2)=0=acadapp.ActiveDocument.ModelSpace.AddText(n0,textjz,h)textjz(0)=1:textjz(1)=68:textjz(2)=0zbj(1)="电动机":zbj(2)="I"

22、;:zbj(3)="II":zbj(4)="III":zbj(5)="IV"textjz(0)=-3:textjz(1)=69Fori=1To5SetText=acadapp.ActiveDocument.ModelSpace.AddText(zbj(i),textjz,h)Ifi=3Thentextjz(0)=textjz(0)+4Ifi=4Thentextjz(0)=textjz(0)+8textjz(0)=textjz(0)+17.5-4*(i-1)NextiZoomExtentsEndSub“退出”命令按钮的代码如下:PrivateSubCmd退出_Click()EndEndSub在图2的窗体中,“确定”命令按钮的代码如下:PrivateSubCmd确定_Click()mrpm=Clnt(Textl.Text)ds=CInt(Text2.Text)dg=CInt(Text3.Text)df(1)=CInt(Text4.Text)js(1)=CInt(Text5.Text)drmax(1)=CInt(Text6.Text)radmax(1)=CDbl(Text7.Text)df(2)=CInt(Text8.Text)js(2)=CInt(Text9.Text)drma

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论