如何在abaqus python脚本中引用findAt list/tuple

2024-09-30 20:22:55 发布

您现在位置:Python中文网/ 问答频道 /正文

对于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

Tags: name脚本indexmodelmodelspartssetpart
1条回答
网友
1楼 · 发布于 2024-09-30 20:22:55

我想你在一些地方有一套额外的括号。。。 我下面的代码以所示的格式为我工作,输入为x,y,z

findAt((x, y, z),)

一个可能的解决方法是,创建xyz坐标的列表,然后使用findAt使用循环引用该列表?在

^{pr2}$

或者,如果您的边位于方便的路径上,您可以始终使用findAt获取一个边,然后使用getEdgesByEdgeAngle(…)

相关问题 更多 >