首页/文章/ 详情

人可以不活,但不能没活

3月前浏览1301

最近发现越来越多的老表都在整活,那么我们也运用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内容,忘记的朋友传送门如下。




代码获取方式,不是完整的代码,仅包含提取图片黑色像素点的代码,以及单元高亮显示的代码,获取方式后台回复   整活


来源:TodayCAEer
HyperMesh二次开发pythonUM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-14
最近编辑:3月前
TodayCAEer
本科 签名征集中
获赞 18粉丝 28文章 249课程 0
点赞
收藏
作者推荐

整活一旦开始,就会成为一个循环,永远停不下来

电子木鱼after10:修改刷新时间-file{C:\Users\Today\Downloads\Image1.gif}:指定文件路径鼠标右键关闭窗口packagerequireTkpackagerequireImgcatch{destroy.top}settop[toplevel.top]wmtitle$top"GIFPlayer"wmoverrideredirect.top1setgif[imagecreatephoto-file{C:\Users\Today\Downloads\Image1.gif}]label$top.lbl-image$gifpack$top.lblsetframes0while{1}{if{[catch{$gifconfigure-format"gif-index$frames"}]}{break}incrframes}setcurrent_frame0procchange_frame{}{globalgifglobalframesglobalcurrent_frame$gifconfigure-format"gif-index$current_frame"setcurrent_frame[expr{($current_frame+1)%$frames}]updateafter10change_frame}change_framebind.top<Button-3>{destroy.top}来源:TodayCAEer

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈