python - Abaqus 脚本:调用存储在不带引号的变量中的字符串?
问题描述
rebar_set_command=[]
for i in rebar_instances:
rebar_set_command.append('m.rootAssembly.instances[\''+i+'\'].faces.getByBoundingBox(0,0,0,X,Y,Z')
a='+'.join(rebar_set_command)
m.rootAssembly.Set(faces=a, name='A')
但是它不能完成,因为我认为 faces=a 中的值 a 包含引号。
如何在没有开始和结束引号的情况下调用此 Abaqus 命令的字符串?谢谢!
解决方案
问题是'm.rootAssembly.instances[\''+i+'\'].faces.getByBoundingBox(0,0,0,X,Y,Z'
给你一个字符串。这不是 Python 表达式。您可能想查看一些 Python 教程以了解表达式、变量和基本类型(例如字符串)的介绍。
在您的情况下,您需要将字符串中的内容作为实际表达式运行以获取返回的面部序列,并从中构建一个面部数组。更复杂的是Sequence
,当您调用 时,Abaqus 返回自己的内部类型getByBoundingBox
。使用这种类型很痛苦,因为您无法创建一个空的类型(至少我不知道)。因此,动态构建一组人脸列表需要额外注意。在下面的代码中,我获取每个钢筋实例的面序列,然后将每个单独的面添加到我自己的faces
. 最后,为了创建集合,Abaqus 对参数的类型很挑剔faces
。我们需要创建一个part.FaceArray
对象来满足 Abaqus。
import part
faces = []
for i in rebar_instances:
face_sequence = m.rootAssembly.instances[i].faces.getByBoundingBox(0,0,0,X,Y,Z)
faces += [f for f in face_sequence]
m.rootAssembly.Set(faces=part.FaceArray(faces), name='A')
推荐阅读
- javascript - React 钩子:当我们尝试调用函数时,useMemo 和 useEffect 有一个 Missing 依赖项
- reactjs - 为什么我在设置 React 组件的状态时在控制台中收到内存泄漏警告
- mongodb - MongoDB聚合:数组数据内的字段总和,并在父集合上投影
- ruby - 我可以调用函数来定义模块定义中的变量吗?
- c# - DataTable.Rows.Add():集合被修改;枚举操作可能无法执行
- android - 获取原始条码数据
- javascript - 使用 Ruby on Rails 后端和 Reactjs 前端创建条带令牌
- .net-core - 我们可以将 HangFire 配置为在不同的时间间隔为每个用户安排一个作业吗?
- r - 特定字符串的条件出现并使用 R 相对制作一个新的数据框
- security - Google Cloud Security Scanner:Google 帐户身份验证错误