甲板板架参数化建模及PCL二次开发探讨-张皓

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

甲板板架参数化建模及PCL二次开发探讨
张皓11,张乃樑21,陈艳霞31,李振洋42
(1. 武汉第二船舶设计研究所,湖北武汉 430064;2. 大连船舶重工,辽宁大连 116006)
摘要:参数化建模是有限元分析及优化的一项重要内容,为提高在MSC.PATRAN中参数化建模效率,可使用PCL语言进行二次开发。

本文以甲板板架参数化建模分析为例开发了MSC.PATRAN界面,并对PCL语言二次开发中常见问题进行了探讨。

关键词:参数化;PCL语言;甲板板架
Abstract: It is very important to parametric model for finite element analysis and optimization. PCL may be used to improve the efficiency of parametric modeling in MSC.PA TRAN. It was showed parametric deck modeling and developed the MSC.PA TRANA interface, by the way, the common problems in second development of PA TRAN are discussed.
Key words: Parameterization; Patran Command Language; Deck Grillage
1概述
随着数值模拟技术的发展,在结构计算分析和结构优化设计领域,有限元计算方法已经成为主流方法,世界上已有许多成熟商用有限元分析软件,其中MSC.NASTRAN有限元分析程序已经被广泛应用于国防,汽车,桥梁,航空航天,船舶,兵器,铁道,机械,材料领域。

MSC公司之后推出的MSC.PATRAN,MSC.PA TRAN 作为MSC.NATRAN的前后处理模块,是一个集成的并行框架式的系统,它与MSC.NASTRAN构成了一个完整的CAE仿真系统。

MSC.PATRAN具有强大的二次开发的潜力。

PCL(Patran Command Language)语言是MSC.PA TRAN 的内置语言,PCL类似与C语言和FORTRAN语言,但相比于C语言和FORTRAN语言,PCL没有复杂的指针、结构体以及共用体的内容,语法格式更为简便。

根据不同的项目要求,利用PCL语言及其内置函数,可以编写程序代码,用于处理重复、冗长的操作,同时也可以进行界面二次开发,将自行编写的界面植入MSC.PATRAN的框架之中,实现人机互动可视化操作,把工程师从枯燥的软件操作中解放出来,大大缩短了项目周期,提高了工作效率。

本文将以一甲板板架参数化结构分析的工程项目实例,具体说明利用PCL进行界面二次开发的原理和方法。

2 PCL界面开发原理与方法
2.1 PCL语言概述和函数编译
PCL作为MSC.PATRAN的内置语言,与C语言和FORTRAN语言的一些基本语法相似,用户在MSC.PATRAN中每一步操作都可以用PCL语言来实现,PCL作为一种高级的语言,除了拥有基本的数学
运算函数库以外,还有大量的内置函数,这些内置函数包括建模函数,网格划分函数,工况生成函数以及结构后处理函数等。

用户可以根据项目要求查阅MSC.PA TRAN的PCL软件说明书,查找所需函数,进行编译,最终高效率完成项目。

用户可以针对某一操作自行编写PCL函数,通过系统命令!!input将所编译的函数导入模型数据库,之后便可以在MSC.PATRAN 的命令输入行中直接使用。

也可以对函数进行二进制编码,生成.plb文件,此过程相当于将函数封装,之后运用系统命令!!library将.plb文件导入模型数据库进行使用。

在MSC.PATRAN的安装根目录下有一个init.pcl文件,在每次MSC.PATRAN启动时,都会先执行这个文件,该文件中包含一个十分重要的语句:!!input p3epilog.pcl NOERROR,当执行这条语句时,MSC.PATRAN 将编译p3epilog.pcl文件中的代码,用户可以在该文件中输入!!input user_function.pcl或者!!input user_function_database.plb,这样每次MSC.PA TRAN启动都会先自行编译这个函数,用户不必在模型中导入函数进行编译,这种导入方式简单快捷。

2.2 用户界面(菜单、窗口等)二次开发
针对某个项目,单独应用PCL进行函数编译是不够的,对于整个项目,如果单纯的应用PCL进行函数编译,为了实现项目过程中的各个功能,需要编写大量的函数代码,使用时会出现混淆的可能。

对于此类问题,可以应用PCL强大的人机可视化互动界面的开发能力来进行解决,对于特定的项目,利用PCL编译出相应的界面或窗口,将参数直接输入到窗口里,利用响应函数来触发MSC.PATRAN进行操作,利用PCL 编译的界面十分友善,方便快捷。

而PCL语言具有很多定制界面的内置函数,例如:ui_menu_create() ,ui_form_create(),ui_databox_create()等等,这些函数都是用来定制界面中需要用到的,而对于窗口的大小以及位置的确定,用户可以自行的输入尺寸(MSC.PATRAN中界面默认的尺寸的单位是英寸),不过为使用户自身定制的界面尺寸与MSC.PATRAN内置的界面风格统一、美观,可借助MSC.PATRAN的安装根目录下的customization文件目录下的appforms.p的文件获得近似的界面。

该文件中包含了MSC.PATRAN风格界面的尺寸要求,只要在界面程序最开始加上“#include “appforms.p””的语句,再利用根目录下的C预编译器(cpp.exe)将.pcl文件编译为.cpp文件即可,即可获得与MSC.PATRAN内置界面风格相同的界面。

甲板板架参数化结构分析实例中的菜单栏设置方式部分代码结构如下:
CLASS canshuhuajm /* 生成菜单的类名*/
FUNCTION init() /* 产生菜单的形式的函数,本菜单有四个下拉选项*/
WIDGET menubar,menu /* 定义菜单变量*/
menubar = uil_primary.get_menubar_id()
menu = ui_menu_create(menubar,"deckcsh_menu","参数化项目")
ui_item_create(menu,"CP_1","修改1D单元属性",FALSE)
ui_item_create(menu,"CP_2","修改2D单元属性",FALSE)
ui_item_create(menu,"CP_3","计算分析",FALSE)
ui_item_create(menu,"CP_4","结果后处理",FALSE)
END FUNCTION
FUNCTION deckcsh_menu() /* 下拉菜单触发选项*/
………….. /* 下拉菜单相应函数*/
END FUNCTION
以某一窗口为例,甲板板架参数化结构分析实例中的窗口设置方式部分代码结构如下:
#include "appforms.p" /* 用于生成MSC.PA TRAN风格的界面的头文件*/
CLASS property_1D /* 生成窗口的类名*/
CLASSWIDE WIDGET form_id,mat_lb,sec_lb,oneDname_lb
CLASSWIDE string beam_pro_n[31]
FUNCTION init()
……………/* 产生窗口的函数,此函数必须有*/
END FUNCTION
FUNCTION display()
……………/* 显示窗口的函数,此函数必须有*/
END FUNCTION
FUNCTION response()
……………/* 响应函数,此函数整个界面的核心*/
END FUNCTION
END CLASS
本部分简单介绍了菜单栏和窗口生成的代码结构,只要根据上面的代码结构修改就可以生成相应的界面了。

2.3核心响应函数的编译
界面相应函数是整个过程的核心,界面风格与形式可以根据相应模式修改,但是界面相应函数就只能
由用户自行编译了。

用户需要对整个项目中的每一个细节的实现过程有比较深刻的了解,通过查阅PCL手册,进行编译。

核心相应函数的代码结构十分简单,而程序主体的过程可能比较复杂,如果对于重复的操作,可以通过修改.ses文件来编译核心相应函数。

3 甲板板架参数化结构分析工程实例
在舰船结构设计中,常常需要根据参数改变结构尺寸,为辅助甲板结构设计,利用PCL语言实现甲板板架参数化建模并开发操作界面。

以甲板板架上表面受均布载荷为例进行说明,甲板板用2D板元来模拟,加强筋用1D梁元来模拟,对此加筋甲板板架进行静态分析以及模态分析,考查其内部应力分布以及固有频率,此甲板板架的外形尺寸、加强筋的分布和数量以及边界条件和载荷都已经确定,而甲板的板厚,以及加强筋的尺寸可以变化,故开发的界面是包括修改板和梁单元的属性、计算分析和结果后处理,利用此界面,可以快速更改板厚和加强筋的尺寸,快速提交分析以及结果后处理,大大提高了工作效率,十分方便。

以下是对作者开发的界面的具体说明:
图1是加筋甲板板架有限元模型。

图1 加筋甲板板架有限元模型
图2是菜单栏选项,此菜单栏包括四个选项,分别用来修改加强筋尺寸,修改板厚,计算分析和结果后处理。

图2 菜单栏选项
图3是修改1D梁单元属性的界面,该界面通过选取材料,梁单元的属性名称以及界面尺寸进行修
改梁单元的属性,之后通过调整偏移量来真实模拟加筋甲板板架。

图3 修改1D梁单元属性界面图4 修改2D板单元属性界面
图4是用来修改2D板单元的属性,通过选取材料,板单元的属性名称,输入板厚参数,定义中面参考位置的方式来修改2D板单元的属性。

图5 计算分析界面图6 结果后处理界面
图5是计算分析的界面,根据项目要求,需要分别对甲板板架进行静态分析和模态分析,只要点击按钮,通过响应函数触发MSC.PATRAN,生成BDF文件并提交NASTRAN计算,一键式完成整个计算过程。

图6是结果后处理界面,该界面包括输出结果报告和查看应力云图,针对于两种分析模式以及退出操作,一共有5个执行选项,需要编译5个相应函数触发MSC.PATRAN执行。

4 结论
为了响应“节能减排”的要求,结构优化再次成为整个CAE领域的热点话题,而作为结构优化的最基本的内容,结构参数化建模分析在占据了重要的地位。

本文通过一项目工程实例,利用MSC.PA TRAN内置的PCL语言开发了参数化建模分析的界面,大大的缩短了整个的项目周期,提高了工作效率。

相比与其他参数化建模分析的方式,通过PCL语言编译出的界面植入MSC.PATRAN中,界面友善,操作简便,有利于广泛应用。

本文是作者对PCL语言二次开发定制界面的一些理解,希望能够给予在参数化建模分析和结构优化领域的工作人员一些帮助。

相关文档
最新文档