通过附加原始文件名来保存文件
Save a file by appending the original file name
我是运行 使用Star-CCM+ 的CFD 模拟,它使用Java API。 Star-CCM+用java写宏,但我完全不懂这门语言。我想在我的模拟中操作参数值,然后使用附加名称保存文件。例如,如果我的模拟名为“External Aero”,我希望模拟以名称“External Aero Heave”保存文件。这样做的原因是很多人会使用这个宏,我不希望每个人的文件都被覆盖。所以我希望宏附加基本文件的名称。
Star-CCM+写的保存重命名文件的代码如下:
// Simcenter STAR-CCM+ macro: SaveOp.java
// Written by Simcenter STAR-CCM+ 15.06.008
package macro;
import java.util.*;
import star.common.*;
import star.base.neo.*;
public class SaveOp extends StarMacro {
public void execute() {
execute0();
}
private void execute0() {
Simulation simulation_0 = getActiveSimulation();
simulation_0.saveState("Y:\CFD Simulation\Run\GFR21_Thesis_Base_ExportToPPT_Heave.sim");
}
private void execute1() {
}
}
我可以看到 simulation_0 是活动模拟的名称。我尝试将 simulation_0 添加到 saveState 命令,如下所示:
simulation_0.saveState("Y:\CFD Simulation\Run\simulation_0_Heave.sim");
但这只是保存了一个名为“simulation_0_Heave.sim”的模拟,这不是我想要的。
如有任何帮助,我们将不胜感激。
提前谢谢你。
simulation_0不是实际模拟的名字
它只是一个模拟类型的对象。
您可能需要 simulation_0.getName 或 simulation_0.getSimulationName() 来获取“simulation_0”的名称。
这应该有效:
simulation_0.saveState("Y:\CFD Simulation\Run\" + simulation_0.getPresentationName() + "_Heave.sim");
我能够解决我的问题并添加代码以将创建的文件添加到新目录。
// making the file name extension string
String append1 = "_Heave.sim";
String dir1 = simulation_0.getSessionDir(); //getting the name of the sims directory
String filename1 = simulation_0.getPresentationName(); //get the name of the current sim file
String sep1 = System.getProperty("file.separator"); //get the right separator for your operative system
String folder1 = (sep1 + filename1 + "_Five_Attitude_Study"); //making the first folders name
String pathToNewDirectory1 = (dir1 + folder1); //applying it to the full path
File fileObject1 = new File(pathToNewDirectory1); //making the new file folder
Boolean yes1 = fileObject1.mkdir(); //checking that its there
simulation_0.saveState(pathToNewDirectory1 + sep1 + filename1 + append1); //save the current sim file as| name_of_the_file@mod.sim
我是运行 使用Star-CCM+ 的CFD 模拟,它使用Java API。 Star-CCM+用java写宏,但我完全不懂这门语言。我想在我的模拟中操作参数值,然后使用附加名称保存文件。例如,如果我的模拟名为“External Aero”,我希望模拟以名称“External Aero Heave”保存文件。这样做的原因是很多人会使用这个宏,我不希望每个人的文件都被覆盖。所以我希望宏附加基本文件的名称。
Star-CCM+写的保存重命名文件的代码如下:
// Simcenter STAR-CCM+ macro: SaveOp.java
// Written by Simcenter STAR-CCM+ 15.06.008
package macro;
import java.util.*;
import star.common.*;
import star.base.neo.*;
public class SaveOp extends StarMacro {
public void execute() {
execute0();
}
private void execute0() {
Simulation simulation_0 = getActiveSimulation();
simulation_0.saveState("Y:\CFD Simulation\Run\GFR21_Thesis_Base_ExportToPPT_Heave.sim");
}
private void execute1() {
}
}
我可以看到 simulation_0 是活动模拟的名称。我尝试将 simulation_0 添加到 saveState 命令,如下所示:
simulation_0.saveState("Y:\CFD Simulation\Run\simulation_0_Heave.sim");
但这只是保存了一个名为“simulation_0_Heave.sim”的模拟,这不是我想要的。
如有任何帮助,我们将不胜感激。 提前谢谢你。
simulation_0不是实际模拟的名字 它只是一个模拟类型的对象。
您可能需要 simulation_0.getName 或 simulation_0.getSimulationName() 来获取“simulation_0”的名称。
这应该有效:
simulation_0.saveState("Y:\CFD Simulation\Run\" + simulation_0.getPresentationName() + "_Heave.sim");
我能够解决我的问题并添加代码以将创建的文件添加到新目录。
// making the file name extension string
String append1 = "_Heave.sim";
String dir1 = simulation_0.getSessionDir(); //getting the name of the sims directory
String filename1 = simulation_0.getPresentationName(); //get the name of the current sim file
String sep1 = System.getProperty("file.separator"); //get the right separator for your operative system
String folder1 = (sep1 + filename1 + "_Five_Attitude_Study"); //making the first folders name
String pathToNewDirectory1 = (dir1 + folder1); //applying it to the full path
File fileObject1 = new File(pathToNewDirectory1); //making the new file folder
Boolean yes1 = fileObject1.mkdir(); //checking that its there
simulation_0.saveState(pathToNewDirectory1 + sep1 + filename1 + append1); //save the current sim file as| name_of_the_file@mod.sim