对于abaqus,我正在编写一个脚本,它使用来自不同文件的点来创建结构。为了在abaqus中创建集合,使用findAt命令。在
db.models['Model-1'].parts['Part-1'].Set(edges=
mdb.models['Model-1'].parts['Part-1'].edges.findAt(tensionList), name='Tension')
张力列表:
^{pr2}$在abaqus中运行此脚本时,确实发生以下错误:
TypeError:arg1;参数太多;应为1,得到7
但是,当从tensionList中移除外部方括号[]并将其直接放入脚本中时,脚本会起作用:
mdb.models['Model-1'].parts['Part-1'].Set(edges=
mdb.models['Model-1'].parts['Part-1'].edges.findAt(([0.75, 1.25, 0.0], ()), ([0.25, 0.75, 0.0], ()), ([0.75, 0.25, 0.0], ()), ([0.5, 2.0, 0.0], ()), ([0.0, 1.5, 0.0], ()), ([0.25, 1.75, 0.0], ()), ([1.0, 1.5, 0.0], ())), name='Tension')
(脚本不能使用外部方括号[]粘贴脚本中的所有内容,但是如果在tensionList中删除外部方括号并引用示例1中的内容,也会发生相同的错误)
我怎样才能解决这个问题而不必照搬过去。(流程将有许多迭代和非常长的列表)
编辑:通过使用边缘索引的解决方法解决(仍然对如何使用findAt解决这个问题感兴趣)
index =0
while index < (len(compressiveMembersIndex)+len(tensileMembersIndex)):
mdb.models['Model-1'].parts['Part-1'].Set(edges=
mdb.models['Model-1'].parts['Part-1'].edges[index:index+1],
name=aSetCreating[index])
index +=1
我想你在一些地方有一套额外的括号。。。 我下面的代码以所示的格式为我工作,输入为x,y,z
一个可能的解决方法是,创建xyz坐标的列表,然后使用findAt使用循环引用该列表?在
^{pr2}$或者,如果您的边位于方便的路径上,您可以始终使用findAt获取一个边,然后使用getEdgesByEdgeAngle(…)
相关问题 更多 >
编程相关推荐