首页/文章/ 详情
banner

Hypermesh二次开发之批量点创建

8月前浏览2215

大家好,我是小鲸鱼,这是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
          最近编辑:8月前
          CAE无剑
          硕士 | 仿真工程师 CAE中学生
          获赞 646粉丝 1415文章 236课程 0
          点赞
          收藏
          未登录
          还没有评论
          课程
          培训
          服务
          行家
          VIP会员 学习 福利任务 兑换礼品
          下载APP
          联系我们
          帮助与反馈