材料力学I上机实验设计报告院系:机电学院班级: 1308***姓名: ***学号: 11308*****指导教师:桂莲时间: 2015年6月一、问题描述1、应力状态分析对于空间或者是平面应力状态的相关计算,如果采用人工计算的方式比较繁琐而且容易出错,对于这种简单的重复计算,编制相应的程序则可以大大提高计算准确度和人工计算强度。
对于平面应力状态,输入量应为(,,x y xy σστ),以及某截面的方位角α,其输出数据应为该单元体所受主应力(123,,σσσ),所受最大剪应力(13max 132σσττ-==),以及方位角为α的斜截面上的应力(,ααστ)以及主方向角σα,同时还要画出其应力圆示意图,以直观的显示其应力状态。
对于空间应力状态,输入量则应该为各应力(,,,,,x y z xy yz xz σσστττ),其输出数据应该为该单元体所受主应力(123,,σσσ),所受最大剪应力(13max 132σσττ-==),同时还要画出其应力圆示意图,以直观的显示其应力状态。
这样,应力状态分析的基本任务就可以完成。
2、常用截面图形几何性质的分析在生活中,有各种各样的几何形状,但是对于工程实际中经常用到的构件,其截面的几何形状则非常有限。
对于不同的截面,其形心位置、对于形心轴的惯性矩也就有所不同,这样在进行如弯曲、扭转等的应力分析时就会到来不便,因此编制相应的程序来计算相关截面的几何性质也就具有了实际应用价值和可行性。
在这部分程序中,截面几何形状分为三角形、矩形、椭圆形、梯形、圆形、扇形等多种形式,对于不同的截面形状,输入量也就不同。
例如,对于扇形应输入直径和圆心角(,d α);对于梯形则应输入上底、下底和高(,,a b h );对于椭圆形,则要输入长轴长和短轴长(,a b )等等,在此不一一列举,具体输入数据请参看程序运行。
不过对于不同的截面,其输出的量都是相同的,即截面形心的位置、面积、对于形心轴的惯性矩(,,,,C C C C y z y z S I I ),这些输出量就是这些截面的基本几何性质参数,有了这些参数之后则可以对其进行进一步的计算和接下来的分析等问题。
这样,对于工程实际中常见的几种截面形状的几何性质的分析任务就可以用编写程序的方式来完成。
以上两项容即为本次上机实验程序的基本构成,两种功能相互配合、协调运行,以完成程序的稳定运行和人机交互,同时也可以解决工程实际中的一些比较简单的问题和任务,程序编制的任务就可以完成。
二、程序流程本程序分为三个窗体:主界面、应力状态分析界面、截面几何性质分析界面,下面将对各个界面进行程序流程的分析:1、主界面: 开始显示基本信息隐藏计算窗口选择计算任务显示相应的窗口继续运行结束程序运行截图:选择相应的计算程序,然后点击确定即可进入对应的计算程序窗口之中,如果点击退出则退出程序,菜单栏也包含有一些辅助的功能和相关的基本信息。
2、应力状态分析窗口开始定义变量及所用子函数选择应力状态,显示相应的输入提示图输入数据,赋值计算相关的输出量,并将其显示绘制应力圆继续下一步计算结束程序运行截图:点击某应力状态后,相应的输入框可用,输入数据之后,点击确定,输出计算结果,点击绘制应力圆,绘制对应的应力圆及坐标。
点击退出,退出程序;点击返回,返回主界面;点击清除,清除所有数据。
3、截面几何性质分析窗口开始定义变量及所用子函数选择几何形状,显示相应的输入提示图输入数据,赋值计算相关的输出量,并将其显示绘制截面构型图继续下一步计算结束程序运行截图:选择相应的形状类型,点击确定,显示提示图,输入框可用;输入数据,点击计算,输出计算结果和截面构型图;点击清除,清除所有数据和图形显示;点击返回,返回主界面;点击退出,结束程序运行。
按照此流程编制和应用程序,即可实现相应的设计任务。
三、具体某个问题和涉及到的计算公式以及相关理论本程序涉及多条公式及相关理论,现分部分阐述:1、平面应力状态分析平面应力状态任一斜截面上既有正应力又有切应力,则其公式为:平面应力状态主应力大小及方向公式为:(1)主应力计算公式(2)主平面方位计算公式(3)最大切应力:最大切应力发生在与主平面夹45度角的平面方位。
其公式为:应力圆:222222x y x y xy αασσσσσττ+-⎛⎫⎛⎫-+=+ ⎪ ⎪⎝⎭⎝⎭圆心: 2x y a σσ+=半径: 222x y xy R σστ-⎛⎫=+ ⎪⎝⎭根据数学建模结果,编制相应的程序,即可计算出结果。
2、空间应力状态分析三向应力计算公式:特征方程:系数分别为:1x y z I σσσ=++2x yx y zy z xz xy y yz z zx x I στστσττστστσ=++3xyx zx xyy zy xz yz z I στττστττσ=解出此特征方程即可求出单元体的三个主应力,求解该方程可以采用盛金公式,容如下:一元三次方程aX 3+bX 2+cX +d=0,(a ,b ,c ,d ∈R ,且a≠0)。
重根判别式:A=b 2-3ac ;B=bc -9ad ;C=c 2-3bd ,总判别式:Δ=B 2-4AC 。
当A=B=0时,盛金公式①:X 1=X 2=X 3=-b/(3a)=-c/b=-3d/c 。
当Δ=B 2-4AC>0时,盛金公式②:X 1=(-b -(Y 11/3+Y 21/3))/(3a);X 2,3=(-2b +Y 11/3+Y 21/3±31/2 (Y 11/3-Y 21/3)i)/(6a); 其中Y 1,2=Ab +3a (-B±(B 2-4AC)1/2)/2,i 2=-1。
当Δ=B 2-4AC=0时,盛金公式③:X 1=-b/a +K ;X 2=X 3=-K/2,其中K=B/A ,(A≠0)。
当Δ=B 2-4AC<0时,盛金公式④:X 1= (-b -2A 1/2cos(θ/3) )/(3a); X 2,3= (-b +A 1/2(cos(θ/3)±31/2sin(θ/3)))/(3a);其中θ=arccosT ,T= (2Ab -3aB)/(2A 3/2),(A>0,-1<T<1)。
盛金判别法①:当A=B=0时,方程有一个三重实根;②:当Δ=B 2-4AC>0时,方程有一个实根和一对共轭虚根; ③:当Δ=B 2-4AC=0时,方程有三个实根,其中有一个两重根; ④:当Δ=B 2-4AC<0时,方程有三个不相等的实根。
据此即可解除一元三次方程,得到单元体的主应力。
然后即可根据主应力做出三向应力状态应力圆:121223231313121223231313222222C C C R R R σσσσσσσσσσσσ+=+=+=-=-=-=据此即可做出应力圆及其坐标系。
3、截面几何性质分析本计算程序所用公式较多,如下表所示:按照此表所提供的公式编制程序,即可计算出相应的截面几何性质。
由此,该程序的数学建模过程完成,可以照此编制出相应的程序。
四、程序源代码代码分为三部分:主界面、应力分析窗口、截面几何性质分析窗口:1、主界面'1308***班,11308***10,***'2015年6月21日Private Sub Command2_Click() EndEnd SubPrivate Sub Form_Load()main.Showyingli.Hidejihe.HideEnd SubPrivate Sub jiaoshi_Click()MsgBox "桂莲"End SubPrivate Sub shijian_Click()MsgBox "2015年6月2日" End SubPrivate Sub tuichu_Click()EndEnd SubPrivate Sub zuozhe_Click()MsgBox "11308***10—***"End SubPrivate Sub Command1_Click()If Option1.Value = True Thenyingli.ShowElseIf Option2.Value = True Thenjihe.ShowElseMsgBox "请选择项目"End IfEnd Sub2、应力状态分析窗口Option ExplicitConst pi = 3.1415926Dim σx, σy, σz, σ1, σ2, σ3, τxy, τyz, τxz, τmax, σα, τα, α, ασ As Double Dim temp As DoubleDim I1, I2, I3 As DoubleDim R, C, C12, C23, C31, R12, R23, R31 As DoubleDim j, i As DoublePrivate Sub Command3_Click()EndEnd SubPrivate Sub Command4_Click() yingli.HideEnd SubPrivate Sub Command2_Click() Text1.Text = 0Text2.Text = 0Text3.Text = 0Text4.Text = 0Text5.Text = 0Text6.Text = 0Text7.Text = 0Text8.Text = 0Text9.Text = 0Text10.Text = 0Text11.Text = 0Text12.Text = 0Text13.Text = 0Text14.Text = 0End SubPrivate Sub Command5_Click() Set Picture1.Picture = Nothingσx = Val(Text1.Text)σy = Val(Text2.Text)σz = Val(Text3.Text)τxy = Val(Text4.Text)τyz = Val(Text5.Text)τxz = Val(Text6.Text)α = Val(Text7.Text) / 180 * piIf Option1.Value = True ThenR = Sqr(((σx - σy) / 2) ^ 2 + τxy ^ 2)C = (σx + σy) / 2Picture1.Scale (C - 2 * R - 1, 2 * R + 1)-(C + 2 * R + 1, -2 * R - 1) Picture1.DrawStyle = 0Picture1.DrawWidth = 1Picture1.Line (C - 2 * R - 2, 0)-(C + 2 * R + 2, 0)Picture1.Line (0, 2 * R + 2)-(0, -2 * R - 2)Picture1.DrawWidth = 2Picture1.Circle (C, 0), RPicture1.Line (σx, -τxy)-(σy, τxy)Picture1.DrawWidth = 5Picture1.PSet (σx, -τxy), vbRedPicture1.PSet (σy, τxy), vbRedPicture1.PSet (C + R, 0), vbRedPicture1.PSet (C - R, 0), vbRedPicture1.CurrentX = C - R: Picture1.CurrentY = 0Picture1.Print "σmin"Picture1.CurrentX = C + R: Picture1.CurrentY = 0Picture1.Print "σmax"Pic ture1.CurrentX = σy: Picture1.CurrentY = τxyPicture1.Print "Y(σy,τxy)"Picture1.CurrentX = σx: Picture1.CurrentY = -τxyPicture1.Print "X(σx,-τxy)"Picture1.CurrentX = 0: Picture1.CurrentY = 0Picture1.Print "O"Picture1.DrawStyle = 2Picture1.DrawWidth = 1For i = 0 To 200 Step 1Picture1.Line (-20 * R + i * 0.2 * R, -2 * R - 2)-(-20 * R + i * 0.2 * R, 2 * R + 2)Picture1.Line (C - 2 * R - 2, -20 * R + i * 0.2 * R)-(C + 2 * R + 2, -20 * R + i * 0.2 * R)Next iElseIf Option2.Value = True ThenC12 = (σ1 + σ2) / 2C23 = (σ2 + σ3) / 2C31 = (σ3 + σ1) / 2R12 = (σ1 - σ2) / 2R23 = (σ2 - σ3) / 2R31 = (σ1 - σ3) / 2Picture1.Scale (C31 - 2 * R31 - 1, 2 * R31 + 1)-(C31 + 2 * R31 + 1, -2 * R31 - 1)Picture1.DrawStyle = 0Picture1.DrawWidth = 1Picture1.Line (C31 - 2 * R31 - 2, 0)-(C31 + 2 * R31 + 2, 0)Picture1.Line (0, 2 * R31 + 2)-(0, -2 * R31 - 2)Picture1.DrawStyle = 2For i = 0 To 200 Step 1Picture1.Line (-20 * R31 + i * 0.2 * R31, -2 * R31 - 2)-(-20 * R31 + i * 0.2 * R31, 2 * R31 + 2)Picture1.Line (C31 - 2 * R31 - 2, -20 * R31 + i * 0.2 * R31)-(C31 + 2 * R31 + 2, -20 * R31 + i * 0.2 * R31)Next iPicture1.DrawWidth = 2Picture1.Circle (C12, 0), R12Picture1.Circle (C23, 0), R23Picture1.Circle (C31, 0), R31Picture1.CurrentX = C12: Picture1.CurrentY = 0Picture1.Print "C12"Picture1.CurrentX = C23: Picture1.CurrentY = 0Picture1.Print "C23"Picture1.CurrentX = C31: Picture1.CurrentY = 0Picture1.Print "C31"Picture1.CurrentX = σ1: Picture1.CurrentY = 0Picture1.Print "σ1"Picture1.CurrentX = σ2: Picture1.CurrentY = 0Picture1.Print "σ2"Picture1.CurrentX = σ3: Picture1.CurrentY = 0Picture1.Print "σ3"Picture1.CurrentX = 0: Picture1.CurrentY = 0Picture1.Print "O"Picture1.DrawWidth = 4Picture1.PSet (C12, 0)Picture1.PSet (C23, 0)Picture1.PSet (C31, 0)Picture1.DrawWidth = 5Picture1.PSet (σ1, 0), vbRedPicture1.PSet (σ2, 0), vbRedPicture1.PSet (σ3, 0), vbRedElseMsgBox "请选择应力状态"End IfEnd SubPrivate Sub Command6_Click()Picture1.Picture = NothingEnd SubPrivate Sub Form_Load()Option1.Value = FalseOption2.Value = False End SubPrivate Sub Option1_Click() Image1.Visible = TrueImage2.Visible = FalseText1.Enabled = TrueText2.Enabled = TrueText3.Enabled = FalseText4.Enabled = TrueText5.Enabled = FalseText6.Enabled = FalseText7.Enabled = TrueText8.Enabled = TrueText9.Enabled = TrueText10.Enabled = TrueText11.Enabled = TrueText12.Enabled = TrueText13.Enabled = TrueText14.Enabled = TrueLabel3.Enabled = FalseLabel5.Enabled = FalseLabel10.Enabled = FalseLabel12.Enabled = FalseLabel13.Enabled = FalseLabel19.Enabled = TrueLabel20.Enabled = TrueLabel21.Enabled = TrueLabel26.Enabled = TrueLabel27.Enabled = TrueLabel28.Enabled = TrueLabel7.Enabled = TrueLabel14.Enabled = True End SubPrivate Sub Option2_Click() Image2.Visible = TrueImage1.Visible = FalseText1.Enabled = TrueText2.Enabled = TrueText3.Enabled = TrueText4.Enabled = TrueText5.Enabled = TrueText6.Enabled = TrueText7.Enabled = FalseText8.Enabled = TrueText9.Enabled = TrueText11.Enabled = TrueText12.Enabled = FalseText13.Enabled = FalseText14.Enabled = FalseLabel3.Enabled = TrueLabel5.Enabled = TrueLabel6.Enabled = TrueLabel7.Enabled = FalseLabel14.Enabled = FalseLabel10.Enabled = TrueLabel12.Enabled = TrueLabel13.Enabled = TrueLabel19.Enabled = FalseLabel20.Enabled = FalseLabel21.Enabled = FalseLabel26.Enabled = FalseLabel27.Enabled = FalseLabel28.Enabled = FalseEnd SubFunction Arccos(X) As Double '反余弦Arccos = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1) End FunctionPrivate Sub Command1_Click()If Option1.Value = True Thenσx = Val(Text1.Text)σy = Val(Text2.Text)τxy = Val(Text4.Text)α = Val(Text7.Text) / 180 * piσα = (σx + σy) / 2 + (σx - σy) / 2 * Cos(2 * α) + τxy * Sin(2 * α)τα = -(σx - σy) / 2 * Sin(2 * α) + τxy * Cos(2 * α)If σx <> σy Thenασ = (Atn(2 * τxy / (σx - σy)) / 2) / pi * 180Elseασ = 90End Ifσ1 = (σx + σy) / 2 + Sqr(((σx - σy) / 2) ^ 2 + τxy ^ 2)σ2 = (σx + σy) / 2 - Sqr(((σx - σy) / 2) ^ 2 + τxy ^ 2)σ3 = 0If σ2 > σ1 Thentemp = σ1σ1 = σ2σ2 = tempEnd IfIf σ3 > σ1 Thentemp = σ1σ1 = σ3σ3 = tempEnd IfIf σ3 > σ2 Thentemp = σ2σ2 = σ3σ3 = tempEnd Ifτmax = (σ1 - σ3) / 2Text8.Text = σ1Text9.Text = σ2Text10.Text = σ3Text11.Text = τmaxText12.Text = σαText13.Text = ταText14.Text = ασElseIf Option2.Value = True Thenσx = Val(Text1.Text)σy = Val(Text2.Text)σz = Val(Text3.Text)τxy = Val(Text4.Te xt)τyz = Val(Text5.Text)τxz = Val(Text6.Text)I1 = σx + σy + σzI2 = (σx * σy - τxy ^ 2) + (σy * σz - τyz ^ 2) + (σz * σx - τxz ^ 2)I3 = σx * σy * σz + τxy * τyz * τxz + τxy * τyz * τxz - σx * τyz * τyz - σz * τxy* τxy - σy * τxz * τxzDim aa, bb, cc, dd As DoubleDim a1, b1, c1, derta As Doubleaa = 1bb = -I1cc = I2dd = -I3a1 = bb ^ 2 - 3 * aa * ccb1 = bb * cc - 9 * aa * ddc1 = cc * cc - 3 * bb * ddderta = b1 * b1 - 4 * a1 * c1If (0 = a1) And (0 = b1) Thenσ1 = -bb / (3 * aa)σ2 = -bb / (3 * aa)σ3 = -bb / (3 * aa)'ElseIf derta > 0 Then'Dim y1, y2 As Double'y1 = a1 * b + 3 * a * (-b1 + Sqr(b1 ^ 2 - 4 * a1 * c1)) / 2'y2 = a1 * b + 3 * a * (-b1 - Sqr(b1 ^ 2 - 4 * a1 * c1)) / 2'σ1 = (-b - (y1 ^ (1 / 3) + y2 ^ (1 / 3))) / (3 * a)'σ2 = (-b + (y1 ^ (1 / 3) + y2 ^ (1 / 3)) / 2 + Sqr(3) / 2 * (y1 ^ (1 / 3) - y2 ^ (1 / 3)) * i) / (3 * a)'σ3 = (-b + (y1 ^ (1 / 3) + y2 ^ (1 / 3)) / 2 - Sqr(3) / 2 * (y1 ^ (1 / 3) - y2 ^ (1 / 3)) * i) / (3 * a)ElseIf (0 = derta) Thenσ1 = -bb / aa + b1 / a1σ2 = -b1 / (a1 * 2)σ3 = -b1 / (a1 * 2)ElseIf (derta < 0) ThenDim θ As Doubleθ = Arccos((2 * a1 * bb - 3 * aa * b1) / (2 * Sqr(a1 * a1 * a1))) σ1 = (-bb - 2 * Sqr(a1) * Cos(θ / 3)) / (3 * aa)σ2 = (-bb + Sqr(a1) * (Cos(θ / 3) + Sqr(3) * Sin(θ / 3))) / (3 * aa)σ3 = (-bb + Sqr(a1) * (Cos(θ / 3) - Sqr(3) * Sin(θ / 3))) / (3 * aa) End IfIf σ2 > σ1 Thentemp = σ1σ1 = σ2σ2 = tempEnd IfIf σ3 > σ1 Thentemp = σ1σ1 = σ3σ3 = tempEnd IfIf σ3 > σ2 Thentemp = σ2σ2 = σ3σ3 = tempEnd Ifτmax = (σ1 - σ3) / 2Text8.Text = σ1Text9.Text = σ2Text10.Text = σ3Text11.Text = τmaxElseMsgBox "请选择应力状态"End IfEnd Sub3、截面几何性质分析窗口Option ExplicitDim a, b, h As DoubleDim d, al As DoubleDim iyc, izc, s, yc, zc As Double Const pi = 3.Private Sub Command1_Click()Command5.SetFocusIf Combo1.Text = "三角形" ThenFrame1.Visible = TrueImage1.Visible = TrueImage2.Visible = FalseFrame3.Visible = FalseImage3.Visible = FalseFrame4.Visible = FalseImage5.Visible = FalseFrame5.Visible = FalseImage6.Visible = FalseFrame6.Visible = FalseElseIf Combo1.Text = "矩形" Then Frame1.Visible = TrueImage2.Visible = TrueImage1.Visible = FalseFrame3.Visible = FalseImage3.Visible = FalseFrame4.Visible = FalseImage4.Visible = FalseImage5.Visible = FalseFrame5.Visible = FalseImage6.Visible = FalseFrame6.Visible = FalseElseIf Combo1.Text = "圆形" Then Frame3.Visible = TrueImage3.Visible = TrueImage2.Visible = FalseImage1.Visible = FalseFrame1.Visible = FalseImage4.Visible = FalseImage5.Visible = FalseFrame5.Visible = FalseImage6.Visible = FalseFrame6.Visible = FalseElseIf Combo1.Text = "梯形" Then Image5.Visible = TrueFrame5.Visible = TrueFrame3.Visible = FalseImage3.Visible = FalseImage2.Visible = FalseImage1.Visible = FalseFrame1.Visible = FalseFrame4.Visible = FalseImage4.Visible = FalseImage6.Visible = FalseFrame6.Visible = FalseElseIf Combo1.Text = "椭圆形" Then Image6.Visible = TrueFrame6.Visible = TrueImage1.Visible = FalseFrame1.Visible = FalseImage3.Visible = FalseFrame3.Visible = FalseImage4.Visible = FalseFrame4.Visible = FalseImage5.Visible = FalseFrame5.Visible = FalseElseIf Combo1.Text = "扇形" Then Frame4.Visible = TrueImage4.Visible = TrueImage5.Visible = FalseFrame3.Visible = FalseImage3.Visible = FalseImage2.Visible = FalseImage1.Visible = FalseFrame1.Visible = FalseFrame5.Visible = FalseImage6.Visible = FalseFrame6.Visible = FalseElseIf Combo1.Text = "组合图形" ThenElseMsgBox "请选择截面形状"End SubPrivate Sub Command2_Click() Text1.Text = "0"Text2.Text = "0"Text3.Text = "0"Text4.Text = "0"Text5.Text = "0"Text6.Text = "0"Text7.Text = "0"Text8.Text = "0"Text9.Text = "0"Text10.Text = "0"Text11.Text = "0"Text12.Text = "0"Text13.Text = "0"Text14.Text = "0"Text15.Text = "0"Set Picture1.Picture = Nothing End SubPrivate Sub Command3_Click() jihe.Hidemain.ShowPrivate Sub Command4_Click()EndEnd SubPrivate Sub Command5_Click()Set Picture1.Picture = NothingIf Combo1.Text = "三角形" Thenb = Val(Text1.Text)h = Val(Text2.Text)If b <= 0 Or h <= 0 ThenMsgBox "输入错误"Elses = 0.5 * b * hyc = b / 3zc = h / 3iyc = b * h ^ 3 / 36izc = h * b ^ 3 / 36Text3.Text = ycText4.Text = zcText5.Text = iycText6.Text = iycText7.Text = sPicture1.Scale (-(b + h) / 2, 3 * (b + h) / 2)-(3 * (b + h) / 2, -(b + h) / 2)Picture1.DrawStyle = 0Picture1.DrawWidth = 1Picture1.Line (-(b + h) / 2, 0)-(3 * (b + h) / 2, 0)Picture1.Line (0, -(b + h) / 2)-(0, 3 * (b + h) / 2)Picture1.DrawWidth = 2Picture1.Line (0, 0)-(0, h)Picture1.Line (0, h)-(b, 0)Picture1.Line (b, 0)-(0, 0)Picture1.DrawWidth = 5Picture1.PSet (yc, zc), vbRedPicture1.CurrentX = 0: Picture1.CurrentY = 0Picture1.Print "O"Picture1.CurrentX = yc: Picture1.CurrentY = zcPicture1.Print "C"Picture1.CurrentX = yc: Picture1.CurrentY = 3 * h / 2 Picture1.Print "zc"Picture1.CurrentX = 3 * b / 2: Picture1.CurrentY = zc Picture1.Print "yc"Picture1.CurrentX = 0: Picture1.CurrentY = 3 * (h + b) / 2 Picture1.Print "z"Picture1.CurrentX = 17 * (h + b) / 12: Picture1.CurrentY = 0 Picture1.Print "y"Picture1.DrawWidth = 1Picture1.Line (yc, zc)-(yc, 3 * h / 2)Picture1.Line (yc, zc)-(3 * b / 2, zc)End IfElseIf Combo1.Text = "矩形" Thenb = Val(Text1.Text)h = Val(Text2.Text)If b <= 0 Or h <= 0 ThenMsgBox "输入错误"Elses = b * hyc = b / 2zc = h / 2iyc = b * h ^ 3 / 12izc = h * b ^ 3 / 12Text3.Text = ycText4.Text = zcText5.Text = iycText6.Text = iycText7.Text = sPicture1.Scale (-(b + h) / 2, 3 * (b + h) / 2)-(3 * (b + h) / 2, -(b + h) / 2)Picture1.DrawStyle = 0Picture1.DrawWidth = 1Picture1.Line (-(b + h) / 2, 0)-(3 * (b + h) / 2, 0)Picture1.Line (0, -(b + h) / 2)-(0, 3 * (b + h) / 2)Picture1.DrawWidth = 2Picture1.Line (0, 0)-(0, h)Picture1.Line (0, h)-(b, h)Picture1.Line (b, h)-(b, 0)Picture1.Line (b, 0)-(0, 0)Picture1.DrawWidth = 5Picture1.PSet (yc, zc), vbRedPicture1.CurrentX = 0: Picture1.CurrentY = 0Picture1.Print "O"Picture1.CurrentX = yc: Picture1.CurrentY = zcPicture1.Print "C"Picture1.CurrentX = yc: Picture1.CurrentY = 3 * h / 2Picture1.Print "zc"Picture1.CurrentX = 3 * b / 2: Picture1.CurrentY = zcPicture1.Print "yc"Picture1.CurrentX = 0: Picture1.CurrentY = 3 * (h + b) / 2Picture1.Print "z"Picture1.CurrentX = 17 * (h + b) / 12: Picture1.CurrentY = 0Picture1.Print "y"Picture1.DrawWidth = 1Picture1.Line (yc, zc)-(yc, 3 * h / 2)Picture1.Line (yc, zc)-(3 * b / 2, zc)End IfElseIf Combo1.Text = "圆形" Thend = Val(Text8.Text)If d <= 0 ThenMsgBox "输入错误"Elses = pi * d ^ 2 / 4yc = 0zc = d / 2iyc = pi * d ^ 4 / 64izc = pi * d ^ 4 / 64Text3.Text = ycText4.Text = zcText5.Text = iycText6.Text = iycText7.Text = sPicture1.Scale (-d, 3 * d / 2)-(d, -d / 2)Picture1.DrawStyle = 0Picture1.DrawWidth = 1Picture1.Line (-d, 0)-(d, 0)Picture1.Line (0, 3 * d / 2)-(0, -d / 2)Picture1.DrawWidth = 2Picture1.Circle (0, d / 2), d / 2Picture1.DrawWidth = 5Picture1.PSet (yc, zc), vbRedPicture1.CurrentX = 0: Picture1.CurrentY = 0Picture1.Print "O"Picture1.CurrentX = yc: Picture1.CurrentY = zcPicture1.Print "C"Picture1.CurrentX = yc: Picture1.CurrentY = 17 * d / 12Picture1.Print "zc"Picture1.CurrentX = 0.9 * d: Picture1.CurrentY = zcPicture1.Print "yc"Picture1.CurrentX = 0: Picture1.CurrentY = 3 * d / 2Picture1.Print "z"Picture1.CurrentX = 0.9 * d: Picture1.CurrentY = 0Picture1.Print "y"Picture1.DrawWidth = 1Picture1.Line (yc, zc)-(yc, 17 * d / 12)Picture1.Line (yc, zc)-(0.9 * d, zc)End IfElseIf Combo1.Text = "梯形" Thena = Val(Text11.Text)b = Val(Text12.Text)h = Val(Text13.Text)If a <= 0 Or b <= 0 Or h <= 0 ThenMsgBox "输入错误"Elses = (a + b) * h / 2yc = (a ^ 2 + b ^ 2 + a * b) / (3 * (a + b))zc = (b + 2 * a) * h / (3 * (a + b))iyc = h ^ 3 * (b ^ 2 + 4 * a * b - a ^ 2) / (36 * (a + b))Text3.Text = ycText4.Text = zcText5.Text = iycText6.Text = ""Text7.Text = sPicture1.Scale (-(b + h) / 2, 3 * (b + h) / 2)-(3 * (b + h) / 2, -(b + h) / 2) Picture1.DrawStyle = 0Picture1.DrawWidth = 1Picture1.Line (-(b + h) / 2, 0)-(3 * (b + h) / 2, 0)Picture1.Line (0, -(b + h) / 2)-(0, 3 * (b + h) / 2)Picture1.DrawWidth = 2Picture1.Line (0, 0)-(0, h)Picture1.Line (0, h)-(a, h)Picture1.Line (a, h)-(b, 0)Picture1.Line (b, 0)-(0, 0)Picture1.DrawWidth = 5Picture1.PSet (yc, zc), vbRedPicture1.CurrentX = 0: Picture1.CurrentY = 0Picture1.Print "O"Picture1.CurrentX = yc: Picture1.CurrentY = zcPicture1.Print "C"Picture1.CurrentX = yc: Picture1.CurrentY = 3 * h / 2Picture1.Print "zc"Picture1.CurrentX = 3 * b / 2: Picture1.CurrentY = zcPicture1.Print "yc"Picture1.CurrentX = 0: Picture1.CurrentY = 3 * (h + b) / 2Picture1.Print "z"Picture1.CurrentX = 17 * (h + b) / 12: Picture1.CurrentY = 0Picture1.Print "y"Picture1.DrawWidth = 1Picture1.Line (yc, zc)-(yc, 3 * h / 2)Picture1.Line (yc, zc)-(3 * b / 2, zc)End IfElseIf Combo1.Text = "椭圆形" Thena = Val(Text14.Text)b = Val(Text15.Text)If a <= 0 Or b <= 0 ThenMsgBox "输入错误"Elses = pi * a * b / 4yc = 0zc = b / 2iyc = pi * a * b ^ 3 / 64Text3.Text = ycText4.Text = zcText5.Text = iycText6.Text = ""Text7.Text = sPicture1.Scale (-(b + a) / 2, 3 * (b + a) / 2)-(3 * (b + a) / 2, -(b + a) / 2) Picture1.DrawStyle = 0Picture1.DrawWidth = 1Picture1.Line (-(b + a) / 2, 0)-(3 * (b + a) / 2, 0)Picture1.Line (0, -(b + a) / 2)-(0, 3 * (b + a) / 2)Picture1.DrawWidth = 2If a >= b ThenPicture1.Circle (0, b / 2), a / 2, , , , b / aElsePicture1.Circle (0, b / 2), b / 2, , , , b / aEnd IfPicture1.DrawWidth = 5Picture1.PSet (yc, zc), vbRedPicture1.CurrentX = 0: Picture1.CurrentY = 0Picture1.Print "O"Picture1.CurrentX = yc: Picture1.CurrentY = zcPicture1.Print "C"Picture1.CurrentX = yc: Picture1.CurrentY = 3 * b / 2Picture1.Print "zc"Picture1.CurrentX = 3 * a / 2: Picture1.CurrentY = zcPicture1.Print "yc"Picture1.CurrentX = 0: Picture1.CurrentY = 3 * (a + b) / 2Picture1.Print "z"Picture1.CurrentX = 17 * (a + b) / 12: Picture1.CurrentY = 0Picture1.Print "y"Picture1.DrawWidth = 1Picture1.Line (yc, zc)-(yc, 3 * b / 2)Picture1.Line (yc, zc)-(3 * a / 2, zc)End IfElseIf Combo1.Text = "扇形" Thend = Val(Text9.Text)al = Val(Text10.Text)If al > pi / 2 Or al <= 0 Or d <= 0 ThenMsgBox "输入错误"Elses = al * d ^ 2 / 4yc = 0zc = d * Sin(al) / 3 / aliyc = d ^ 4 / 64 * (al + Sin(al) * Cos(al) - 16 * Sin(al) * Sin(al) / 9 / al)Text3.Text = ycText4.Text = zcText5.Text = iycText6.Text = ""Text7.Text = sPicture1.Scale (-d, 3 * d / 2)-(d, -d / 2)Picture1.DrawStyle = 0Picture1.DrawWidth = 1Picture1.Line (-d, 0)-(d, 0)Picture1.Line (0, 3 * d / 2)-(0, -d / 2)Picture1.DrawWidth = 2Picture1.Circle (0, 0), d / 2, , (pi / 2 - al), (pi / 2 + al) Picture1.Line (0, 0)-(d / 2 * Sin(al), d / 2 * Cos(al)) Picture1.Line (0, 0)-(-d / 2 * Sin(al), d / 2 * Cos(al)) Picture1.DrawWidth = 5Picture1.PSet (yc, zc), vbRedPicture1.CurrentX = 0: Picture1.CurrentY = 0Picture1.Print "O"Picture1.CurrentX = yc: Picture1.CurrentY = zc Picture1.Print "C"Picture1.CurrentX = yc: Picture1.CurrentY = 17 * d / 12 Picture1.Print "zc"Picture1.CurrentX = 0.9 * d: Picture1.CurrentY = zc Picture1.Print "yc"Picture1.CurrentX = 0: Picture1.CurrentY = 3 * d / 2 Picture1.Print "z"Picture1.CurrentX = 0.9 * d: Picture1.CurrentY = 0 Picture1.Print "y"Picture1.DrawWidth = 1Picture1.Line (yc, zc)-(yc, 17 * d / 12)Picture1.Line (yc, zc)-(0.9 * d, zc)End IfElseIf Combo1.Text = "组合图形" ThenElseMsgBox "请选择截面形状"End IfEnd Sub五、具体问题的计算结果和结果分析(对或者不对)下面对各计算程序进行应用、验证和运行结果的分析:1、平面应力状态分析已知应力状态:σx=56.92MPa,σy=34.63MPa,τxy=66.64MPa,α=52.99°求指定截面的应力,并求出主应力和最大切应力。