钢筋三维线型模型批量创建插件制作

2012-06-29 09:07王家林康竹良
关键词:二次开发插件对话框

李 平,王家林,康竹良

(1.安徽省建筑科学研究设计院,安徽 合肥230001;2.重庆交通大学,重庆400047;3.同济大学,上海200092)

在钢筋混凝土三维实体加筋模型中使用六面体、四面体和五面体单元划分混凝土,用杆、梁单元模拟普通钢筋和预应力筋。模型中通过节点耦合或非节点连接方法[1-3]实现钢筋单元节点与混凝土单元节点耦合。在该模型计算结构中,可以分别观察混凝土与钢筋的应力应变。该方法可以较真实的模拟空间位置与实际受力分析。在通用有限元软件ABAQUS的单元埋植与MIDAS FEA都能通过简单的设置实现钢筋节点与混凝土实体单元的快速耦合连接。由于土木工程中钢筋的使用量非常大,所以钢筋的模型非常庞大,同时预应力钢筋常常包含横向和竖向的弯曲,给建模带来了困难。若在 ABAQUS/CAE界面下逐个创建钢筋的空间线型模型,将是一个繁重的工作,且极易因输入失误导致模型错误。笔者通过 ABAQUS GUI二次开发功能[3-4],创建一个具有钢筋空间线型模型批量快速创建功能的插件,为实现钢筋混凝土结构三维加筋实体有限元分析提供帮助。

1 ABAQUS二次开发功能简介

ABAQUS是最先进的大型通用有限元分析软件之一,具有良好的模拟性能,拥有大量不同类型的单元、材料模型;在ABAQUS中,材料库和单元库分离,材料和单元之间的组合能力很强,可以胜任复杂结构的静态与动态分析,能够驾驭非常庞大的问题和模拟材料与几何高度非线性的影响。同时,ABAQUS提供了4种二次开发方式:①使用用户子程序。用户子程序允许用户改变ABAQUS/Standard和 ABAQUS/Explicit的计算过程;②修改环境文件。通过改变环境文件中关于ABAQUS的各种默认设置来改变ABAQUS/CAE的计算分析过程和相关文件操作;③运行自定义内核脚本。内核脚本允许用户通过创建新的功能模块对前后处理进行操作;④创建新图形用户界面(GUI)[4]。4种二次开发方式为用户改善和扩展,ABAQUS的前后处理、单元模型、材料模型[5-8]等提供了可能。

2 功能设计及制作过程

钢筋快速建模插件是通过钢筋关键点三维坐标建立空间折线实现模拟。折线没有样条曲线圆滑,但排除了由于样条曲线弯曲使得曲线伸出混凝土外部,致使钢筋和混凝土之间无法实现耦合。插件人机交互界面对话框如图1。

图1 插件示意Fig.1 Figure of the plug-ins

插件对话框中包含了以下几个重要控件:

1)Partname部件名编辑框。程序会依据输入在模型创建部件和组装实例。

2)File name钢筋数据文件打开按钮及数据导入按钮Input。插件支持从文本文件中读取钢筋关键点坐标。通过Input按钮可以将文件中数据导入对话框表格中。

3)钢筋关键点坐标输入表。表中每一单元格代表一个点x,y,z三个坐标,每一行代表一根钢筋。钢筋可以是2~60个不限。输入后的数据可以保存为文本文件,以备再次使用和修改。钢筋关键点坐标数据也可以从文本文件中打开读入或从EXCEL文件中拷贝黏贴。

插件保证了同一工程数据的多次重复使用。避免多次输入带来的重复性工作和数据输入带来的错误。以表格形式的钢筋批量生成工具不仅可以略去大量的鼠标操作,而且可以快速的检查输入错误。降低了模型错误几率和提高了工作效率。

2.1 插件程序解析

钢筋建模插件创建流程与箱梁插件相同,且模型创建功能模块比较简单。插件由对话框程序 steelDB.py、框架与注册命令 steel_plugins.py和建模 steel_function.py三个 Python程序文件构成。

对话框为程序的交互界面,程序将输入数据传递至框架及注册命令文件steel_plugins.py中的变量,并将这些数据传递至主函数文件中相关变量。主程序文件steel_function.py在得到数据后整理并完成模型创建。数据流程如图2。

图2 插件程序数据传递Fig.2 Data transmission of the plug-ins

2.2 钢筋模型创建主函数文件

钢筋模型创建主函数(steel_function.py)首先对得到对话框传入的数据进行甄别和预处理,然后根据得到的部件名创建部件,再依据每行数据逐一创建钢筋并组装实例。

2.3 对话框程序函数

钢筋插件对话框类在由AFXDataDialog派生得到,在其基础上加入文本编辑框、文件打开编辑框、导入数据按钮、数据输入表格、演示图片控件。以下对程序主要语句作以简单说明。

#程序文件顶部首先导入必要的模块及变量。

2.4 注册函数文件Steel_plugin.py

该文件的功能是完成插件的注册。文件中首先通过继承AFXForm定义一个新的应用程序框架类。初构函数主要完成数据接收与传递等工作,以及命令函数处理。

通过以上代码将插件注册为ABAQUS主界面Plug-ins菜单中的Box_grider bridge子菜单的Modeling命令。效果如图3。

图3 菜单注册效果Fig.3 Registration Effect of Menu

工具条注册需要一个图标,从Concrete_icon.py文件中导入图标concrete_tool,命名为icon。

用registerGuiToolButton函数将插件注册为Plug-ins菜单下Toolboxes下的Bridges工具条。注册效果如图4。点击Bridges就可弹出Bridge工具条。其中图标S为本次定义的按钮。

图4 工具条注册Fig.4 Registration effect of toolbar

3 插件使用实例

图中显示为变截面箱梁桥顶板与腹板中的预应力钢筋,该部件有24根钢筋,每根钢筋4个关键点。输入完毕后点击确定键程序自动完成模型创建。

图5 实例模型Fig.5 Model of the steel

4 结论

笔者基于ABAQUS二次开发功能创建了钢筋空间线型快速建模插件。与文献[1]相结合实现了箱型桥梁三维实体加筋有限元模型的快速创建。为其有限元分析提供帮助。

[1]王家林.非节点连接有限元理论及其软件实现[D].重庆:重庆大学土木工程学院,2008.

[2]李平,王家林.预应力钢筋混凝土构件有限元模拟方法对比[J].重庆交通大学学报:自然科学版,2010,29(1):27 -30.Li Ping,Wang Jialin.Comparison of FEM simulation methods of prestressed reinforced concrete members[J].Journal of Chongqing Jiaotong University,2010,29(1):27-30.

[3]王家林,李平.ABAQUS箱型桥梁的GUI二次开发[J].重庆交通大学学报:自然科学版,2009,28(6):1000 -1005.Wang Jialin,Li Ping.Secondary development for box girder bridge of ABAQUS [J].Journal of Chongqing Jiaotong University:Natural Science,2009,28(6):1000 -1005.

[4]李平.桥梁精细有限元计算[D].重庆:重庆交通大学土木建筑学院,2009.

[5]鲍荣浩,卢文浩.ABAQUS前处理程序二次开发在蜂窝材料中的应用[J].工程设计学报,2003,10(6):330 -333.Bao Ronghao, Lu Wenhao. Application ofsecond-developed ABAQUS/Pre on honeycomb[J].Journal of Engineering Design,2003,10(6):330-333.

[6]钟同圣,卫丰,王鸷,等.Python语言和ABAQUS前处理二次开发[J].郑州大学学报:自然科学版,2006,38(1):60 -62.Zhong Tongsheng,Wei Feng,Wang Zhi,et al.Second development for fore treatment of ABAQUS using Python language[J].Journal of Zhengzhou University:Natural Science,2006,38(1):60-62.

[7]王田修,甘忠,张志国,等.ABAQUS前处理二次开发在机构模拟中的应用[J].计算机仿真,2008,25(7):54 -57.Wang Tianxiu,Gan Zhong,Zhang Zhiguo,et al.Application of second development for fore treatment of ABAQUS in the simulation of the machine[J].Computer Simulation,2008,25(7):54 -57.

[8]刘朋科.高压输电线路数值模拟中参数化有限元法[D].重庆:重庆大学,2007.

猜你喜欢
二次开发插件对话框
浅谈基于Revit平台的二次开发
正常恢复虚拟机
自编插件完善App Inventor与乐高机器人通信
浅谈Mastercam后处理器的二次开发
Bootlace Worms’Secret etc.
What Is Beauty?
西门子Easy Screen对倒棱机床界面二次开发
基于jQUerY的自定义插件开发
浅谈VB的通用对话框《CommonDialog》控件的使用
MapWindowGIS插件机制及应用