【问题标题】:Problem getting volume of assembly in Abaqus by python script通过 python 脚本在 Abaqus 中获取装配量的问题
【发布时间】:2020-02-23 19:37:07
【问题描述】:

我需要在分析之前通过python脚本在Abaqus中找到一个shell模型的体积,因此在.odb文件可用之前。

我知道这在 CAE 中可以通过具有质量属性的查询工具来实现。这也应该可以通过使用getMassProperties()['volume'] 编写脚本来实现(例如mdb.models['Model'].rootAssembly.getMassProperties()['volume'])。但是,这就是问题所在,因为它不能正常工作。

如果我只在命令窗口中使用getMassProperties(),我会得到以下结果:

>>> mdb.models['MainModel'].rootAssembly.getMassProperties()
{'volume': None, 'massFromMassPerUnitSurfaceArea': None, 'area': 11975.8517821263, 'volumeCentroid': (None, None, None), 'warnings': (ZERO_DENSITY, MISSING_SECTION_DEFINITION), 'momentOfInertia': (None, None, None, None, None, None), 'centerOfMass': (None, None, None), 'mass': None, 'areaCentroid': (-1.16289328510922e-16, -2.06018531309507, 37.4999999999999)}

因此没有找到卷。

但是,如果我首先使用 CAE 中的查询工具和质量属性,并找到 0.00286 的体积(见图),那么上面的脚本就可以工作(该值以某种方式存储)。

使用查询工具后,结果是

>>> mdb.models['MainModel'].rootAssembly.getMassProperties()
{'volume': 0.063598067897832, 'massFromMassPerUnitSurfaceArea': None, 'area': 11975.8517821263, 'volumeCentroid': (0.0, -2.01943926098974, 37.5), 'warnings': (MISSING_DENSITY, ZERO_DENSITY, MISSING_SECTION_DEFINITION), 'momentOfInertia': (None, None, None, None, None, None), 'centerOfMass': (None, None, None), 'mass': None, 'areaCentroid': (1.02383557403908e-16, -2.06018531309506, 37.4999999999999)}

因此,现在该卷可用!!!

问题是,getMassProperties() 仅在 CAE 中的用户交互后才有效,因此它不适合在没有用户交互的 python 脚本中使用。

如何解决上述问题?或者其他脚本解决方案如何找到该卷?

(显示的模型是一个简单的示例,但实际模型具有高级几何形状,因此无法通过简单的数学直接计算体积)。

提前谢谢你。

【问题讨论】:

  • 我不记得查询工具的使用是否反映在 .rpy 文件中,但如果是这样,可能会显示其他命令/函数/等来解释卷的情况确定。
  • 我刚查了一下,可惜查询工具没有反映在.rpy文件中。

标签: python abaqus


【解决方案1】:

您需要添加以下内容:

assembly=mdb.models[modelName].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=assembly)

之前:

weight=assembly.getMassProperties()['mass']

【讨论】:

  • 他为什么要那样做?不要只是脱口而出代码。解释你自己! How to Answer
  • 我也遇到了这个问题,找了半天也没找到答案。然后我在Abaqus中试了一下,发现在使用查询工具之前必须要显示程序集。所以我猜想代码“session.viewports['Viewport: 1'].setValues(displayedObject=assembly)”是需要的。然后我验证了代码,发现它可以工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-18
  • 1970-01-01
  • 2016-04-18
  • 1970-01-01
  • 2020-04-01
相关资源
最近更新 更多