《浅基础工程及程序设计》丁继辉程序代码 第四章 程序代码.docx

上传人:b****2 文档编号:24294306 上传时间:2023-05-26 格式:DOCX 页数:23 大小:18.23KB
下载 相关 举报
《浅基础工程及程序设计》丁继辉程序代码 第四章 程序代码.docx_第1页
第1页 / 共23页
《浅基础工程及程序设计》丁继辉程序代码 第四章 程序代码.docx_第2页
第2页 / 共23页
《浅基础工程及程序设计》丁继辉程序代码 第四章 程序代码.docx_第3页
第3页 / 共23页
《浅基础工程及程序设计》丁继辉程序代码 第四章 程序代码.docx_第4页
第4页 / 共23页
《浅基础工程及程序设计》丁继辉程序代码 第四章 程序代码.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

《浅基础工程及程序设计》丁继辉程序代码 第四章 程序代码.docx

《《浅基础工程及程序设计》丁继辉程序代码 第四章 程序代码.docx》由会员分享,可在线阅读,更多相关《《浅基础工程及程序设计》丁继辉程序代码 第四章 程序代码.docx(23页珍藏版)》请在冰豆网上搜索。

《浅基础工程及程序设计》丁继辉程序代码 第四章 程序代码.docx

《浅基础工程及程序设计》丁继辉程序代码第四章程序代码

4.6源程序代码

本章柱下交梁基础计算工程主要包括1个窗体,2个模块。

两个模块的程序代码与第一章基本一致,这里主要给出柱下交梁基础各节点的分配荷载计算的主要程序代码。

OptionExplicit

DimJiKuan'基底宽度

DimJiChang'基底长度

DimJik'基床系数

DimJiE'梁弹性模量

DimLxzuo,Lxyou'基础梁x方向左、右伸出长度

DimLyshang,Lyxia'基础梁y方向左、右伸出长度

DimXx(50),Yy(50)'荷载作用位置坐标(m.m)

DimNxy(50)'荷载类型"

DimFxy(50)

DimBxx(50),Byy(50)'分别为x,y方向基础梁底面宽度(m)

DimEIBxx(50),EIByy(50)'分别为x,y方向基础梁刚度

Dimα,β

DimRls

PrivateSubXishu()

IfRls<=0.6Thenα=1#+(1.41-1)/0.6*Rls

If(Rls>=0.6AndRls<=0.62)Thenα=1.43+(1.41-1.43)/(0.62-0.6)*(Rls-0.6)

If(Rls>=0.62AndRls<=0.64)Thenα=1.41+(1.38-1.4)/(0.64-0.62)*(Rls-0.62)

If(Rls>=0.64AndRls<=0.65)Thenα=1.38+(1.36-1.38)/(0.65-0.64)*(Rls-0.64)

If(Rls>=0.65AndRls<=0.66)Thenα=1.36+(1.35-1.36)/(0.66-0.65)*(Rls-0.65)

If(Rls>=0.66AndRls<=0.67)Thenα=1.35+(1.34-1.35)/(0.67-0.66)*(Rls-0.66)

If(Rls>=0.67AndRls<=0.68)Thenα=1.34+(1.32-1.34)/(0.68-0.67)*(Rls-0.67)

If(Rls>=0.68AndRls<=0.69)Thenα=1.32+(1.31-1.32)/(0.69-0.68)*(Rls-0.68)

If(Rls>=0.69AndRls<=0.7)Thenα=1.31+(1.3-1.31)/(0.7-0.69)*(Rls-0.69)

If(Rls>=0.7AndRls<=0.71)Thenα=1.3+(1.29-1.3)/(0.71-0.7)*(Rls-0.7)

If(Rls>=0.71AndRls<=0.73)Thenα=1.29+(1.26-1.29)/(0.73-0.71)*(Rls-0.71)

If(Rls>=0.73AndRls<=0.75)Thenα=1.24+(1.24-1.26)/(0.75-0.73)*(Rls-0.73)

If(Rls>=0.75)Thenα=1.24

IfRls<=0.6Thenβ=1#+(2.8-1#)/0.6*Rls

If(Rls>=0.6AndRls<=0.62)Thenβ=2.8+(2.84-2.8)/(0.62-0.6)*(Rls-0.6)

If(Rls>=0.62AndRls<=0.64)Thenβ=2.84+(2.91-2.84)/(0.64-0.62)*(Rls-0.62)

If(Rls>=0.64AndRls<=0.65)Thenβ=2.91+(2.94-2.91)/(0.65-0.64)*(Rls-0.64)

If(Rls>=0.65AndRls<=0.66)Thenβ=2.94+(2.96-2.94)/(0.66-0.65)*(Rls-0.65)

If(Rls>=0.66AndRls<=0.67)Thenβ=2.96+(3#-2.96)/(0.67-0.66)*(Rls-0.66)

If(Rls>=0.67AndRls<=0.68)Thenβ=3#+(3.03-3#)/(0.68-0.67)*(Rls-0.67)

If(Rls>=0.68AndRls<=0.69)Thenβ=3.03+(3.05-3.03)/(0.69-0.68)*(Rls-0.68)

If(Rls>=0.69AndRls<=0.7)Thenβ=3.05+(3.08-3.05)/(0.7-0.69)*(Rls-0.69)

If(Rls>=0.7AndRls<=0.71)Thenβ=3.08+(3.1-3.08)/(0.71-0.7)*(Rls-0.7)

If(Rls>=0.71AndRls<=0.73)Thenβ=3.1+(3.18-3.1)/(0.73-0.71)*(Rls-0.71)

If(Rls>=0.73AndRls<=0.75)Thenβ=3.18+(3.23-3.18)/(0.75-0.73)*(Rls-0.73)

If(Rls>=0.75)Thenβ=3.23

EndSub

PrivateSubCommand1_Click()

'截面特征值计算

CallTianJiaJiBen

CallTianJiaHeZai

Me.List4.AddItem("")

Me.List4.AddItem("计算节点分配荷载")

Me.List4.AddItem("")

'计算x方向梁刚度特征值

DimSxx(50)'x方向梁刚度特征值

DimSyy(50)'y方向梁刚度特征值

ForI=1ToList8.ListCount

Sxx(I)=Sqr(Sqr((4#*EIBxx(I)/(Jik*Bxx(I)))))

NextI

'计算y方向梁刚度特征值

ForI=1ToList9.ListCount

Syy(I)=Sqr(Sqr((4#*EIByy(I)/(Jik*Byy(I)))))

NextI

'计算分配荷载Fxx(i),Fyy(i)----分别为Fxy(xi,yi)在x方向和y方向的分配荷载

DimFxx(50),Fyy(50)

ForI=1ToList2.ListCount

IfNxy(I)=1Then'转角节点--左上角

IfLxzuo=0#AndLyshang=0#Or(Lyshang/Syy(I)-Lxyou/Sxx(I)<=0.01)Then

Fxx(I)=Fxy(I)*(Bxx(I)*Sxx(I)/(Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(Byy(I)*Syy(I)/(Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Else

Rls=Lyshang/Syy(I)

CallXishu

β1=β

Rls=Lxzuo/Sxx(I)

CallXishu

β2=β

Fxx(I)=Fxy(I)*(β1*Bxx(I)*Sxx(I)/(β1*Bxx(I)*Sxx(I)+β2*Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(β2*Byy(I)*Syy(I)/(β1*Bxx(I)*Sxx(I)+β2*Byy(I)*Syy(I)))

EndIf

EndIf

IfNxy(I)=2Then'端部节点--上端部:

x方向是无限长梁,y方向是半无限长梁

IfLyshang=0#Then

Fxx(I)=Fxy(I)*(4*Bxx(I)*Sxx(I)/(4*Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(Byy(I)*Syy(I)/(4*Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Else

Rls=Lyshang/Syy(I)

CallXishu

α1=α

Fxx(I)=Fxy(I)*(α1*Bxx(I)*Sxx(I)/(α1*Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(Byy(I)*Syy(I)/(α1*Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

EndIf

EndIf

IfNxy(I)=3Then'转角节点--右上角

If(Lxyou=0#AndLyshang=0#)Or(Lyshang/Syy(I)-Lxyou/Sxx(I)<=0.01)Then

Fxx(I)=Fxy(I)*(Bxx(I)*Sxx(I)/(Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(Byy(I)*Syy(I)/(Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Else

Rls=Lyshang/Syy(I)

CallXishu

β1=β

Rls=Lxyou/Sxx(I)

CallXishu

β1=β

Fxx(I)=Fxy(I)*(β1*Bxx(I)*Sxx(I)/(β1*Bxx(I)*Sxx(I)+β2*Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(β2*Byy(I)*Syy(I)/(β1*Bxx(I)*Sxx(I)+β2*Byy(I)*Syy(I)))

EndIf

EndIf

IfNxy(I)=4Then'端部节点--右端部:

x方向是半无限长梁,y方向是无限长梁

IfLxyou=0#Then

Fxx(I)=Fxy(I)*(Bxx(I)*Sxx(I)/(Bxx(I)*Sxx(I)+4*Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(4*Byy(I)*Syy(I)/(Bxx(I)*Sxx(I)+4*Byy(I)*Syy(I)))

Else

Rls=Lxyou/Sxx(I)

CallXishu

α1=α

Fxx(I)=Fxy(I)*(Bxx(I)*Sxx(I)/(Bxx(I)*Sxx(I)+α1*Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(α1*Byy(I)*Syy(I)/(Bxx(I)*Sxx(I)+α1*Byy(I)*Syy(I)))

EndIf

EndIf

IfNxy(I)=5Then'转角节点--右下角

If(Lxyou=0#AndLyxia=0#)Or(Lyxia/Syy(I)-Lxyou/Sxx(I)<=0.01)Then

Fxx(I)=Fxy(I)*(Bxx(I)*Sxx(I)/(Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(Byy(I)*Syy(I)/(Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Else

Rls=Lyxia/Syy(I)

CallXishu

β1=β

Rls=Lxyou/Sxx(I)

CallXishu

β2=β

Fxx(I)=Fxy(I)*(β1*Bxx(I)*Sxx(I)/(β1*Bxx(I)*Sxx(I)+β2*Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(β1*Byy(I)*Syy(I)/(β1*Bxx(I)*Sxx(I)+β2*Byy(I)*Syy(I)))

EndIf

EndIf

IfNxy(I)=6Then'端部节点--下端部:

x方向是半无限长梁,y方向是无限长梁

IfLyxia=0#Then

Fxx(I)=Fxy(I)*(4*Bxx(I)*Sxx(I)/(4*Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(Byy(I)*Syy(I)/(4*Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Else

Rls=Lyxia/Syy(I)

CallXishu

α1=α

Fxx(I)=Fxy(I)*(α1*Bxx(I)*Sxx(I)/(α1*Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(Byy(I)*Syy(I)/(α1*Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

EndIf

EndIf

IfNxy(I)=7Then'转角节点--左下角

If(Lxzuo=0#AndLyxia=0#)Or(Lyxia/Syy(I)-Lxzuo/Sxx(I)<=0.01)Then

Fxx(I)=Fxy(I)*(Bxx(I)*Sxx(I)/(Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(Byy(I)*Syy(I)/(Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Else

Rls=Lyxia/Syy(I)

CallXishu

β1=β

Rls=Lxzuo/Sxx(I)

CallXishu

β2=β

Fxx(I)=Fxy(I)*(β1*Bxx(I)*Sxx(I)/(β1*Bxx(I)*Sxx(I)+β2*Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(β2*Byy(I)*Syy(I)/(β1*Bxx(I)*Sxx(I)+β2*Byy(I)*Syy(I)))

EndIf

EndIf

IfNxy(I)=8Then'端部节点--左端部:

x方向是半无限长梁,y方向是无限长梁

IfLxzuo=0#Then

Fxx(I)=Fxy(I)*(Bxx(I)*Sxx(I)/(Bxx(I)*Sxx(I)+4*Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(4*Byy(I)*Syy(I)/(Bxx(I)*Sxx(I)+4*Byy(I)*Syy(I)))

Else

Rls=Lxzuo/Sxx(I)

CallXishu

α1=α

Fxx(I)=Fxy(I)*(Bxx(I)*Sxx(I)/(Bxx(I)*Sxx(I)+α1*Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(α1*Byy(I)*Syy(I)/(Bxx(I)*Sxx(I)+α1*Byy(I)*Syy(I)))

EndIf

EndIf

IfNxy(I)=9Then'中间节点

Fxx(I)=Fxy(I)*(Bxx(I)*Sxx(I)/(Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

Fyy(I)=Fxy(I)*(Byy(I)*Syy(I)/(Bxx(I)*Sxx(I)+Byy(I)*Syy(I)))

EndIf

NextI

Me.List4.AddItem("计算分配荷载Fxx(i),Fyy(i)----分别为Fxy(xi,yi)在x方向和y方向的分配荷载")

Me.List4.AddItem("")

Me.List4.AddItem("iNxy(i)x(i)y(i)Fxy(i)Fxx(i)Fyy(i)")

ForI=1ToList2.ListCount

Me.List4.AddItem("")

Me.List4.AddItem(""&Format(I,"000"))&(""&Format(Nxy(I),"000"))&(""&Format(Xx(I),"0000.00"))&(""&Format(Yy(I),"0000.00"))&(""&Format(Fxy(I),"00000.00"))&(""&Format(Fxx(I),"0000.00"))&(""&Format(Fyy(I),"00000.00"))

Me.List4.AddItem("")

NextI

'节点分配荷载的调整

'调整前的地基平均反力

DimPqian'调整前的地基平均反力

DimPhou'调整后的地基平均反力

DimMxiu'修正系数

DimDetaP'地基反力增量

DimSumF

DimAzong

DimADieJ

SumF=0#

Azong=JiChang*JiKuan

ADieJ=0#

ForI=1ToList1.ListCount

SumF=SumF+Fxy(I)

ADieJ=ADieJ+Bxx(I)*Byy(I)

NextI

Pqian=SumF/(Azong+ADieJ)

Me.List4.AddItem("调整前地基净反力(kN/m^2)"&Format(Pqian,"0.00"))

'调整后的地基平均反力

Phou=SumF/Azong

Me.List4.AddItem("调整后地基净反力(kN/m^2)"&Format(Phou,"0.00"))

'修正系数

Mxiu=1+ADieJ/Azong

'地基反力增量

DetaP=Pqian*ADieJ/Azong

Me.List4.AddItem("修正系数:

"&Format(Mxiu,"0.00"))

'调整后x,y两个方向上的荷载增量

Me.List4.AddItem("ix(i)y(i)Fxy(i)Fxx(i)Fyy(i)")

ForI=1ToList1.ListCount

Fxx(I)=Fxx(I)+Fxx(I)*DetaP*Bxx(I)*Byy(I)/Fxy(I)

Fyy(I)=Fyy(I)+Fyy(I)*DetaP*Bxx(I)*Byy(I)/Fxy(I)

NextI

Me.List4.AddItem("")

Me.List4.AddItem("计算调整后分配荷载Fxx(i),Fyy(i)----分别为Fxy(xi,yi)在x方向和y方向的分配荷载")

Me.List4.AddItem("")

Me.List4.AddItem("iNxy(i)x(i)y(i)Fxy(i)Fxx(i)Fyy(i)")

ForI=1ToList2.ListCount

Me.List4.AddItem("")

Me.List4.AddItem(""&Format(I,"000"))&(""&Format(Nxy(I),"000"))&(""&Format(Xx(I),"0000.00"))&(""&Format(Yy(I),"0000.00"))&(""&Format(Fxy(I),"00000.00"))&(""&Format(Fxx(I),"0000.00"))&(""&Format(Fyy(I),"00000.00"))

Me.List4.AddItem("")

NextI

tuichu=1

ExitSub

tch:

MsgBox"数据输入有误,不能得出结果",vbExclamation

EndSub

PrivateSubTianJiaHeZai()

DimIAsInteger

ForI=1ToList1.ListCount

List1.ListIndex=List1.ListCount-I

Xx(I)=Val(List1.Text)

NextI

ForI=1ToList2.ListCount

List2.ListIndex=List2.ListCount-I

Yy(I)=Val(List2.Text)

NextI

ForI=1ToList3.ListCount

List3.ListIndex=List3.ListCount-I

Fxy(I)=Val(List3.Text)

NextI

ForI=1ToList5.ListCount

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1