ji8dan 发表于 2014-5-22 15:34:54

求指教findAt函数

各位大神:

我发现了一个比较奇怪的现象。
如下的语句是正确的:
side1Faces1 = s1.findAt(((895.949465, 406.666667, 85.291004), ), ((895.949465,
    706.666667, 85.291004), ), ((895.949465, 946.666667, 85.291004), ))

可是如果我使用中间变量nodes=(((895.949465, 406.666667, 85.291004), ), ((895.949465,
    706.666667, 85.291004), ), ((895.949465, 946.666667, 85.291004), ))
再写成side1Faces1 = s1.findAt(nodes)就会提示如下错误:
TypeError:arg1:too many arguments,excepting 1,got3

小弟求各位大神指教,因为想写循环语句定义一个被分割实体的一侧所有面作为一个surface集合,以便在后面接触的时候使用。

谢谢各位大神了

ydp_1234 发表于 2014-6-6 13:29:54

进入abaqus后,输入
session.journalOptions.setValues(replayGeometry=COORDINATE,recoverGeometry=COORDINATE)
rpy文件中,选择语句就以findat的形式给出
根据rpy文件中的语句修改
选择方式查:Abaqus Scripting Reference Manual
findat()
getByBoundingBox()
getByBoundingCylinder()
getByBoundingSphere()
建议还是根据rpy修改

天草分月 发表于 2014-5-28 21:58:40

确实是个小bug,多试试
比如这个
nodes=((895.949465, 406.666667, 85.291004), (895.949465, 706.666667, 85.291004), (895.949465, 946.666667, 85.291004), )
findAt(nodes,)

Hansha 发表于 2014-5-27 02:45:14

试试下面两个定义nodes的方法,看行不行:

1.nodes=((((895.949465, 406.666667, 85.291004), ), ((895.949465, 706.666667, 85.291004), ),
       ((895.949465, 946.666667, 85.291004), )),)

2. nodes=(((895.949465, 406.666667, 85.291004), (895.949465, 706.666667, 85.291004),
      (895.949465, 946.666667, 85.291004)),)

ji8dan 发表于 2014-5-28 21:48:35

Hansha 发表于 2014-5-27 02:45
试试下面两个定义nodes的方法,看行不行:

1.nodes=((((895.949465, 406.666667, 85.291004), ), ((895.94 ...

试过了,貌似不行。还是觉得这是一个小的bug

ydp_1234 发表于 2014-6-6 13:32:39

另外要注意返回类型:findat()返回的是object,其他返回的是sequence
如果要求的参数是sequence,则应将findat返回值用()括起,并用逗号隔开

JingheSu 发表于 2014-6-6 13:43:28

ydp_1234 发表于 2014-6-6 13:32
另外要注意返回类型:findat()返回的是object,其他返回的是sequence
如果要求的参数是sequence,则应将fin ...

findAt()函数的输出类型由输入参数决定,可以是Geometry object也可以是Geometry sequence。

AsAlways 发表于 2014-6-12 21:20:13

ydp_1234 发表于 2014-6-6 13:29
进入abaqus后,输入
session.journalOptions.setValues(replayGeometry=COORDINATE,recoverGeometry=COORDI ...

真是一个神技啊,我表示受教了。

转战江苏 发表于 2017-4-29 19:23:18

mark一下,确实有用啊:)

徐静宇 发表于 2017-11-3 15:59:42

感谢5楼和版主的回答,实在是帮了很大忙,谢谢了

fbobeatiful 发表于 2019-1-7 18:20:59

ydp_1234 发表于 2014-6-6 13:29
进入abaqus后,输入
session.journalOptions.setValues(replayGeometry=COORDINATE,recoverGeometry=COORDI ...

您好,我依照您的方法在ABAQUS下面的命令窗口输入该指令,查看rpy文件仅仅弹出
cliCommand("""session.journalOptions.setValues(replayGeometry=COORDINATE,recoverGeometry=COORDINATE)""")
没有任何其他消息这是为什么呢?

bartleby 发表于 2019-5-17 21:17:18

fbobeatiful 发表于 2019-1-7 18:20
您好,我依照您的方法在ABAQUS下面的命令窗口输入该指令,查看rpy文件仅仅弹出
cliCommand("""session.jo ...

他的意思是在输入session.journalOptions.setValues(replayGeometry=COORDINATE,recoverGeometry=COORDINATE)之后,在rpy文件中当你选中一个面时就不是以掩码的形式faces = f.getSequenceFromMask(mask=('[#82 ]', ), )表示的了,而是用findAt来表示的。你在选择一个面做一些操作就能看出区别了。

mwg 发表于 2019-7-13 15:27:16

楼主的问题解决了我的难题,其实用三个点定义也可以,我也试过用中间变量,不可以的
页: [1]
查看完整版本: 求指教findAt函数