本文描述在IDEA中利用JFormDesinger进行STAR CCM+二次开发的基本流程。
JFormDesign是IDEA中用于构建GUI界面的插件,其处理GUI界面的方式与NetBeans类似,比IDEA原生GUI处理方式更方便。
src
,选择弹出菜单项New → JFormDesigner Form
CreateGeomForm
创建几何
按钮,选择弹出菜单项Add Event Handler → ActionListener-actionPerformed...
JButton_CreateGeometry
File → Project Structure...
打开设置对话框Global Libraries
,右键选择STAR CCM2302
,点击菜单项Add to Modules...
Modules
设置,如下图所示,勾选STAR CCM2302
前面的复选框添加库1. 创建构造函数
采用外部启动窗体的形式,这里创建一个带参数的构造函数。
添加的内容包括:
import star.common.*;
private Simulation sim = null;
public CreateGeomForm(Simulation simLocal){
initComponents();
this.sim = simLocal;
}
完毕后的代码如下图所示。
2、创建功能函数
新建函数createPipe,其带有两个参数radius及length。
createPipe中的内容来自于STAR CCM+的macro录制,。同时需要进行以下修改:
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();
}
启动程序用于显示窗体。
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);
}
}
利用JFormDesign的开发方式与NetBean基本一致,且中文界面不会出现乱码。
(完)