找回密码
 注册
Simdroid-非首页
查看: 270|回复: 5

[其他] Workbench JScript---批量创建Coordinate Systems

[复制链接]
发表于 2010-7-13 02:16:23 | 显示全部楼层 |阅读模式 来自 加拿大
本帖最后由 whatinrain 于 2010-7-13 03:50 编辑

Coordinate System在Ansys Workbench中使用很多,无论是加载还是后处理都有可能用得到。这里介绍一种快速批量创建coordinate systems的方法,使用JScript来实现。
先是坐标文件,分别有坐标名称,原点坐标x,y,z。规则是前后没有空行空格;名称和坐标x,y,z之间用一个或多个空格分开。文件名称是coordinate.txt,存放在C盘根目录。不好意思,太懒了就选了个固定文件名的。如果想改可以直接改源文件。
坐标文件例子,
  1. cs1 10.0  20.0 -30.0
  2. cs2  1 2 3  
  3. cs3  100 10.23   90.05
复制代码
这里是源文件,可以拷贝保存后缀名为js的文件,使用时在tools->run macro打开。以下程序在v11.0,12.0,12.1和13.0p2中调试通过。

  1. //调用函数
  2. UserCoordinateSystem();
  3.   //函数定义
  4. function UserCoordinateSystem()
  5. {
  6. //读坐标文件
  7.     var fso = new ActiveXObject("Scripting.FileSystemObject");
  8.     var fname="c:\\coordinate.txt";
  9.     var f=fso.OpenTextFile(fname,1);
  10.     while(!f.AtEndOfStream)
  11.     {
  12.         var r=f.ReadLine();
  13. //去除空格
  14.         var re=/ +/g;
  15.         var d=r.replace(re," ");
  16.         
  17.         var ss=d.split(" ");
  18. //读取名称和原点坐标
  19.         var cName=ss[0];
  20.         var cX=parseFloat(ss[1]);
  21.         var cY=parseFloat(ss[2]);
  22.         var cZ=parseFloat(ss[3]);
  23. //调用创建坐标系函数
  24.         CreateCoordinateSystem(cName,cX,cY,cZ);
  25.     }
  26.     //关闭文件
  27.     f.Close();
  28. }

  29. function CreateCoordinateSystem(csName,csX,csY,csZ)
  30. {  
  31. //获得一个树枝
  32. var branchObj = DS.Tree.FirstActiveBranch;
  33. //获得模型
  34. var CurrentModels = branchObj.Model;
  35. //判断是否有坐标系这个树枝,如果没有则创建,适用于v11.0
  36.      if (CurrentModels.CoordinateSystemGroup)
  37.       curCoorGroup = CurrentModels.CoordinateSystemGroup;
  38.    else
  39.       curCoorGroup = CurrentModels.AddCoordinateSystemGroup();
  40.   //通过选中的geometry来创建坐标系,这里不选geometry而是通过定义原点来创建
  41. var currCoor =  curCoorGroup.AddCoordinateSystem(SM);
  42. //把坐标文件中的值读进来
  43.    currCoor.Name=csName;
  44.    currCoor.OriginAlignment=0;
  45.    currCoor.OriginXLocation=csX;
  46.    currCoor.OriginYLocation=csY;
  47.    currCoor.OriginZLocation=csZ;
  48. //指明是cartesian,如果是1则是cylindrical,如果2呢?
  49.    currCoor.CoordinateSystemType = 0;
  50. //后面的可以忽略不计,坐标方向和绝对坐标一致
  51.    currCoor.AxisPriority = 0;
  52.    currCoor.PrimaryAxis = 1;
  53.    currCoor.SecondaryAxis = 2;
  54.    currCoor.PrimaryAxisAlignment = 2;
  55.    currCoor.SecondaryAxisAlignment = 3;
  56. //刷新一下树
  57.    DS.Script.fillTree();
  58. }   
复制代码
打完收工。

评分

1

查看全部评分

发表于 2010-7-13 16:32:22 | 显示全部楼层 来自 上海
Simdroid开发平台
为什么要采用坐标文件,能不能采用数组方式?
回复 不支持

使用道具 举报

 楼主| 发表于 2010-7-13 21:40:51 | 显示全部楼层 来自 加拿大
2# scyangyu
这是我自己定义的,当然也参考了DesignModeler中点文件的格式。
回复 不支持

使用道具 举报

发表于 2010-7-14 15:13:27 | 显示全部楼层 来自 湖北武汉
楼主都用上ANSYS 13p2了,羡慕呀!!!
回复 不支持

使用道具 举报

发表于 2014-6-18 21:32:47 | 显示全部楼层 来自 天津
这是用的什么编辑器?
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-1 08:22 , Processed in 0.041924 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表