欢迎光临散文网 会员登陆 & 注册

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

2023-03-31 17:02 作者:血刃琉心  | 我要投稿

碎碎念:利用宏可以实现重复而有规律的操作,比如批量布置测点,节省我们宝贵的时间精力;其次,说不定哪天我就转码了。

摘要:利用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 总结?

才疏学浅,恳请批评指正。

利用star ccm+的宏批量创建测点的评论 (共 条)

分享到微博请遵守国家法律