STAR-CCM+宏文件录制和编写
STAR-CCM+宏本质上就是一个java文件,语法和普通的java没有什么区别。使用宏可以帮助我们简化处理过程,尤其是一些重复的流程性的操作。通过编写宏文件完成一些流程操作可以极大地解放人力资源,甚至可以在求解过程中完成某些特定的操作。
1. 录制宏
STAR-CCM+宏本质就是分析过程中的各种操作命令的集合,与其从头开始讲解复杂繁琐的java语法+API,不如直接从工程问题上手。
STAR-CCM+宏操作的入口在左上角工具栏里,从左到右依次是“播放宏”、“开始录制”、“暂停录制”和“停止录制”按钮,相关操作选项也可以在“文件”菜单中找到。

点击“开始录制”会弹出对话框,提示宏的保存位置。如果过程中用到一些场景化的图形操作,可以勾选上“包括图形命令”;但一般情况下不建议勾选,尤其是涉及到超算提交的场合。

接下来就可以在输出窗口中看到录制java过程的代码,此时可以正常地执行分析操作,STAR-CCM+会把相关操作转换成对应的java代码,并显示在输出窗口中。

当分析操作完成后点击“停止录制”,可以在输出窗口中看到完整的java代码,同时该代码也被保存到java文件中。
下面是录制的宏代码示例,作用是将原有网格清除并重新划分体网格。
// Simcenter STAR-CCM+ macro: reGenerateMesh.java
// Written by Simcenter STAR-CCM+ 19.06.009
// 上面两行注释是录制时生成的,记录保存宏的文件名、STAR-CCM+版本信息
package macro;
import java.util.*;
import star.common.*;
import star.meshing.*;
// 类名和文件名要一致
public class reGenerateMesh extends StarMacro {
//这个函数是整个宏的入口
public void execute() {
execute0();
}
//这个函数执行网格清除和划分操作
private void execute0() {
Simulation simulation_0 =
getActiveSimulation();
MeshPipelineController meshPipelineController_0 =
simulation_0.get(MeshPipelineController.class);
//清除原来的网格
meshPipelineController_0.clearGeneratedMeshes();
//生成体网格
meshPipelineController_0.generateVolumeMesh();
}
}
具体代码的作用可以查看STAR-CCM+的帮助文件,不过大部分的API的命名都比较直观,根据其命名也能推测出来。
