【发布时间】:2018-09-30 00:03:39
【问题描述】:
在 abaqus Python 脚本中,几个 Plies 有大量的副本,每个 Plies 有很多纤维。在每个 Fiber 中,已经选择了一组边:App1-1、App1-2、...、App99-1、App99-2、...、App99-88。如何创建一个包含所有或部分这些边集的新集? 谢谢。
代码:
allApps=[]
...
for i in range(Plies):
...
for j in range (Fiber):
appSet = Model.rootAssembly.Set(edges=
Model.rootAssembly.instances['Part'+str(i+1)+'-'+str(1+j)].edges[0:0+1],
name='App'+str(i+1)+'-'+str(1+j))
allApps.append(appSet)
我猜应该是这样的:
Model.rootAssembly.Set(name='allAppEdges', edges=.?.Array(allApps))
但我不确定这一点,我不知道正确的语法
【问题讨论】:
-
你看过
part.EdgeArray吗?我相信您必须明确地import part,并且您可以从边列表(在您的情况下为allApps)创建一个新的EdgeArray:...edges=part.EdgeArray(allApps)) -
你想要一个简单的联合吗? Python 集已经支持这一点。或“更新”。 docs.python.org/2/library/sets.html 我希望这一套也是一样的,虽然我不完全确定它是什么库。
-
感谢布雷迪和肯尼·奥斯特罗姆。在实例中创建的边不是部分的。 appSet 示例:Model.rootAssembly.sets['App4-88'] 和数组 allApps 示例:[Model.rootAssembly.sets['App1-1'], Model.rootAssembly.sets['App1-2'], . .., Model.rootAssembly.sets['App4-88']]
-
part模块只允许您访问EdgeArray类型。我认为你的边缘来自一个实例而不是一个部分并不重要。我会用一个我认为对你有用的例子来写一个答案。