利用star ccm+的宏批量创建测点

碎碎念:利用宏可以实现重复而有规律的操作,比如批量布置测点,节省我们宝贵的时间精力;其次,说不定哪天我就转码了。
摘要:利用star ccm+的宏批量创建基于局部坐标系且属于特定部件的测点。录制创建一个测点的宏。分析代码行作用。改宏。运行检查。
前言:对圆柱坐标系,Java的类、对象、属性有所理解会更有利于理解。
1 录制保存宏
在录制宏之前,建议把ccm先调成英文模式,包括后面自定义命名的时候也尽量用英文名。因为中文在保存的Java宏文件里面会以‘/uxxxx’的形式展现(我不清楚这个是不是ASCII码 owo||)
首先创建一个测点所属于的部件,这一步不属于批量创建测点的步骤,因此不要将此操作录制到宏里。这里我创建了一个底面圆心(0 0 0),r=1,h=2的圆柱体。
录制布置一个测点的宏,保存它的Java文件。鼠标的操作顺序如下:
1) 右键tool-coordinate systems-laboratory-local coordinate systems,选择new-cylindrical;
2)重命名为“bottom 1”;
3)修改“bottom 1”的原点为(0 0 0.1);
4)右键derived parts,选择new part-probe-point;
5)将新建的点重命名为“point 0-0”;
6)将“point 0-0”的部件改为录制宏前创建的圆柱体表面;
7)将“point 0-0”的坐标系改为“bottom 1”;
8)修改第二个坐标单位为deg,坐标改为(1 0 -0.1)。
至此创建完成,结束宏录制。
2 分析宏
得到的Java文件如下:
前面5个import不用管但要有;
前22行的内容都不用管;
从23-27对应我们之前的操作1);
29行对应操作2);
31-34行对应操作3);
36-37对应操作4);
39对应操作5);
41意义不明,我猜的是其余属性默认不更改(希望大佬补充 owo);
43-49是对应操作6);
51对应操作7);
53-56对应操作8)。
3 创建循环结构
回顾键鼠操作。如果我要建多个点,那么用键鼠重复的操作应该是4)-8),对应的代码行为36-56。
这里考虑用for循环结构,因此在36行上方插入
并将36-56行放入大括号中。
将原36、37行代码改为
这表示会沿Z轴正向,以0.1的步长设置点列;
现在设置沿圆周,每间隔90deg设一个测点,就可以对36、37行进行copy并修改:
注意,在copy过程中,需要修改等号左端的变量名(应该是叫变量名吧,希望大佬指正owo);
然后就可以copy原39行。这里可以利用字符串运算来为点进行顺序重命名:
原41行最好也copy并修改:
原43-48行只是调取圆柱体的面(大概owo),原49行才是将点赋予圆柱部件的表面。因此只copy49行就行:
原51行同理:不贴了嘿嘿;
原53-54行,和原31行,都是调取了物理量单位。分别调取的是“deg”和“m”。显然只需要调取一次就好,所以可以把原53-54行调到for循环体外,只把56行copy并修改:
这表示会沿Z轴正向,以0.1的步长设置点的圆阵列;每个圆阵列上的点沿圆周间隔90deg。
保存。
4 修改后的Java宏
5 运行检查
运行宏,并打开derived parts检查生成各点的坐标。
6 疑问
为什么我生成的4-x点这么不整齐。。

7 总结?
才疏学浅,恳请批评指正。