基于Delphi的结构设计计算可视化研究
2014-07-24胡帮义袁向荣
胡帮义,袁向荣,黄 羚
(1.广州大学 土木工程学院,广州 510006; 2.石家庄铁道大学 土木工程学院,河北 石家庄 050043)
基于Delphi的结构设计计算可视化研究
胡帮义1,袁向荣1,黄 羚2
(1.广州大学 土木工程学院,广州 510006; 2.石家庄铁道大学 土木工程学院,河北 石家庄 050043)
由于当前众多结构设计计算软件普遍不能生成带计算公式的设计计算书,导致结构设计计算不可视化。针对这种情况,分析了结构设计计算可视化的特点,利用Delphi与Word的无缝链接技术,提出了公式模板参数化命令流技术。介绍了该技术的编程思想和实现方法,并进行结构设计计算软件的开发。实践表明,此技术简便可行、灵活高效、适用范围广。
参数化命令流;结构设计可视化;Delphi;Word
在结构设计过程中,传统的手工计算方法既费时又费力,已不能满足当今结构设计的需要,设计者更多的是依赖相关设计软件。设计者如果不清楚设计软件的计算依据和过程,那么不仅不能提高设计者自身设计的理论知识水平,而且很难判断软件计算结果的正确性。在目前众多品牌软件中,普遍能够生成计算书,但是计算书普遍不能显示带计算公式的计算过程,这时软件就好比一个黑匣子,设计计算过程是不可视化的。另一方面,在Microsoft Word中输入公式需要借助于公式编辑器,手动输入费时费力,而且极易出错,难以自动化。公式模板参数化命令流技术正是在此背景下提出的,是为了解决在各种设计规范下计算公式的自动化生成问题,实现结构设计全过程可视化。
1 结构设计计算可视化及实现方法
结构设计计算可视化是指在结构设计计算的过程中,计算者可以对计算的详细过程、步骤可见,而不仅仅是得到计算结果。结构设计计算可视化是结构设计过程中参数输入和计算结果输出的问题,实现了边计算边输出计算过程的效果,可视化是通过计算结果文件来体现。
结构设计计算可视化实现过程如图1所示:
图1 结构设计计算可视化实现过程Fig.1 The implementation of visualstructural design
Word是现今广泛使用的文字处理软件,具备强大的接口功能,故计算结果文件经常采用Word格式。一篇计算结果文件的构成要素主要包括以下几类:
(1)文字
文字是计算书里最基本的单元,用来显示计算中的相关说明信息,比如工程概况、计算依据、尺寸说明、材料参数说明、设计结果评价等。调用Word中书写文字的命令即可实现。
(2)表格
当计算中输出的数据较规则或数据量较大时,可以在计算书中采用表格显示。调用Word中表格对象相关命令即可实现表格输出、编辑等操作。
(3)图片
在计算书中有时需要给出计算图示,以形象化展示计算原理。需要插入图片时,调用Word中插入图片命令即可将指定的图片插入到Word中指定的位置。
(4)公式
公式是计算书中最重要的一类元素,也是设计的依据,根据规范给出的公式进行设计是设计的基本要求。公式的自动化输出是计算可视化的核心,也是本文论述的重点和核心。
结构设计中用到的公式以分式和根式为主,根据Word中的相关命令可以编制相关输入分式、根式等的基本函数命令,基本函数命令的组合又可以构成新的类型公式的函数命令,利用函数命令可以实现灵活、高效、自动输出计算公式。
2 公式模板参数化命令流技术思想
公式模板参数化命令流技术是基于Microsoft Word ActiveX自动化技术的命令接口,借助于Delphi来操纵Word的相关函数命令,通过编制不同公式模板的参数化计算函数命令,从而实现各种形式公式的自动化生成。关于Delphi与Word的无缝链接和操纵,在参考文献[1-2]中有较详细的论述。在一个设计过程中,可能涉及规范中不同类型的几个公式,通过对每个公式编制相应的命令,最终组合而成的函数命令流便是实现计算可视化并生成Word计算书的全部命令集合。由于不同公式模板的命令可以交叉组合使用,使得其具备灵活多样性,以便适应纷繁复杂的设计规范的需要[3-7]。
公式模板参数化命令流技术思想如图2所示:
图2 “公式模板参数化命令流”技术思想Fig.2 Thought of “Parametric command stream technology based on equation templates”
3 公式模板参数化命令流及实现方法
3.1 公式模板化
在结构设计中出现的公式可以对其进行总结归类,并对每一类型建立一公式模板,对每一模板编制一基本函数,从而实现公式模板化。结构设计中比较常见的公式类型有以下几种,现对每种类型仅仅列出部分计算公式实例:
(1)连乘式
R=AB型;比如N=σ·A,G=mg等;
R=ABC型;比如P=C·R·A,Bs=0.85EcI0等;
R=ABCD型;比如W=K1K2K3w0,
(2)分式
(3)根式
3.2 公式模板参数化
A=f;shang=′;xia=y
通过控制参变量的取值可以输出各种不同类型的公式,大大提高了公式模板的适用性。
3.3 参数化命令的具体实现
对于一个公式及代入数值后的计算过程,笔者将其定义为4个部分:公式头、字母公式、代值计算、结果输出,分别用ZuodenghaoYesOrNo、DaiZiMuYesOrNo、DaiZhiYesOrNo、YoudenghaoYesOrNo等4个逻辑型变量来控制其是否输出。另外定义一个逻辑型变量WriteYesOrNo来控制是否全部输出。对于每一部分的字母内容定义相应的变量来控制,比如R部分的输出,定义StrResult变量控制R,Rshang变量控制R的上标,Rxia变量控制R的下标,A、B、C等部分同理。
为此在Delphi中可以编制如下的函数命令:
Function
WriteAndGetABbiC(StrResult,Rshang,Rxia,strA,Ashang,Axia,strB,Bshang,Bxia,strC,Cshang,Cxia:string;A,B,C:double;XiaoShuWei:integer=1;WriteYesOrNo:boolean=true;ZuodenghaoYesOrNo:boolean=true;DaiZiMuYesOrNo:boolean=true;DaiZhiYesOrNo:boolean=true;YoudenghaoYesOrNo:boolean=true):double; //通用R=AB/C型公式输出,其中A,B,C分别为其具体数值,XiaoShuWei控制代值计算保留的小数位,默认为1;
var
jieguo:double;
begin
ifWriteYesOrNothen//表示输出公式文本
begin
ifZuodenghaoYesOrNothen//表示输出公式
begin头部分,即“R=”部分
WriteText(StrResult);//输出R
addshangxiabiao(Rshang,Rxia);//输出R的上下标
WriteText('=');
endelse//表示不输出公式头部分
beginend;
ifDaiZiMuYesOrNothen//表示输出字母公式部分
begin
addfenhao(strA+'s('+Ashang+','+Axia+')'+'·'+strB+'s('+Bshang+','+Bxia+')',strC+'s('+Cshang+','+Cxia+')');//输出AB/C部分
endelse
beginend;
ifDaiZhiYesOrNothen//表示输出代值计算部分
begin
WriteText('=');
ifShangbiaoIsNumber(Ashang)then
//判断字母上标是否是数字
Ashang:=Ashang//是数值则原样输出
else
Ashang:=''; //不是数值则不输出
ifShangbiaoIsNumber(Bshang)then
Bshang:=Bshang
else
Bshang:='';
ifShangbiaoIsNumber(Cshang)then
Cshang:=Cshang
else
Cshang:='';
addfenhao(floattostr(A)+'s('+Ashang+', )'+'×'+floattostr(B)+'s('+Bshang+', )',floattostr(C)+'s('+Cshang+', )'); //输出AB/C代值部分
endelse
beginend;
ifYoudenghaoYesOrNothen
begin//表示输出结果输出部分
jieguo:=Myround(A*B/C,xiaoshuwei);
//计算数值并保留相应的小数位
WriteText('='+floattostr(jieguo)); //表示输出结果
result:=jieguo;//函数返回值
end
else//表示不输出结果输出部分
beginend;
end
else//表示不输出公式文本,
函数只返回计算结果
begin
result:=Myround(A*B/C,xiaoshuwei);
end;
end;
3.4 参数化命令流
在一个设计中往往涉及到多个公式或文本等,将每一个公式或文本等的操作命令按一定逻辑顺序执行,便构成了参数化命令流。
4 公式模板参数化命令流应用实例
公式模板参数化命令流技术广泛应用于工程实践,结构设计计算的可视化是其重要应用之一,下面以混凝土轴心受压柱正截面承载力的设计计算为例,具体以圆截面螺旋箍筋柱配筋设计计算为例进行说明。
4.1 规范要求
根据《混凝土结构设计规范》[8]的要求,钢筋混凝土轴心受压构件,如图3所示。
图3 圆截面钢筋混凝土柱钢筋布置Fig.3 Reinforcement detailing of a circular reinforced concrete column
当配置的螺旋式或焊接环式间接钢筋符合规范9.3.2条的规定时,其正截面受压承载力应符合下列规定[8]:
4.2 参数获取及程序界面
fc为混凝土轴心受压强度设计值,通过查规范获得;
a为间接钢筋对混凝土约束的折减系数,根据规范要求计算获得;
fyv为间接钢筋抗拉强度设计值,通过查规范获得;
Ass0为螺旋式或焊接环式间接钢筋的换算截面面积;
dcor为构件的核心截面直径,通过人工输入获得;
Ass1为螺旋式或焊接环式单根间接钢筋的截面面积,通过人工输入获得;
s为间接钢筋沿构件轴线方向的间距,通过人工输入获得。
根据以上要求,编制如图4所示的设计计算程序界面。
图4 混凝土轴心受压柱正截面承载力计算程序界面Fig.4 Calculating program interface of normal section bearing capacity of the axial compressive pillar
4.3 参数化命令流
在计算结果文件中,文字描述及结果评价等文本性内容的输出较简单,这里仅仅列出相关公式输出的命令流。
则本设计中主要公式输出命令流如下:
Ass0:=WriteAndGetABCbiD('A','','ss0','π','','','d','','cor','A','','ss1','s','','',3.14,dcor,Ass1,s,2,true,true,true,true); //输出Ass0计算式
Acor:=WriteAndGetABbiC('A','','cor','π','','','d','2','','4','','',3.14,dcor*dcor,4,2,true,true,true,true); //输出Acor计算式
WriteAndGetAB('','','','f','','c','A','','cor',fcd,Acor,2,true,false,false,true,false); //以下输出Nu计算式
Writetext('+'); //输出+号
WriteAndGetAB('','','','f',''','y','A',''','s',fsd,steelarea,2,true,false,false,true,false);
Writetext('+');
WriteAndGetABCD('','','','2','','','α','','','f','','yv','A','','ss0',2,afa,fsv,Ass0,1,true,false,false,true,false);
Nu:=0.9*(1000*fcd*Acor+fsd*steelarea/1000+2*afa*fsv*Ass0/1000);//计算承载力Nu
Writetext(′)=′+floattostr(Nu)+′kN′); //输出计算结果
4.4 计算结果可视化
在程序界面输入相关参数和选择相关选项,进行计算,即可生成Word计算书如图5所示,实现计算可视化、自动化。
图5 计算程序自动生成Word计算书Fig.5 Automatically generate design calculations in Word format by the Calculating program
根据Word计算书,可以对设计计算的全过程进行察看,计算过程详细,计算结果一目了然,带详细计算过程的计算书对于设计者理解计算原理、检查计算结果的正确性以及进行设计复核和设计评价有着重要的作用。
5 结 语
在进行结构设计的过程中,计算书是反映设计过程和设计依据的重要技术文件,也是设计计算可视化的体现。手动编制带公式的计算书是一个费时费力的过程,而公式模板参数化命令流技术的提出,不仅解决了结构设计的问题,同时又解决了计算结果文件的编制问题,把繁杂的设计工作和结果录入、编辑工作(尤其是编辑公式)交给了计算机,实现了结构设计自动化、计算可视化,提高了设计人员的工作效率。文中提出的设计计算可视化思想具有普遍适用性,为其他各类设计问题,提供了很好的计算自动化、设计可视化实现途径,具有广泛的应用价值。
[1] 鲁保玉,杨新芳.用Delphi生成Word报告及动态结构表格[J].计算机应用与软件,2007,24(3):180-183.
[2] 王莉,冯军,何自立,等.用Delphi实现Word应用程序二次开发[J].电脑编程技巧与维护,2010(19):18-24.
[3] 陈特放,方斌.VC平台下基于OLE的Word自动化操作应用[J].计算机应用与软件,2009,26(9):123-125.
[4] 刘铭.基于VBA对Word2007二次开发应用研究[J].煤炭技术,2011,30(2):247-249.
[5] 范章,李鑫.换热器管板计算书生成方法的实现与应用[J].科学技术与工程,2013,13(21):6 239-6 242.
[6] 冯超,林琳.基于AutoCAD参数化设计实现方法研究[J].电子技术与软件工程,2013(18):85.
[7] 李媛.大跨建筑表皮的参数化设计方法研究[D].哈尔滨:哈尔滨工业大学,2013.
[8] 中华人民共和国住房和城乡建设部.混凝土结构设计规范(GB50010-2010)[S].北京:中国建筑工业出版社,2010.
(责任编辑:李华云)
Study on Visual Structural Design Based on Delphi
HU Bangyi1,YUAN Xiangrong1,HUANG Ling2
1.School of Civil Engineering, Guangzhou University, Guangzhou 510006, China; 2.School of Civil Engineering, Shijiazhuang Railway University, Shijiazhuang Hebei 050043, China
Lots of current structural design software can not produce the calculation books with equations. This causes the invsualization of the structural design. In view of this, the key features of visual structural design were analyzed and the “Parametric command stream technology based on equation templates ”was presented by Delphi connecting to Microsoft Word. The paper introduces the idea and implementation of this technology. The structural design software development practice shows the practicality and effectiveness of this technology. Practical results demonstrate that the technology is simple, flexible, high-efficient and worth popularisation.
Parametric command stream; Visual structural design; Delphi; Word
2014-08-16
国家自然科学基金资助项目(51278137)
胡帮义(1987-),男,江西丰城人,助理工程师,硕士研究生,主要研究方向为桥梁结构设计及检测技术。
TP391.72
A
1671-5322(2014)04-0042-05