patran2次开发
1、编译与连接的方法:
1、在txt中输入如图所示的函数。
2、在Patran中输入!!comp my_PCL.txt my_PCL.plb
3、在Patran中输入!!lib my_PCL.plb。
2、窗体介绍:
窗体需要在类(Class)中定义,而类是为了实现某种功能的函数集合。类结构以CLASS class_name开始,以END CLASS结束。例如:
CLASS my_class
CLASSWIDE WIDGET main_form
FUNCTION init()
END FUNCTION /* init /
FUNCTION display()
END FUNCTION /* display */
END CLASS /* end of my_class */
类中有一个init()函数,该函数名不能变,init()函数往往用来定义窗体及窗体组件;
display()函数往往用来显示定义的窗体及窗体组件,也可用来从数据库或外部文件初始化窗体。
记住:一个文件中只能有一个类,且文件名要与类的名称相同(后缀不需要)
在编写窗体函数时往往需要包含appforms.p这个文件,文件里定义了一些常量( 像FORM_L_MARGIN等),因此在函数的前面需要加上#include “appforms.p”。在这种情况下需要进行c预处理(如果仍然按照前面的编译方法去编译,会提示错误,appforms.p中的常量无法识别),在这种情况下可以采用下面的函数进行编译,并自动生成函数库文件(plb文件)。
bv_pcl.compile("mpc_between_2shells.txt","mpc_between_2shells.cpp")
3、添加菜单:
方法一
1、建立与菜单相关的函数。例:建立图中所示文件(该类完成菜单的定义),文件的名称要与其内部定义的类名字一致。
2、编译建立的函数,生成PCL的库函数。在Patran的命令串口中输入!!comp my_menu.txt my_menu.plb。
3、在用户文件夹下(patran文件的当前目录)建立图中所示的p3epilog.pcl文件,并输入相关指令。
Patran每次启动会执行其搜索目录下的p3epilog.pcl文件,图中!!LIB my_menu.plb表示加载函数库,ui_exec_function(“my_menu”,“init”)表示执行my_menu.plb中的my_menu类的init函数,该函数即完成菜单的定义与初始化。
*MENULABEL = My_Menu //顶层菜单的名称
*CLASS = -NA-
*FUNCTION= hello_world
*LABEL = Hello World
*LOADITEM
*SEPARATOR//在Hello World菜单与PushMe … 菜单之间加入分割线
*CLASS = push_me_form //子菜单关联的类
*FUNCTION = display //点击子菜单时的响应函数,即push_me_form.dispay()
*LABEL = Push Me … //子菜单的名称
*LOAD ITEM
方法二:
如果patran中的Utilities菜单被加载了,那么可以使用更方便的方法加载菜单,其方法如下:
1、在用户目录下建立p3_user_menu.*.def的文件,并输入图中所示语句。
图中即为加入的自定义菜单,其中my_menu1为采用第二种方法加入的,my_menu为采用第一种方法加入的。