- 积分
- 35
- 注册时间
- 2004-10-14
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 whatinrain 于 2010-7-13 03:50 编辑
Coordinate System在Ansys Workbench中使用很多,无论是加载还是后处理都有可能用得到。这里介绍一种快速批量创建coordinate systems的方法,使用JScript来实现。
先是坐标文件,分别有坐标名称,原点坐标x,y,z。规则是前后没有空行空格;名称和坐标x,y,z之间用一个或多个空格分开。文件名称是coordinate.txt,存放在C盘根目录。不好意思,太懒了就选了个固定文件名的。如果想改可以直接改源文件。
坐标文件例子,- cs1 10.0 20.0 -30.0
- cs2 1 2 3
- cs3 100 10.23 90.05
复制代码 这里是源文件,可以拷贝保存后缀名为js的文件,使用时在tools->run macro打开。以下程序在v11.0,12.0,12.1和13.0p2中调试通过。
- //调用函数
- UserCoordinateSystem();
- //函数定义
- function UserCoordinateSystem()
- {
- //读坐标文件
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var fname="c:\\coordinate.txt";
- var f=fso.OpenTextFile(fname,1);
- while(!f.AtEndOfStream)
- {
- var r=f.ReadLine();
- //去除空格
- var re=/ +/g;
- var d=r.replace(re," ");
-
- var ss=d.split(" ");
- //读取名称和原点坐标
- var cName=ss[0];
- var cX=parseFloat(ss[1]);
- var cY=parseFloat(ss[2]);
- var cZ=parseFloat(ss[3]);
- //调用创建坐标系函数
- CreateCoordinateSystem(cName,cX,cY,cZ);
- }
- //关闭文件
- f.Close();
- }
- function CreateCoordinateSystem(csName,csX,csY,csZ)
- {
- //获得一个树枝
- var branchObj = DS.Tree.FirstActiveBranch;
- //获得模型
- var CurrentModels = branchObj.Model;
- //判断是否有坐标系这个树枝,如果没有则创建,适用于v11.0
- if (CurrentModels.CoordinateSystemGroup)
- curCoorGroup = CurrentModels.CoordinateSystemGroup;
- else
- curCoorGroup = CurrentModels.AddCoordinateSystemGroup();
- //通过选中的geometry来创建坐标系,这里不选geometry而是通过定义原点来创建
- var currCoor = curCoorGroup.AddCoordinateSystem(SM);
- //把坐标文件中的值读进来
- currCoor.Name=csName;
- currCoor.OriginAlignment=0;
- currCoor.OriginXLocation=csX;
- currCoor.OriginYLocation=csY;
- currCoor.OriginZLocation=csZ;
- //指明是cartesian,如果是1则是cylindrical,如果2呢?
- currCoor.CoordinateSystemType = 0;
- //后面的可以忽略不计,坐标方向和绝对坐标一致
- currCoor.AxisPriority = 0;
- currCoor.PrimaryAxis = 1;
- currCoor.SecondaryAxis = 2;
- currCoor.PrimaryAxisAlignment = 2;
- currCoor.SecondaryAxisAlignment = 3;
- //刷新一下树
- DS.Script.fillTree();
- }
复制代码 打完收工。 |
评分
-
1
查看全部评分
-
|