6. Function 函数元素
6.1 元素定义
在BHTC simulation提供了内置的系统函数,调用这些函数,用户可以访问模型元素的各种状态信息,另外系统还允许用户根据建模的需要自定义函数,用于流程的决策处理,从而增强模型的智能性与灵活性。“Function”元素就是实现这一功能的建模元素。用户的自定义函数,可以用于以下几个方面:
- 流程逻辑代码
用户可以在建模元素的流程逻辑代码中的任何地方引用它们:双击模型结构树上的“Function”元素节点,即可在代码编辑框中引用该函数。
- 行为逻辑代码
用户可以在建模元素的行为逻辑代码中的任何地方引用它们:双击模型结构树上的“Function”元素节点,即可在代码编辑框中引用该函数。
- 元素的属性输入
如果用户自定义函数具有返回值,用户可以在建模元素的属性输入框中引用它们,即系统在模型的仿真运行时刻,调用该函数的返回值,作为该属性的值。鼠标双击建模元素属性输入框获得输入焦点,然后双击模型结构树上的“Function”元素节点,即可在属性输入框中引用该函数。
用户自定义函数,既可以有返回值,也可以没有返回值。如下图所示,定义函数时,必须指明其返回值类型:Integer 为整型,single 为实型,string 为字符型,name 为名型。

6.2 函数体定义
假设我们要定义一个计算长方体表面积的函数,名为“area”,首先在模型结构树上,选用“Function”元素,定义出返回值类型为实型的,名为“area”的函数节点,鼠标双击该函数节点,系统弹出函数体定义对话框如下图所示:

计算长方体面积,需要长度、宽度、高度三个参数。首先在函数体形参列表中定义出这个三个形参:在对话框中的“参数类型”下拉菜单中,选择“single”实型类型,在“形参名称”文本框中输入“box_L”作为长度的形参名,然后点击“增加”按钮,定义出area函数的第一个形参,依次类推,定义出宽度形参“box_W”,高度形参“box_H”。接下来定义计算长方体表面积的函数体,点击“函数体定义”按钮,系统弹出函数体定义代码编辑框, 接着使用VBS语言,编写计算长方体表面积的函数体,如下图所示:

函数体中使用Dim关键词声明的三个局部变量:a代表长方体的底面面积,b代表长方体的正面面积,c代表长方体的侧面面积。点击“确认”按钮完成函数体的定义。
