首页/文章/ 详情

自编小程序:如何用python实现inp文件的图形可视化

1年前浏览680

以下原文。


最近看到一个python项目,直接把abaqus的inp文件转为vtk的可视化数据文件,然后可以进行相关的图形学方面的研究和操作。一键式代码运行实现,前提是同一个工作路径。


项目提供了一个简单的example,一个骨骼网格文件(在abaqus中打开如图-1所示),通过python代码转为vtu数据格式,然后小编通过额外的代码做了可视化处理,最终效果如图-2所示,当然你也可以下载一个paraview直接打开(如图-3),也不费事。


图-1 abaqus显示效果

图-2 python脚本打开数据文件显示效果

图-3 paraview打开显示效果

整个代码实现数据转化和可视化的过程如下:

(1)通过setup.py完成包的安装;

(2)将example文件进行转化,转化过程如图-4所示;


图-4 文件转化

(3)然后通过python在打开可视化的数据文件,即


python3 vis.py
打开vtk数据文件的命令网上可以找到,个别地方需要改动一下即可,vis.py代码如下:

1from vtk import vtk
2
3file_name = "femur.vtu"
4
5# Read the source file.
6reader = vtk.vtkXMLUnstructuredGridReader()
7reader.SetFileName(file_name)
8reader.Update()  # Needed because of GetScalarRange
9output = reader.GetOutput()
10scalar_range = output.GetScalarRange()
11
12# Create the mapper that corresponds the objects of the vtk.vtk file
13# into graphics elements
14mapper = vtk.vtkDataSetMapper()
15mapper.SetInputData(output)
16mapper.SetScalarRange(scalar_range)
17
18# Create the Actor
19actor = vtk.vtkActor()
20actor.SetMapper(mapper)
21
22# Create the Renderer
23renderer = vtk.vtkRenderer()
24renderer.AddActor(actor)
25renderer.SetBackground(245,245,220)  # Set background to white
26
27# Create the RendererWindow
28renderer_window = vtk.vtkRenderWindow()
29renderer_window.AddRenderer(renderer)
30
31# Create the RendererWindowInteractor and display the vtk_file
32interactor = vtk.vtkRenderWindowInteractor()
33interactor.SetRenderWindow(renderer_window)
34interactor.Initialize()
35interactor.Start()


仅仅分享一个小项目,学习使用。没别的深入的理解,但是对于一些图形学和可视化方面的开发应该是有借鉴意义的。



最后,奉上案例的下载方式。


见附件


来源:CAEer

附件

免费自编小程序:如何用python实现inp文件的图形可视化.txt
python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-29
最近编辑:1年前
团长
硕士 | 白车身结构设... 专注ANSA使用技巧-微信公众号『C...
获赞 114粉丝 929文章 135课程 6
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈