最近发现越来越多的老表都在整活,那么我们也运用hyperwork进行一些新颖有趣的改造活动。
该逻辑的实现过程是,先解析GIF动图的每一帧,并提取其中每一帧图片中的所有黑色像素点(当然也可以提取出64种颜色,但hypermesh的comps颜色显示最多也就是64种,后续TCL的功能也要由高亮显示修改为将单元移动到对应的comps当中去),将它们的XY坐标转化为编号(编号规则从左上角开始),然后将编号进行保存,得到图片信息。
接下来就需要做的是准备网格,实现类似于动图播放的效果。为此,我们考虑将图片像素点ID与网格的单元ID一一对应,然后再调用相应的高亮显示API即可实现这一功能。需要注意的是,在软件界面当中创建的单元ID并不是我们所需要的状态,它的ID编号是随机的,如果直接以renumber方式修改每个单元的ID,由于图片大小可能是300*300(即90000个像素点)或者更大,那时间复杂度将是相当高的,因此需要考虑采样或其他有效的方法进行降低分辨率,提高效率。而本次整活采用了不同的技巧——直接写入fem文件,以避免二次开发过程中的效率问题。
后续还可以继续优化,例如写一个很大的fem文件,例如1000*1000的fem文件,这样可以避免每次运行重新写;同样是将图片的像素点保存成文件,当文件已经存在时,就无须重新提取节点。
另外一个有趣的整活
在后处理中提供了仿真结果与实际录像进行对标的功能--Image Planes,就是说支持导入图片或者视频,那么是不是可以在发散一下,按照自己的喜好更改背景呢,换个赏心悦目的背景,是不是在100万个单元中,查看应力集中区域的时候鼠标移动,缩放的速度更快呢。
取消Fit,即可扩展显示满屏。
这里面用到了前面介绍的tcl Call Python内容,忘记的朋友传送门如下。
代码获取方式,不是完整的代码,仅包含提取图片黑色像素点的代码,以及单元高亮显示的代码,获取方式后台回复 整活