内容纲要
本文描述在IDEA中利用JFormDesinger进行STAR CCM+二次开发的基本流程。
JFormDesign是IDEA中用于构建GUI界面的插件,其处理GUI界面的方式与NetBeans类似,比IDEA原生GUI处理方式更方便。
1 开发过程
1.1 构建GUI界面
-
启动IDEA,如下图所示新建Project,命名为MacroTest
![](/wp-content/uploads/2023/05/5bcf39d4a8508de.png)
-
鼠标右键点击模型树节点 src
,选择弹出菜单项New → JFormDesigner Form
![](/wp-content/uploads/2023/05/d01d9bcd12ea797.png)
-
在弹出的对话框中,如下图所示创建新的窗口,命名为 CreateGeomForm
![](/wp-content/uploads/2023/05/440dfd62e5ca9f7.png)
-
利用控件构建如下图所示的界面
![](/wp-content/uploads/2023/05/4b6cfed1927ab16.png)
-
指定控件管道长度输入框、管道半径输入框及创建几何按钮的名称JTextField_PipeLength、JTextField_PipeRadius及JButton_CreateGeometry。 -
鼠标右键选中 创建几何
按钮,选择弹出菜单项Add Event Handler → ActionListener-actionPerformed...
![](/wp-content/uploads/2023/05/402b484f25922c3.png)
-
如下图所示,在弹出对话框中添加处理函数 JButton_CreateGeometry
![](/wp-content/uploads/2023/05/d21281c53845ed0.png)
1.2 添加库
-
点击菜单 File → Project Structure...
打开设置对话框
![](/wp-content/uploads/2023/05/25205dfc9bdbcf9.png)
-
打开 Global Libraries
,右键选择STAR CCM2302
,点击菜单项Add to Modules...
![](/wp-content/uploads/2023/05/c2324697625f64f.png)
-
选择将库添加到模块中
![](/wp-content/uploads/2023/05/209a4fd7beb5447.png)
-
进入 Modules
设置,如下图所示,勾选STAR CCM2302
前面的复选框添加库
![](/wp-content/uploads/2023/05/4418e6443d08779.png)
1.3 GUI编程
1. 创建构造函数
采用外部启动窗体的形式,这里创建一个带参数的构造函数。
添加的内容包括:
import star.common.*;
private Simulation sim = null;
public CreateGeomForm(Simulation simLocal){
initComponents();
this.sim = simLocal;
}
完毕后的代码如下图所示。
![](/wp-content/uploads/2023/05/59bf794a4cf7224.png)
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
创建新类
![](/wp-content/uploads/2023/05/13fd9b8186a8e0c.png)
-
指定新的类名称为 RunMacro
![](/wp-content/uploads/2023/05/4aa09421ef6168c.png)
-
输入以下程序代码
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按钮关闭对话框
![](/wp-content/uploads/2023/05/06f5ae750ed0fac.png)
-
选择启动宏按钮,选择宏文件RunMacro.java,运行结果如图所示。
![](/wp-content/uploads/2023/05/fcd74bb1037434b.png)
-
点击按钮创建几何,程序自动生成几何模型
![](/wp-content/uploads/2023/05/770fba240e347cf.png)
利用JFormDesign的开发方式与NetBean基本一致,且中文界面不会出现乱码。
(完)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册