欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 在 Ansys Mechanical 中使用 Python 提取轮廓图

在 Ansys Mechanical 中使用 Python 提取轮廓图

2025/6/18 6:04:17 来源:https://blog.csdn.net/jkh920184196/article/details/143841726  浏览:    关键词:在 Ansys Mechanical 中使用 Python 提取轮廓图

抽象的

从模拟中获取结果可能是一项繁琐的任务,尤其是当需要具有不同结果类型的不同组件的多个图像时。手动提取具有一致视点和角度的图像可能很困难。我们可以使用 ANSYS Mechanical 提供的脚本工具快速提取具有一致视点的轮廓图像。本博客展示了一种从 ANSYS Mechanical 中提取图像结果的方法。

 

介绍

ANSYS Mechanical 的脚本语言使用 Python。就本文而言,我们只需要 Python 的基本知识即可使用 ANSYS Mechanical 脚本。

 

创建观点

运行模拟后,在解决方案树下添加所需的结果。使用不同的关键词在结果树中命名结果。这些关键词最好能指示视图的角度或特征,例如顶部、底部、等距等。 

 

0bfa4806c08423ebe3863e5192fbfd59.png

从自动化选项卡打开脚本。

 

65d1e7a905c93ae941512e99c825bcf0.png

在录制下拉菜单下,启用摄像头和图形选项。

 

e24e9790a228d5223ffda208d73d5d98.png

单击开始录制,并将摄像机定位到您想要的视点。

 

d75c8d1dd9bfb4d4a08e94c0c836fd04.png

如果您已经在正确的位置,则滚动进出将在脚本树中生成视点。

 

d7889b30f725840092a103df5398e4f4.png

将自动生成将相机角度调整到正确视点的代码。您要为代码保存的视点将是最终生成的视点。在上图中,第 26 行到第 32 行是我对视图所做的最终更改,也是我保存以供将来使用的内容。 

 

e9ea4257ad263ce5f58a558bb98d08bd.png

将代码行复制并存储在其他地方。您可以通过在 shell 中运行来验证视点是否正确。对每个所需的视点重复此操作。

 

4112bf235597c462ac0a89d428d7b75a.png

 

创建脚本

以下脚本是我们提取图像结果的方式。您可以直接在脚本窗口内编写并保存脚本,也可以在外部编辑器中编写并稍后导入。

results = DataModel.GetObjectsByType(DataModelObjectCategory.Result)

#循环遍历结果
for result in results:
    #选择并激活结果                      
    result.Activate()
    childName = result.Name
    if "Top" in childName: #将视点设置为Top
        #region 设置相机属性
        Graphics.Camera.FocalPoint = Point([-0.00018029026087923981, -0.0033479135575506299, 0.0015000000130385163], 'm')
        Graphics.Camera.ViewVector = Vector3D(-1.3843506307354876e-17, -6.3284600262193711e-17, 1)
        Graphics.Camera.UpVector = Vector3D(-9.7144514654701197e-17, 1, -5.5511151231257827e-17)
        Graphics.Camera.SceneHeight = Quantity(0.054822925918460219, 'm')
        Graphics.Camera.SceneWidth = Quantity(0.033196032597538533, 'm')
        #endregion     if "Iso" in childName: #将视点设置为 Iso         #region 设置相机属性        Graphics.Camera.FocalPoint = Point([0.0070694886974773073, -0.020734897355522169, 0.010410070907910943], 'm')         Graphics.Camera.ViewVector = Vector3D(0.6157636972780397, -0.66153217289823363, 0.42803066868510714)         Graphics.Camera.UpVector = Vector3D(-0.31553782822796811, 0.29073861716904603, 0.90327566968440387)         Graphics.Camera.SceneHeight = Quantity(0.054822925918460219, 'm')         Graphics.Camera.SceneWidth = Quantity(0.033196032597538533, 'm')         #endregion     # export the result as a 2D PNG file     Graphics.ExportImage("C:\\Desktop\\Images\\" + result.Name + ".png") print "完成导出结果"

        










 

 

“for”循环遍历我们在解决方案树中定义的每个结果。

 

b75b67256f14c5381ea1e8a95e24b1ef.png

“if”语句在结果树中查找每个结果名称中的关键字,并执行命令以更改该结果的视点。在此示例中,“Top”和“Iso”是我选择的关键字,用于表示顶视图和等距视图。您可以修改关键字和视点以满足您的需求。您还可以添加更多“if”语句以添加其他视点。 

 

9206ceeac2d014c4376b1fb79ba6d772.png

设置视点后,程序会将结果图像保存到指定的文件夹中。

 

7d886721f639ea0ada8ecf526e7e16df.png

包含“Graphics.ExportImage”的行将把图像导出到您指定的文件夹位置,并相应地命名图像。解决方案树中的每个结果都有唯一的名称非常重要,因为它将覆盖现有图像。

下图显示了图像如何出现在您指定的文件夹中。

 

8a5258f5a87946863fdd496221d649f2.png

 

结论

ANSYS Mechanical 中的脚本是一种功能强大的工具,可以节省时间并提高模拟报告的质量。本博客提供了一种自动从 ANSYS Mechanical 中提取图像结果的方法。

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词