2009 1 9 2 1. 1 2. 2 2.1......................................... 2 2.2 csv.................................... 3 2.3 csv.................................. 3 3. 4 3.1......................................... 4 3.2 csv.................................... 5 3.3 csv.................................. 5 4. 6 5. 8 6. 11
1. FEM FORTRAN Microsoft Visual Basic 2008 Express Edition 2 - - - 3 VB 1 2 3 1 png [1] FEM 2006 8 1
2. 2.1 - - - Form1 Form2 1 Form1 2 Form2 3 Form1 Form2 Form Form1 Form1 Label Form2 fname1 = My.Forms.Form1.Label1.Text Form1 Label Text Error Error 0 Form1 2
2.2 csv NODT NEX,MIN ibex(i) (NEX ) ibin(i) (MIN ) 0 ibno(i,1), ibno(i,ibex(i)) (NEX ) NOB,NIB px(i),py(i) 1 x y (NOB+NIB ) ibno(i,j) 1 1 2 3 2.3 csv NODE,NELM mtj(i,1),mtj(i,2),mtj(i,3),idm(i) mtj(i,j) - idm(i) - (NELM ) px(i),py(i) (x,y) (NODE ) 3
3. 3.1 1 - - Form1 Form2 Form3 Form4 Form2 workf2.csv Form3 workf3.csv 1 Form1 2 Form2 4 3 Form1 Form4 Form Form1 Form1 Label Form2 fname1 = My.Forms.Form1.Label1.Text Form1 Label Text Error Error 0 Form1 4
3.2 csv NEX,MIN ibex(i),delx(i) ibex(i) (NEX ) delx(i) ibin(i) (MIN ) 0 ibno(i,1), ibno(i,ibex(i)) (NEX ) NOB,NIB px(i),py(i) 1 x y (NOB+NIB ) delx(i) ibno(i,j) 1 (NODT) (delx) 2 3.3 csv NODE,NELM mtj(i,1),mtj(i,2),mtj(i,3),mtj(i,4) mtj(i,j) - (NELM ) px(i),py(i) (x,y) (NODE ) 5
4. 3 IIIIII II 1 10 1 I 2 3 5 I 11 10 8 9 II III 7 1 4 6 1 20 NODT 3,1 NEX,MIN 4 ibex(1) 1 ( I) 4 ibex(2) 2 ( II) 3 ibex(3) 3 ( III) 3 ibin(1) 1 1,2,3,4 ibno(1,1),ibno(1,2),ibno(1,3),ibno(1,4) 1 ( I) 4,3,5,6 ibno(2,1),ibno(2,2),ibno(2,3),ibno(2,4) 2 ( II) 6,5,7 ibno(3,1),ibno(3,2),ibno(3,3) 3 ( III) 10,1 NOB,NIB 0,0 px(1),py(1) 1 0,10 px(2),py(2) 2 5,10 px(3),py(3) 3 5,0 px(4),py(4) 4 25,10 px(5),py(5) 5 25,0 px(6),py(6) 6 30,5 px(7),py(7) 7 10,3 px(8),py(8) 8 15,3 px(9),py(9) 9 12,7 px(10),py(10) 10 2.5,5 px(11),py(11) 11 2 3,1 NEX,MIN 4,5 ibex(1),delx(1) 1 ( I) 4,5 ibex(2),delx(2) 2 ( II) 3,5 ibex(3),delx(3) 3 ( III) 3 ibin(1) 1 1,2,3,4 ibno(1,1),ibno(1,2),ibno(1,3),ibno(1,4) 1 ( I) 4,3,5,6 ibno(2,1),ibno(2,2),ibno(2,3),ibno(2,4) 2 ( II) 6,5,7 ibno(3,1),ibno(3,2),ibno(3,3) 3 ( III) 10,1 NOB,NIB 0,0 px(1),py(1) 1 0,10 px(2),py(2) 2 5,10 px(3),py(3) 3 5,0 px(4),py(4) 4 25,10 px(5),py(5) 5 25,0 px(6),py(6) 6 30,5 px(7),py(7) 7 10,3 px(8),py(8) 8 15,3 px(9),py(9) 9 12,7 px(10),py(10) 10 2.5,5 px(11),py(11) 11 6
50 50 74 52 42 1 7
5. 150mm 300mm 30mm 15mm 2 2.5 12 12 6 NIB=0 1 121315160 61713121 72767781 2 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 61 62 63 64 65 66 67 68 69 70 71 22 23 24 25 26 27 28 29 30 77 78 81 80 79 72 73 76 75 74 60 59 58 57 56 55 54 53 52 150mm(15mm@10) 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 30mm 300mm(15mm@20) 8
Dim rando as New Random Random Next For i = 1 To MIN MIN aa(i) = CDbl(rando.Next(2, 10)) 210mm bb(i) = CDbl(rando.Next(2, 10)) 210mm alpha(i) = CDbl(rando.Next(180)) / 180.0 * pi 0180 Next i Private Sub HOLEXY _ (ByRef nd As Integer, ByVal n As Integer, ByVal xx As Double, ByVal yy As Double, _ ByVal a As Double, ByVal b As Double, ByVal alp As Double, _ ByRef px() As Double, ByRef py() As Double, ByVal idiv As Integer) Dim i As Integer : Dim m As Integer : Dim dy As Double Dim xw As Double : Dim yw As Double : Dim r As Double Dim x1 As Double : Dim y1 As Double : Dim theta() As Double ReDim theta(n) Select Case idiv Case 0 For i = 1 To n theta(i) = 2.0 * pi / CDbl(n) * CDbl(i - 1) Next i Case 1 y n m = CInt(n / 2) dy = 2.0 * b / CDbl(m) For i = 1 To m yw = b - dy * CDbl(i - 1) xw = a / b * (-Math.Sqrt(b ^ 2 - yw ^ 2)) r = Math.Sqrt(xw ^ 2 + yw ^ 2) theta(i) = Math.Acos(Math.Abs(yw) / r) If yw < 0.0 Then theta(i) = pi - theta(i) Next i For i = 1 To m yw = -b + dy * CDbl(i - 1) xw = a / b * (Math.Sqrt(b ^ 2 - yw ^ 2)) r = Math.Sqrt(xw ^ 2 + yw ^ 2) theta(m + i) = Math.Acos(Math.Abs(yw) / r) If yw < 0.0 Then theta(m + i) = pi + theta(m + i) Else theta(m + i) = 2.0 * pi - theta(m + i) End If Next i End Select For i = 1 To n nd = nd + 1 nd r = a * b / Math.Sqrt(b ^ 2 * Math.Sin(theta(i)) ^ 2 + a ^ 2 * Math.Cos(theta(i)) ^ 2) xw = -r * Math.Sin(theta(i)) x yw = r * Math.Cos(theta(i)) y x1 = xw * Math.Cos(alp) - yw * Math.Sin(alp) y1 = xw * Math.Sin(alp) + yw * Math.Cos(alp) px(nd) = xx + x1 py(nd) = yy + y1 Next i End Sub 9
3 Case 1 Case 2 Case 3 5mm 50 19 515mm 1 2 Case 1 Case 2 Case 3 5mm 50 5 15mm 19 =1000 =1873 =2000 =3371 =2000 =3623 =903 =840 =3215 =2602 =1708 =1436 3 10
6. 2 FEM 3 4 4 5 3 150mm 300mm 10mm 20600 MPa 0.2 150mm 30mm 10mm 206000 MPa 0.3 5MPa x y 4 Case 1 Case 2 Case 3 50 19 5mm 515mm 1000 2000 2000 1873 3371 3623 sec*1) 29.06 254.36 254.22 mm 0.07266 0.08768 0.1015 mm 0.00734 0.00937 0.00994 MPa 5.364 17.045 22.969 MPa 2.064e4 1.711e4 1.479e4 MPa 0.202 0.214 0.196 903 3215 1708 840 2602 1436 sec*1) 23.35 1227.53 169.26 mm 0.0727 0.08955 0.10253 mm 0.00734 0.01007 0.01010 MPa 5.431 18.481 24.448 MPa 2.064e4 1.675e4 1.463e4 MPa 0.202 0.225 0.197 *1CPUIntel(R)Core(TM)2 Duo P84002.26GHzMemory2GB 11
Case 1 Case 2 Case 3 5mm 50 5 15mm 19 4 12
Case 1 Case 2 Case 3 5mm 50 5 15mm 19 5 13