- 论坛徽章:
- 0
|
5可用积分
本帖最后由 zhanshenchuanyu 于 2010-09-30 21:10 编辑
之前的一个帖子提过目的是建立一个带有网格的三维实体外表面的集合。
通过以下语句
p.Surface(face1Elements=p.elementFaces, name='Surf-outer')
我实现了对所有面集合的建立,其中红色的p.elementFaces取的是所有的单元面,
包括外表面和内部的一起,因为只要外表面集合,所以提交任务的时候就出现了错误提示。
但是这一句的语法是没有问题的,即p.elementFaces赋到上头这句话能够生成一个这个集合,只是还不是我要的集合。
说得啰嗦点,就是我要一个和p.elementFaces同类型,但只包括其中p.elementFaces[0],p.elementFaces[n]等几个对象的集合。
之前考虑的思路是这样的
>>>p.elementFaces
['MeshFace object','MeshFace object'……'MeshFace object']
>>>type(p.elementFaces[0])
<type 'MeshFace'>
我编写程序的时候以p.elementFaces为列表处理,程序如下:
p = mdb.models['Model3D'].parts['ThreeDPartMesh'] #一个零件命名为p;
listface=[] #认为p.elementFaces这种初始值为列表???因为看到起输出;
facenumber=len(p.elementFaces)
for i in range(facenumber):
N=len(p.elementFaces.getElements()) #N为面所在的单元数,调试没问题;
if N==1:
listface+=p.elementFaces,
p.Surface(face1Elements=listface, name='Surf-outer')#建立了一个名为'Surf-outer'的外表面。
把它当成列表只是看起来,这样建立的集合是不行的。 |
|