本文描述在IDEA中利用JFormDesinger进行STAR CCM+二次开发的基本流程。
JFormDesign是IDEA中用于构建GUI界面的插件,其处理GUI界面的方式与NetBeans类似,比IDEA原生GUI处理方式更方便。
1 开发过程
1.1 构建GUI界面
-
启动IDEA,如下图所示新建Project,命名为MacroTest
-
鼠标右键点击模型树节点 src
,选择弹出菜单项New → JFormDesigner Form
-
在弹出的对话框中,如下图所示创建新的窗口,命名为 CreateGeomForm
-
利用控件构建如下图所示的界面
-
指定控件管道长度输入框、管道半径输入框及创建几何按钮的名称JTextField_PipeLength、JTextField_PipeRadius及JButton_CreateGeometry。 -
鼠标右键选中 创建几何
按钮,选择弹出菜单项Add Event Handler → ActionListener-actionPerformed...
-
如下图所示,在弹出对话框中添加处理函数 JButton_CreateGeometry
1.2 添加库
-
点击菜单 File → Project Structure...
打开设置对话框
-
打开 Global Libraries
,右键选择STAR CCM2302
,点击菜单项Add to Modules...
-
选择将库添加到模块中
-
进入 Modules
设置,如下图所示,勾选STAR CCM2302
前面的复选框添加库
1.3 GUI编程
1. 创建构造函数
采用外部启动窗体的形式,这里创建一个带参数的构造函数。
添加的内容包括:
import star.common.*;
private Simulation sim = null;
public CreateGeomForm(Simulation simLocal){
initComponents();
this.sim = simLocal;
}
完毕后的代码如下图所示。
2、创建功能函数
新建函数createPipe,其带有两个参数radius及length。
createPipe中的内容来自于STAR CCM+的macro录制,。同时需要进行以下修改:
-
将录制的代码中管道半径及长度用变量radius及length进行替代 -
将代码中的所有 simulation_0
替换为this.sim
-
注释掉或直接删除 Simulation this.sim = getActiveSimulation();
privite void createPipe(double radius, double length){
...
//创建半径为radius的圆
RadiusDimension radiusDimension_0 =
sketch_0.createRadiusDimension(circleSketchPrimitive_0, radius, units_0);
...
//设置拉伸长度为length
extrusionMerge_0.getDistance().setValue(length,units_0);
...
}
3、修改JButton_CreateGeometry函数
此函数为点击按钮创建几何
的响应事件,此按钮中读取两个输入框中的数据,并调用createPipe函数创建几何模型。
函数内容为:
private void JButton_CreateGeometry(ActionEvent e) {
double radius;
double length;
try {
radius = Double.parseDouble(JTextField_PipeRadius.getText());
} catch (NumberFormatException ex) {
radius = 0.01;
}
try {
length = Double.parseDouble(JTextField_PipeLength.getText());
} catch (NumberFormatException ex) {
length = 0.1;
}
createPipe(radius, length);
//自动关闭窗口
this.dispose();
}
1.4 添加启动程序
启动程序用于显示窗体。
-
右键选择节点 src
,点击弹出菜单项New → Java Class
创建新类
-
指定新的类名称为 RunMacro
-
输入以下程序代码
import star.common.Simulation;
import star.common.StarMacro;
import javax.swing.*;
public class RunMacro extends StarMacro {
@Override
public void execute() {
Simulation sim = getActiveSimulation();
CreateGeomForm form = new CreateGeomForm(sim);
form.setVisible(true);
form.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
1.5 测试
-
启动STAR CCM+,新建一个工程文件 -
选择菜单Tool> Options,选择Environment,设置User Macro ClassPath为前面创建工程的路径,如下图所示,点击Close按钮关闭对话框
-
选择启动宏按钮,选择宏文件RunMacro.java,运行结果如图所示。
-
点击按钮创建几何,程序自动生成几何模型
利用JFormDesign的开发方式与NetBean基本一致,且中文界面不会出现乱码。
(完)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册