基于PCL语言的梁截面自动生成
2016-10-24郭磊孙强
郭 磊 孙 强
(意大利船级社(中国)有限公司 上海200052)
基于PCL语言的梁截面自动生成
郭 磊 孙 强
(意大利船级社(中国)有限公司 上海200052)
在船体结构有限元建模的过程中,定义梁单元是既重要又繁琐的步骤。一艘船上的骨材种类通常很多,在建模时需要定义很多的梁单元截面属性。文章利用通用有限元软件Patran中的PCL(Patran Command Language)语言,对Patran进行二次开发,使建模过程中的梁单元截面自动生成,节约了建模时间。
有限元建模;PCL语言;梁截面属性
引言
MSC.Patran是非常著名的有限元前后处理系统,能满足大部分有限元建模的需要。船体是一个复杂的结构系统,现在的船级社规范往往要求对一定主尺度的船舶进行有限元分析,而建模又十分费时费力。本文通过PCL语言对Patran进行二次开发,使建模过程的梁单元属性的生成能够快速和高效。
1 PCL语言类的结构
“类”的概念,通过编写PCL类来实现生成用户菜单和响应。
“类”由关键词CLASS开始,END CLASS结束。类中包含实现具体功能的函数。一套PCL程序通常包含若干类,这些类彼此调用。通过编译成一个plb文件保存在Patran的安装目录下,通过p3epilog.pcl文件对Patran进行初始化,将用户定义的菜单包含在Patran初始界面中。p3epilog.pcl文件通常包含如下语句:
!!lib 用户菜单名.plb
ui_exec_function(“用户菜单名”, “init_menu”)
PCL是一种高级模块化编程语言,其中提供
2 用户菜单
利用PCL语言,可以方便地建立用户菜单。具体过程如下:
(1)利用uil_primary.get_menubar_id(),获得Patran主菜单的id。
(2)利用语句ui_menu_create()生成用户菜单。
(3)利用语句ui_item_create()生成菜单项。
(4)通过菜单项语句的"name",调用响应函数。
程序代码如下:
……
menubar_id=uil_primary.get_menubar_id()
menu_id=ui_menu_create(menubar_id,"name", "My Apply")
ui_item_create(menu_id,"Beam","Beam_ Property", false)
ui_item_create(menu_id,"Help","&Help",false)
……
ui_exec_function("Classname","display")
图1为用户菜单结构。
