首页/文章/ 详情

Hypermesh二次开发之批量点创建

1年前浏览2628

大家好,我是小鲸鱼,这是hypermesh二次开发的第三篇文章,前两篇文章如下:

一、

小鲸鱼的小鲸鱼,公 众号:CAE中学生hypermesh二次开发之“无用”小工具  

二、

小鲸鱼的小鲸鱼,公 众号:CAE中学生Hypermesh二次开发之批量选择相同面  


关于创建temp node点云数据的创建,如果你有很多个点的坐标,需要一次性创建临时节点,那下面这两种方法不妨一试:

     

方法一


①将点云数据文件后缀改成tcl或者txt,然后用nodepad++软件打开,如图

 


重点来了,按住ALT键,给下拉到底部,就会看到这块有个闪烁的光标,然后就输入*createnode在前面


 


 


输入一次就可以看到所有的行都会同时存在*createnode,然后把文本框所有的内容复 制到hm底下的代码输入行,就可以创建点云数据了,如果有读者不知道hm底下的代码输出行在哪里调出来,接着给下看:标题栏的View里面有个Command window打上勾,就看到hm底部会出来一个输入代码的窗口,直接把刚才文本中的内容复 制到代码窗口按回车即可


 
     

方法二


②读取CSV文件中的数据并创建点云


一般对于比较方便读取的格式为CSV,所以无论点云数据的格式是excel的格式还是文本格式都需要先更改为CSV,然后再进行操作


 


短短6行代码用来读取CSV文件并创建临时节点,接下来我就细说一下这几行代码分别操作是什么



set file [tk_getOpenFile]
 

弹出选择文件的窗口,把选取之后的文件的路径和名称存入file这个变量中



set filename [open $file "r"]
 

打开 file的文件路径,并read,也就是读取,如果要写入,那就将r变成w,读文件的时候会产生一串名称代码,将这串名称代码赋予给filename这个变量


set content [read $filename]
 

再通过这串名称代码来读取这个文件的所有内容并赋予给content,这块其实也可以写成set content [gets $filename],但是用gets的话,每次只能输出一行内容赋予给content这个变量,所以此处用read比较合适,直接读取文本的所有内容




foreach a $content {*createnode $a}
 

foreach这个函数就是对列表进行遍历操作,就比如列表中有abcde这5个,先把a拿出来进行操作,再把b拿出来进行操作,以此类推,直到把最后一个e操作完停止,其实这就相当于python中的for a in content:这样的操作,这段代码就是从content这个变量中拿出来一个数据并赋予a,然后用*createnode 创建节点,一直把content变量中的内容循环完停止


来源:CAE中学生
HyperMesh二次开发python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-11-28
最近编辑:1年前
CAE无剑
硕士 | 仿真工程师 CAE中学生
获赞 688粉丝 1510文章 250课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈