吾生有涯 学海无涯
析模有界 知识无界

STAR CCM+二次开发|05 利用JFormDesigner进行GUI开发

内容纲要

本文描述在IDEA中利用JFormDesinger进行STAR CCM+二次开发的基本流程。

JFormDesign是IDEA中用于构建GUI界面的插件,其处理GUI界面的方式与NetBeans类似,比IDEA原生GUI处理方式更方便。

1 开发过程

1.1 构建GUI界面

  • 启动IDEA,如下图所示新建Project,命名为MacroTest
  • 鼠标右键点击模型树节点src,选择弹出菜单项New → JFormDesigner Form
  • 在弹出的对话框中,如下图所示创建新的窗口,命名为CreateGeomForm
  • 利用控件构建如下图所示的界面
image-20230521114115813
  • 指定控件管道长度输入框、管道半径输入框及创建几何按钮的名称JTextField_PipeLengthJTextField_PipeRadiusJButton_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之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《STAR CCM+二次开发|05 利用JFormDesigner进行GUI开发》
文章链接:https://www.topcfd.cn/35176/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册