RP 点归入Set And Coupling 约束创建

打印 上一主题 下一主题

主题 527|帖子 527|积分 1581

想用python脚本创建一个耦合coupling关系,需要定义control piont和被控制的surfaces.两者都可以先分别归入到set 和surface里,最后用set和surface作为coupling创建时的参数。
ReferencePoint objects是从储存在referencePoints中的:
  1. >>> print myAssembly.referencePoints
  2. {369: 'ReferencePoint object', 368: 'ReferencePoint object'}
复制代码
所以,在referncePionts是一个字典,values是我们创建的RP点,keys是一个数字,数字越小说明创建比较早。这样我们把refencePiont这个字典按KEY值排序就可以依次取出来用了
对于用到的RP点数目比较少(RP点数目小于PART的数目的情况),可以在PART里创建RP点。因为abaqus每个部件下面只允许有一个RP点,创建set比较方便(用dict.values()函数返回一个包含字典value的list,而且这个len(list)=1)。如下所示。
定义RP set
  1. # 在part 中创建参考点
  2. p = mdb.models[Model_Name].parts[Part_Name]
  3. p.ReferencePoint(point=RP_location)   #定义参考点
  4. # 修改RP点名称
  5. p.features.changeKey(fromName='RP',toName=RP_Name)
  6. r = p.referencePoints.values()  
  7. # referencePoints是一个字典,用values函数来返回所有值的列表,又因为每一个部件只有一个RP点,所以r[0]就是我们建立的RP点
  8. refPoints=(r[0], )
  9. # 把rp点放进集合
  10. p.Set(referencePoints=refPoints, name=Set_Name)
  11. a = mdb.models[Model_Name].rootAssembly
  12. region1=a.instances[Instance_Name].sets[Set_Name]
复制代码
定义surface
  1. # 进入装配环境下创建surface
  2. a = mdb.models[Model_Name].rootAssembly
  3. s = a.instances[Instance_Name].faces
  4. # 返回一个face object
  5. Face=s.findAt((
  6.              (z,y,z),         
  7.              ),
  8.              )
  9. # 返回一个face squence
  10. Faces=Faces[0].getFacesByFaceAngle(angle=20.0)
  11. # 创建surface
  12. region2=a.Surface(side1Faces=Faces,name=Surf_Name)
复制代码
创建coupling
  1. mdb.models[Model_Name].Coupling(name='coupling', controlPoint=region1, surface=region2,influenceRadius=WHOLE_SURFACE, couplingType=KINEMATIC, localCsys=None, u1=ON, u2=ON, u3=ON, ur1=ON, ur2=ON, ur3=ON)
复制代码
参考资料


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表